radare2/TODO
pancake ace71e8be4 * Load string flags into r2
- Fix string filtering
* Display string references for ARM (load indirections)
* Fix numeric indexing of branch references in visual mode
* Display '>' char for call instructions
* More work on RMeta
  - unscape strings to avoid \n and \t
  - handle correctly the 'Cs' command
  - Add partial documentation for the rest of 'C' commands
2010-06-21 00:48:06 +02:00

106 lines
3.4 KiB
Plaintext

____ ___ ____ ___ ____ ___ ______ ____
| _ \/ \' \/ \ _ \/ _ \ \__ | / \
| < V . T . V < _/ .--'_/ | () |
|_|\__|_|__|___/|_|_|_|\__\___/ |_____(_)____/
<{include libr/TODO}>
0.5 RELEASE
===========
Bugs:
-----
* fix Vu, doesnt seems to work fine ..
* nibble: trace counts after step..thats not correct!
Features:
---------
* Handle metadata from disassembler
* pancake: FileDescriptors: dd -- copy from !fd in r1
* Write manpages for r2rc, r2rc-tool, rasign2
* pancake: we need an api to define function signatures
- integrated with function signatures
- offset -> formatstring (offset is the key to function signature)
* pancake: implement RAnalCall (analyze function arguments, return values, propagate types..)
- define number of arguments for given function
- warn if signature and analysis differs in number of args or so..
* gerardo?: implement GMP in util/big.c
* Implement C command as in r1 (same for visual..define strings, hexdumps, etc..)
* nibble: diff code analysis
- diff two programs
1st level:
- check all functions EQUAL, DIFFERENT, REMOVED, ADDED
- check all symbols
- check all imports
- check all strings
2nd level:
- basic block level diffing (output in graph mode)
---8<------------8<------------------8<---------------------8<------------- -- - -
Analysis
========
* Implement more get_main() (NOOB)
* Do we have to enable jump/call toggles for breaking basicblocks? (yes/no)
- pancake: no
- nibble: ?
Bindings
========
* code analysis with r_parse // isnt this already done? nibble?
- generate by just parsing the opcode
RAnalAopArg {
int size;
int delta;
int type;
}
r_anal_aop_arg_set ();
r_anal_aop_arg_get ();
r_anal_aop_arg_binmask ();
* generate accessors automatically from valaswig
* Script plugins
- We should enable r_lib to implement plugins in any
scripting language, so we can for example prepare
a .c stub interface for python/perl/ruby/..
- this requires a swig bridge
Build system
============
* Store version information in libraries ? debian claims for it
* install.sh (to track installed files ..)
changes and per-opcode execution count (RRange)
Refactoring
===========
* Move disasm loop into r_print (r_print should depend on r_asm)
* Move 'r_syscall_t' stuff into r_debug (sync r_core)
* merge r_asm and r_anal?
* what do we have to do with r_th, r_parse and r_vm ?
* Is RCore->block and blocksize a RBuf ? refactor!11
* Find a better name for r_buf_fread (really?)
* typedef all function pointers, like in r_bp
* Review r_io API
* rasm2 should be configurable at startup time to choose default arch (use environment?)
* correct result (R_TRUFAE), but with warnings (implement r_errno and r_errstr in r_util?)
* Finish and import the spp's getopt owns implementation in r_util (like in p9)
* Rename __UNIX__ as __POSIX__
Design
======
* Implement 'av' command we need it (really?) how about to eval with ?
* references: data (read, write), code (call, jmp)
* filter search results..
cc 8080 @@ hit* .. check for values that has changed.
- maybe we should 'cache' some memory regions
* Add 'prj.name', 'prj.desc'
* Add description to project e file.desc ?
* Add RLog API.. pipeable to disk and stderr..also hookable ..cool for ui
Future
======
* radare2 -e dbg.engine=vm -d ls
- load the program using r_bin in virtual space
- initialize vm and set regs
- debug backend should use the vm