
Mark Rogaski <wendigo@pobox.com> writes:
: What do you mean by "reverse engineer?" I have heard this word several = : times especially in the world of hacking, but... can someone tell me = : what it really meant? :
Reverse engineering is the process of taking a piece of executable code, be it a Win95 program or firmware for a cellular phone eeprom, and running it through a disassembler. The disassembler converts the machine code into assembly instructions. From there, a person with a lot of spare time, a good understanding of compiler design, and a lot of caffeine can translate the assembly instructions into a higher level language (ie. C, C++, VisualBasic). The first part is easy (and writing a disassembler is a good project for upper-level Comp Sci courses), but the second part is a real bear and people with the knowledge and drive to do it have my respect.
Small correction: oftentimes one is trying to figure out the 'secret' algorithm used by the program, and that can be done by analyzing the assembler just as well. I did this a few times to break 'secret' cryptosystems. Certain programs encrypt their executable code and decrypt it at runtime to make reverse engineering more difficult. --- Dr.Dimitri Vulis KOTM Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps