TODO in metasm-1.0.1 vs TODO in metasm-1.0.2

- old
+ new

@@ -1,16 +1,15 @@ List of TODO items, by section, in random order Ia32 - emu fpu - add all sse2 instrs realmode X86_64 decompiler CPU + Arm Sparc Cell Parser Allow single-file multiplexer (C code + Asm + asm16bit + ...) @@ -24,23 +23,24 @@ Encode FPU constants Disasm DecodedData Exe decoding generate decodeddata ? - Function-local namespace (esp+12 -> esp+var_42) Fix thunk detection (thunk: mov ecx, 42 jmp [iat_thiscall] is not a thunk) Test with ET_REL style exe Store stuff out of mem (to handle big binaries) Better :default usage good on call eax, but not on <600k instrs> ret use binary personality ? (uses call vs uses pushret..) - Improve backtrace -> patch di.instr.args exprs + Improve 'backtrace => patch di.instr.args' 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:) Decode pseudo/macro-instrs (mips 'li') Deoptimizer (instr reordering for readability) Optimizer (deobfuscating) Per-instr context (allows to mix cell/ppc, x86 32/16bits, arm/armthumb..) + Better save/load dasm state + Parse symbol.map generated by IDA for ELF files Compiler Optimizer Register allocator Instr reordering @@ -67,27 +67,23 @@ Autodecode structs FPU Handle/hide compiler-generated stuff (getip, stack cookie setup/check..) Handle call 1f ; 1: pop eax More user control (force/forbid register arg, return type, etc) + Preserve C decompiled line association to range of asm decoded addrs Debugger OSX Detour-style functionnality to patch binary code (also static to patch exe files?) Move constants in a data/ folder (ptrace reg numbers, syscalls, etc) Generic remote process manip create blank state linux virtualallocex - pax-compatible code patch through mmap Remote debugging (small standalone C client) Support dbghelp.dll (ms symbol server info) Support debugee function call (gdb 'call') - Manipulate memory through C struct casts -ExeFormat - Handle minor editing without decode/reencode (eg patch ELF entrypoint) - ELF test encoding openbsd binaries handle symbol versions LoadedELF.dump Check relocation encoding (eg samples/dynamic_ruby with cpu.generate_PIC=false) @@ -96,19 +92,21 @@ PE resource editor ? rc compiler ? add simple accessor for resource stuff (manifest, icon, ...) + parse PDB GUI debugger specialize widgets show breakpoints show jump direction from current flag values have a console frontend - better graph positionning fallback zoom font when zooming graph - copy/paste, selection + text selection + copy/paste map (part of) the binary & debug it (map a PE on a linux host & run it) + html frontend Ruby - compile ruby AST to native optimized code + write a fast ruby-like interpreter