How do I Reverse Firmware? What is firmware binary?

1 Answer 1


If I could, I would comment asking you to rephrase your question as I'm not sure what you want to know (file paths?).
As I'm not sure what can't be solved without some googling I'll give you a generic overview of the topics you mentioned. I suggest you to read all the links provided and update the question if you still have doubts.

From Wikipedia

In electronic systems and computing, firmware[a] is a type of software that provides control, monitoring and data manipulation of engineered products and systems. Typical examples of devices containing firmware are embedded systems (such as traffic lights, consumer appliances, remote controls and digital watches), computers, computer peripherals, mobile phones, and digital cameras. The firmware contained in these devices provides the low-level control program for the device.

Since it is a software running on some sort of hardware, it can be obtained in various ways: by either dumping the memory of the device or by downloading it from the vendor's site.


Once you have the binary file and you identify the architechture it is runs on you can use a disassembler to translate opcodes to assembly (which is a human readable rappresentation of machine language). Decompilers can be used to ease the process


In order to edit these images you just need an hexadecimal editor: programs such as IDA and radare2 can accomplish such task.


If you want to run the said firmware, you need an environment that supports the architechture on which it was running (an emulator or a virtual machine).


  • clarify - i need original source code for edit a driver firmware(windows) (for change hardware feature) but company doesnt release original codes, so the developer asking about that firmware binary. how can i get it? i hope detailed clarification
    – Thuy wendz
    Dec 28, 2016 at 1:17
  • 1
    @Thuywendz If you're asking "How do I obtain the origial source code through reverse engineering" I'm sorry to say it can't be done (you can only get something similar,but not the original. If you want to add some functionalities (wait for someone to answer that)
    – shxdow
    Dec 28, 2016 at 13:19
  • Who is the developer you're talking about? Is that someone else you're working with or is that you ? Also, I'm confused: you want to make a small change to the hardware right ? But what does the hardware have to do with the software ? See if you can get someone to paraphrase your situation (no offense,it's so we can help you)
    – shxdow
    Dec 29, 2016 at 20:27
  • What is the driver for? Is it a graphics driver or something? Note windows drivers are rather intricate, there are three main types of drivers, bus driver, filter driver, function driver, and others that I forget at the moment. The company is rather free to implement the driver architecture how they feel so long as it correctly sockets the windows supplied driver if that is how it works. There could be several drivers and one of them actually implements the feature you wish to change. If that feature actually interacts with hardware you will need to know the hardware as well. Jan 7, 2017 at 14:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.