radare2/TODO
2010-06-18 00:56:32 +02:00

89 lines
2.8 KiB
Plaintext

____ ___ ____ ___ ____ ___ ______ ____
| _ \/ \' \/ \ _ \/ _ \ \__ | / \
| < V . T . V < _/ .--'_/ | () |
|_|\__|_|__|___/|_|_|_|\__\___/ |_____(_)____/
<{include libr/TODO}>
VERY IMPORTANT
==============
* pancake: we need an api to define function signatures
- integrated with function signatures
- offset -> formatstring (offset is the key to function signature)
* fix Vu, deosnt seems to work fine ..
* pancake: implement RAnalCall (analyze function arguments, return values, propagate types..)
- define number of arguments for given function
- when the number of arguments differs between the calling
and the result of the code analysis of the given function
we should warn
- this kind of warnings must be done with r_log_ functions
so we hook it into a log file
* nibble: trace counts after step..thats not correct!
* gerardo?: implement GMP in util/big.c
* Write manpages for r2, r2rc, r2rc-tool, rafind2 and rasign2
* Implement C command as in r1 (same for visual..define strings, hexdumps, etc..)
* Implement 'av' command we need it (really?) how about to eval with ?
* code analysis with r_parse // isnt this already done? nibble?
RAnalAopArg {
int size;
int delta;
int type;
}
r_anal_aop_arg_set ();
r_anal_aop_arg_get ();
r_anal_aop_arg_binmask ();
* diff code analysis // nibble
- 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)
Analysis
========
* Do we have to enable jump/call toggles for breaking basicblocks? (yes/no)
- pancake: no
- nibble: ?
Bindings
========
* 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
============
* 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?
* Is RCore->block and blocksize a RBuf ? refactor!11
Design
======
* 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 ?
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