
				################
				ELFsh TODO phile
				################

IMPORTANT NOTE:
---------------

Put your name on the feature you are implementing, so that we avoid 2 coders to
do the same thing .


[0.51b3]


	. 'Flush' command => flush the mods from a bin
	. Be sure that LKM infection technique works with ELFsh

	. implement elfsh_strip()
	. elfsh_save_obj() need file duplication
	. Faults when 1/ changing sh_size and printing sect OR 2/ launching invalid script
	. Clean disasm code and modflow code
	. More tests on modremap
	. 'stealth mode' (do not insert symbols and obfuscate SHT)
	. Unified relocation engine and automatic relocation for ET_EXEC/ET_DYN

	. Update libelfsh REF and do manpages
	. Integrate autoconf (skyper proposed to do it)

[0.51b4]
[SHT rebuilding : use ELFsh 0.43b for a better implem of this feature]

 	. Bad .dynamic insertion => .shstrtab sh_offset += 9 (why ?)
	. fix bug in mapped_offset (offset not updated)
	. Bad sh_off in elfsh_rebuild_sht() => bad output file (why ?)
	. rebuild .text and .data using PHT (warn: size unknown!)
	. rebuilt .init and .fini using .dynamic (warn: size unknown!)
	. consider the padding (max 3 bytes) in SHT reconstruct .
	. correct the '|' thing in PHT linking perspective .
	. Reconstruct .shstrtab if missing but SHT is present
	. SHT reconstruction paper

[0.51]
	. PHT, PLT, DYNAMIC, GOT, CTORS, DTORS entry insertion API
     	. Hash insertion API (synchronized with .dynsym/.dynstr modifs)
	. INSERT VM commands for sections, symbols, dynsyms, got, ctors, dtors, dynamic, rel*, plt
	. Variable automatic creation (UINT / STR)
	. Special variable $_ (like in perl)
  	. Variable Destructions, Bean Cleaning
	. Loop and Condition capability (cmp, jmp, jz, jnz)
      	. Support file building from scratch and support ET_REL injection on those

[0.52]
      	. Version section rw API
	. Improve completion (do better tables in tables.c)
	. Miss a last_errfile pointer in the world and arrange whole error system
	. Support 'addr' L2 field for got, ctors, dtors, rel, dynsym, sym (return the object address)
	. Advanced relocation entries lookup in grammar.c
	. Support SET/GET byte/word/dword on RAW objects (address, foffset, and using symtab !)
	. Section, Section data, got, ctors, dtors, dynamic, rel*, plt removing ELF API
	. REMOVE VM commands for section data, sections, symbols, dynsyms, got, ctors, dtors, dynamic, rel*, plt

[0.53]
	. Eliminates more FP in the relocator
	. Libasm handlers scripting
	. ET_EXEC 2 ET_DYN [with relink command]
	. ET_REL extraction from ET_EXEC [with reldel command]
	. SUN/x86 objets translation into GNU/x86
	. ET_REL insertion with additional PLT/GOT/REL/DYNSYM/DYNSTR entries
	. ET_REL insertion into ET_DYN

[0.6]
	. ET_DYN 2 multiple ET_DYN (one per segment)
      	. vmlinuz format support with ET_REL insertion/extraction
      	. md5 known blocks to rebuild true symbol names in static binaries
       	. ET_CORE 2 ET_EXEC
	. elfsh_export_symbol() (copy .symtab entry as a .dynsym entry)
	. Support NULL section raw modifs (need sync with ELFhdr and SHT)
	. Obfuscation module
      	. Advanced stabs API for local variable resolving
      	. IA32, sparc32, sparc64, mips, alpha, pa-risc, PPC static function hooking
      	. IA32, sparc32, sparc64, mips, alpha, pa-risc basic virus checking engine
	(entry point, got/plt check, xrefs checks)
	. ELF64 support

[0.7]

 	. RISC meta assembly
 	. DFG graphs (Add .elfsh.dflow.xrefs section (filled by Elfsh32_Xrefs_ent))
 	. PORT/DOC again
