20 lines
1.1 KiB
Plaintext
20 lines
1.1 KiB
Plaintext
|
disasm:
|
||
|
find a way to recognize non-returning subfunction (eg thunk_exit)
|
||
|
DecodedData (dword, string, array, structs? ...)
|
||
|
make exe.decode generate DecodedData ? (for elf symbols, import names etc)
|
||
|
handle function-local stack space (esp+XX) -> private, nobacktrace
|
||
|
handle function-local labels (also rename local stack vars offsets)
|
||
|
forward register tracking ? with weak values ?
|
||
|
path-specific backtracking ( foo: call a ; a: jmp retloc ; bar: call b ; b: jmp retloc ; retloc: ret ; call foo ; ret : last ret trackback should only reach a:)
|
||
|
function signatures (a la FLIRT?)
|
||
|
|
||
|
decompiler: make one
|
||
|
ia32: emu fpu
|
||
|
encode: SplitReloc for pseudo-instrs (mips li => reloc high :a16 + reloc low :a16), use Reloc.encode(edata, off) or sumthin for edata.fixup
|
||
|
mips: find a way to have a 'li' instruction that resolve as 'loadlow' or 'loadhigh+orlow'
|
||
|
optimizer/deoptimizer (asm/dasm): reorder instructions
|
||
|
compile: optimize (jmp -> jmp, non-volatile vars, ..), support intrinsics?
|
||
|
debug: unify windows/linux API, support hw dbg registers uses (bpx/r/w..)
|
||
|
gui: debugger, hexedit, C code navigation
|
||
|
elf: symbol versions
|