2009-04-02 00:07:58 +00:00
|
|
|
____ ___ ____ ___ ____ ___ ______ ____
|
|
|
|
| _ \/ \' \/ \ _ \/ _ \ \__ | / \
|
|
|
|
| < V . T . V < _/ .--'_/ | () |
|
|
|
|
|_|\__|_|__|___/|_|_|_|\__\___/ |_____(_)____/
|
|
|
|
|
2010-06-18 00:08:10 +02:00
|
|
|
|
2009-04-02 00:07:58 +00:00
|
|
|
<{include libr/TODO}>
|
2010-02-05 12:21:37 +01:00
|
|
|
|
2010-06-18 11:09:19 +02:00
|
|
|
0.5 RELEASE
|
|
|
|
===========
|
|
|
|
|
|
|
|
Bugs:
|
|
|
|
-----
|
2010-06-18 17:52:30 +02:00
|
|
|
* fix Vu, doesnt seems to work fine ..
|
2010-06-18 11:09:19 +02:00
|
|
|
* nibble: trace counts after step..thats not correct!
|
|
|
|
|
|
|
|
Features:
|
|
|
|
---------
|
2010-06-21 00:48:06 +02:00
|
|
|
* Handle metadata from disassembler
|
2010-06-18 17:52:30 +02:00
|
|
|
* pancake: FileDescriptors: dd -- copy from !fd in r1
|
|
|
|
* Write manpages for r2rc, r2rc-tool, rasign2
|
2010-06-18 00:56:32 +02:00
|
|
|
* pancake: we need an api to define function signatures
|
|
|
|
- integrated with function signatures
|
|
|
|
- offset -> formatstring (offset is the key to function signature)
|
2010-06-17 17:55:39 +02:00
|
|
|
* pancake: implement RAnalCall (analyze function arguments, return values, propagate types..)
|
2010-06-18 00:56:32 +02:00
|
|
|
- define number of arguments for given function
|
2010-06-18 17:52:30 +02:00
|
|
|
- warn if signature and analysis differs in number of args or so..
|
2010-06-18 00:56:32 +02:00
|
|
|
* gerardo?: implement GMP in util/big.c
|
2010-06-17 02:22:50 +02:00
|
|
|
* Implement C command as in r1 (same for visual..define strings, hexdumps, etc..)
|
2010-06-18 11:09:19 +02:00
|
|
|
* nibble: diff code analysis
|
2010-06-17 02:22:50 +02:00
|
|
|
- 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)
|
2010-04-07 11:07:59 +02:00
|
|
|
|
2010-06-18 11:09:19 +02:00
|
|
|
---8<------------8<------------------8<---------------------8<------------- -- - -
|
|
|
|
|
2010-06-17 02:22:50 +02:00
|
|
|
Analysis
|
|
|
|
========
|
2010-06-18 17:52:30 +02:00
|
|
|
* Implement more get_main() (NOOB)
|
2010-06-17 02:22:50 +02:00
|
|
|
* Do we have to enable jump/call toggles for breaking basicblocks? (yes/no)
|
2010-06-18 00:56:32 +02:00
|
|
|
- pancake: no
|
|
|
|
- nibble: ?
|
2010-04-05 22:49:22 +02:00
|
|
|
|
2010-06-17 02:22:50 +02:00
|
|
|
Bindings
|
|
|
|
========
|
2010-06-18 11:09:19 +02:00
|
|
|
* 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 ();
|
2010-06-17 02:22:50 +02:00
|
|
|
* 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
|
2010-03-25 21:14:28 +01:00
|
|
|
|
2010-06-17 02:22:50 +02:00
|
|
|
Build system
|
|
|
|
============
|
2010-06-18 17:52:30 +02:00
|
|
|
* Store version information in libraries ? debian claims for it
|
2010-06-17 02:22:50 +02:00
|
|
|
* 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)
|
2010-06-18 17:52:30 +02:00
|
|
|
* Move 'r_syscall_t' stuff into r_debug (sync r_core)
|
2010-06-17 02:22:50 +02:00
|
|
|
* merge r_asm and r_anal?
|
2010-06-18 17:52:30 +02:00
|
|
|
* what do we have to do with r_th, r_parse and r_vm ?
|
2010-05-21 01:46:26 +02:00
|
|
|
* Is RCore->block and blocksize a RBuf ? refactor!11
|
2010-06-18 17:52:30 +02:00
|
|
|
* 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__
|
2010-06-17 02:22:50 +02:00
|
|
|
|
|
|
|
Design
|
|
|
|
======
|
2010-06-18 17:52:30 +02:00
|
|
|
* Implement 'av' command we need it (really?) how about to eval with ?
|
2010-06-17 02:22:50 +02:00
|
|
|
* 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 ?
|
2010-06-18 17:52:30 +02:00
|
|
|
* Add RLog API.. pipeable to disk and stderr..also hookable ..cool for ui
|
2009-09-08 18:16:52 +00:00
|
|
|
|
2010-06-17 02:22:50 +02:00
|
|
|
Future
|
|
|
|
======
|
2009-02-09 12:42:54 +01:00
|
|
|
* 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
|