Page 1 of 1

Disassembler/ Reassembler

Posted: Tue Apr 01, 2014 3:41 am
by Jazzmarazz
I need to find a program to disassemble a Genesis Homebrew into Assembly , allow for modifications and then be able to reassemble it for me. Where can I find one?

I have read about IDA Pro and 68kd, but the first is not free and the other may cause problems differentiating between code and data. Say for example my program is only a few hundred bytes; will 68kd become confused about data and code?

Posted: Tue Apr 01, 2014 1:47 pm
by r57shell
Any disassembler will be confused about code/data.
There is no way to detect code/data with 100% sure.

Best way is patch in place. Replace some code with jmp opcode to "jump out" of that code, then do some stuff, and return to code with another jmp.

Posted: Wed Apr 02, 2014 5:39 am
by Nemesis
Shameless plug: My emulator Exodus has an "Active Disassembly" feature which was designed for exactly this kind of task. It uses information gathered about the actual execution of the program at runtime, paired with some prediction features to trace code through branching structures that static disassembly can't do, like jump tables for example, while mapping offsets back to labels and attempting to identify related data blocks and map out data structures as well. I built this feature based on my experience doing this process manually for Sonic 2 about a decade back now.

Posted: Thu Apr 03, 2014 3:29 am
by Jazzmarazz
Nemesis wrote:Shameless plug: My emulator Exodus has an "Active Disassembly" feature which was designed for exactly this kind of task. It uses information gathered about the actual execution of the program at runtime, paired with some prediction features to trace code through branching structures that static disassembly can't do, like jump tables for example, while mapping offsets back to labels and attempting to identify related data blocks and map out data structures as well. I built this feature based on my experience doing this process manually for Sonic 2 about a decade back now.
If it were actually shameless, you would have posted a link. ;)