Comments (3)
Yes, they can be put there as well instead of directly into the code. See https://github.com/firmadyne/firmadyne/blob/master/scripts/fixImage.sh for examples of where this is used.
However, generally there's not a single key-value pair that is necessary for the system to boot, but tens if not hundreds of key-value pairs. Thus, the easiest way to get a new firmware working is to figure out where the manufacturer stores the default values (e.g. after resetting the system), and add it to NVRAM_DEFAULTS_PATH
in https://github.com/firmadyne/libnvram/blob/master/config.h .
from firmadyne.
@ddcc Can you provide some examples of where manufacturer stores default nvram values? Or how you would go about finding out? find . | grep -i nvram
on the target filesystem only returned the nvram binary and library. Thanks
from firmadyne.
Unfortunately, it's a somewhat manual process of figuring out the NVRAM is being handled, and then looking to see where the values are coming from. If you look at the linked config.h
file, sometimes the default values are stored in a file on the filesystem (PATH
), or sometimes they are key-value pairs stored as a table in a shared symbol (TABLE
). You probably want to search inside some of the binaries / libraries, either using something basic like strings <foo> | grep <bla>
.
Alternatively, you can work backwards by figuring out where the boot process / program of interest is crashing, examine the last couple of NVRAM key/value pairs that were requested, overriding them with different values and seeing if you get farther. Additionally, disassembling / decompiling them and looking for anything interesting makes this process a lot easier.
from firmadyne.
Related Issues (20)
- Password Authentication Failed HOT 1
- bug in makeNetwork.py HOT 1
- No network interface HOT 3
- extractor.py needs to be run as root with the latest binwalk HOT 2
- Firmadyne is unable to create any other image and image id 8
- Erorr file inferNetwork.sh and erorr message: "swRegRead: Operation not supported" when run file run.sh HOT 5
- Unable to emulate any firmware HOT 1
- Error in makeImage.sh HOT 3
- Emulation failing with Kernel panic - not syncing: No working init found. Try passing init= option to kernel. HOT 2
- inferNetwork.sh didn't find any network interfaces HOT 4
- Error: Cannot open file --run-as=root HOT 6
- [ 210.320000] firmadyne: ioctl: 0x4 HOT 1
- inferNetwork.sh UnicodeDecodeError HOT 4
- Netgear123456 root password issue HOT 1
- Need debugging help
- EXT2-fs sda1 error deleted inode refrence in tplink archer c6 HOT 1
- I have an error while trying to emulate RAXE300 firmware version 1.0.7.62
- When I simulated the router firmware, an error was reported. Why?
- Add ability to disable IPv6
- Remove need for SQL database HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firmadyne.