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