how do you “reverse engineer” something?

588 views

how do you “reverse engineer” something?

In: 64

22 Answers

Anonymous 0 Comments

oh man, it’s a big subject…

in general you could state that reverse engineering is a process of figuring out how something works blindly, without prior knowledge or recipe or algorithm of inner workings of such thing/process/program/whatever.

if you’d narrow this to, say coding, real-world scenario would look like this:

1. i want to reverse-engineer a piece of software
2. i can interact with it, so i more less know how it works
3. feed a binary to a tool called disassembler (it tranlastes machine code back to assembly language).
4. analyze output (which maybe works/maybe it doesnt) and try to figure out exactly how it works (this is the hardest part)
5. fix the disassembler output so variables, symbols, functions (all pieces of code) have a meaningful names/identifiers – in essence make it human-readable-friendly, so it makes sense when you browse through the source code and you see function DoThis(); and variable *counter* or *index* instead of function _124(); and var i,j,k : of a type;.
6. try to compile your new generated/fixed code and compare the workings of the original with your version/ various tools can be used, like debuggers and the like.

i think i don’t have to tell you, that such endavours are, one of most hardcore things in IT you can be doing. the bigger the program, the worse it gets (pretty quickly).

You are viewing 1 out of 22 answers, click here to view all answers.