to turn a blackbox into a suitable specification of behavior, such as pseudocode or a modifiable binary, i heard a normal approach would be use of a disassembler.
myself, i have little experience with using a disassembler that way, i would rather look at all the opcodes by hand in a debugger and spend weeks charting them. you can also write or use a program that does this automatically, under various conditions
