Disassembler/ Reassembler

Talk about development tools here

Moderator: BigEvilCorporation

Post Reply
Jazzmarazz
Very interested
Posts: 60
Joined: Wed Mar 12, 2014 11:11 pm
Location: Michigan
Contact:

Disassembler/ Reassembler

Post by Jazzmarazz » Tue Apr 01, 2014 3:41 am

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?

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Post by r57shell » Tue Apr 01, 2014 1:47 pm

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.
Image

Nemesis
Very interested
Posts: 791
Joined: Wed Nov 07, 2007 1:09 am
Location: Sydney, Australia

Post by Nemesis » Wed Apr 02, 2014 5:39 am

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.

Jazzmarazz
Very interested
Posts: 60
Joined: Wed Mar 12, 2014 11:11 pm
Location: Michigan
Contact:

Post by Jazzmarazz » Thu Apr 03, 2014 3:29 am

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. ;)

Post Reply