docs(mx-re): add Ghidra headless decompilation to the toolchain
This commit is contained in:
@@ -30,6 +30,18 @@ Useful `CMDS.txt` debugger commands:
|
|||||||
This resolves the segment/relocation mapping that flat static disassembly of the
|
This resolves the segment/relocation mapping that flat static disassembly of the
|
||||||
ROM could not (e.g. `SCANNER.DYL` / `SCANAPP` code).
|
ROM could not (e.g. `SCANNER.DYL` / `SCANAPP` code).
|
||||||
|
|
||||||
|
|
||||||
|
**Decompilation (Ghidra headless):** extract the DYL region to a slice and load
|
||||||
|
as 16-bit real-mode x86:
|
||||||
|
```
|
||||||
|
ghidra-analyzeHeadless PROJ NAME -import slice.bin -processor "x86:LE:16:Real Mode" \
|
||||||
|
-scriptPath SCRIPTS -postScript decomp.java -deleteProject
|
||||||
|
```
|
||||||
|
`SCANNER.DYL`/`SCANAPP` decompile to readable pseudo-C this way (Ghidra 12 needs
|
||||||
|
a Java GhidraScript, not Python). Caveat: TopSpeed C uses the register-based
|
||||||
|
`jpi` calling convention, so argument recovery may need convention hints, but
|
||||||
|
control flow, struct access and the `int` service calls read clearly.
|
||||||
|
|
||||||
**Static RE:** `radare2 -e asm.arch=x86 -e asm.bits=16 w2mx_v7.20f_eng.bin`
|
**Static RE:** `radare2 -e asm.arch=x86 -e asm.bits=16 w2mx_v7.20f_eng.bin`
|
||||||
(good for strings, byte-pattern search, and clean fixed-mapped regions).
|
(good for strings, byte-pattern search, and clean fixed-mapped regions).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user