I had several time questions about really complex code, linked to commercial tools (or not) but with the source code (or part of it) available. But, I am not sure if it can be considered as "reverse engineering"...

For me, "reverse engineering" is really about understanding (technical) things with or without the recipies to produce it. So, I would classify my questions in this topic. But, interpretation may vary from one to another.

So, what is your opinion about that ?


I consider "understanding complex source code" to be doing my job and not an example of RE; I have the src code therefore there is nothing to reverse. RE is about applying stimuli to gain understanding of a black box system typically with the attempt to manipulate the behaviour of said system with the obtained understanding.

Examples of RE

  1. I have a system that I need to modify but the top of the chips have been sanded down. I apply stimuli to see what happens, then greenwire as needed to include new component.
  2. I have a on-board resource (e.g. I2C controller) that doesn't seem to be conforming to spec. I apply stimuli and evaluate the results.

Examples of understanding source code

  1. I have source code for a driver I need to modify. I review the code, monkey around with it, make my changes and move on. I can generate, in advance, the stimuli I need to elicit the desired results because I can see the effect of the system by reading the code.
  2. I have object code or a disassembler. I use the tools provided to determine errors in my code under test. Again, since I can determine how the system will react in advance, I can generate the stimuli to elicit the desired results.

In a nutshell, understanding source code is a basic requirement for any software/hardware developer; source code allows us to predetermine the output of a system based on stimuli. When RE'ing, there is no way to predetermine the output of the system based on stimuli. Source code allows us to generate stimuli and expected results. RE generates stimuli and records results.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .