Commit Graph

97 Commits

Author SHA1 Message Date
pancake
a45df6c14f * Split 'ap' in two cmd0s
* Add missing anal_all() in RCore vapi
2011-07-05 17:14:39 +02:00
pancake
17189725d2 * Fix other use-after-free bugs related to r_list_unlink
- Use r_list_delete instead of r_list_unlink in various places
    - Some operations are now a bit faster
2011-04-29 13:55:27 +02:00
Nibble
f53e2ac332 * Fix quick jumps in Visual mode using chache
* Clean up build & remove libr.so target
* Update TODO
2011-03-03 16:52:51 +01:00
Nibble
1535b4c5c1 * Don't flag imports/symbols twice (also for functions)
* Remove unnecessary calls to r_flag_space_set()
* Show calls nicer in decode mode
2011-02-28 17:27:08 +01:00
Nibble
7eefc3b582 * Fix bb analysis
- Remove depth checks, it makes sense only for fcns
* Update r_core vapi
2011-02-25 20:23:07 +01:00
Nibble
332524e120 * Rename r_anal_aop_* to r_anal_op_*
--HG--
rename : libr/anal/aop.c => libr/anal/op.c
2011-02-24 14:06:49 +01:00
Nibble
8546c2d61b * Initial implementation of cmd 'Cv' for renaming vars
* Add r_parse_varsub() to r_parse
* Add config variable 'asm.varsub'
* Minor fixup in core/anal.c
2011-02-23 15:17:06 +01:00
Nibble
fc9d5f2dca * Filter loc's in 'afl' output 2011-02-18 13:38:37 +01:00
Nibble
affc72e255 * Minor fixup in 'ag' (print also syms) 2011-02-11 17:11:31 +01:00
Nibble
2a477ce8b7 * More refactoring of r_core_anal_*
- Remove ugly pbb
* Add support for global diff graphs
* Fix global graphs
2011-02-11 16:56:38 +01:00
Nibble
f3f094117a * Huge refactoring of r_anal code and API 2011-02-11 11:22:43 +01:00
Nibble
c16f6d7777 * Sort basic blocks after analysis
- Make diffs more accurate if split is enabled
2011-02-09 22:51:25 +01:00
Nibble
ead4e9502f * Simplify type assignment in r_anal
* Include fcn type in 'rabin2 -r' output
2011-02-08 00:15:12 +01:00
Nibble
cc9cefa74e * Some refactoring of r_anal
- Add fcn types for syms and imports
  - Filter bindiff matches by type (speed up analysis)
  - Assign the right fcn type in bin_load
* Fix segfault in r_anal
  - Solve bug with unknown opcodes + graph splitting
* Update more vapi's
2011-02-07 17:43:50 +01:00
pancake
7bb5b2d46d * Many bugfixes in RIOMap handling and 'o' command
* Added util/bitmap (hashmap of bits)
2011-02-07 09:46:01 +01:00
Nibble
1d83a7ba25 * Some optimizations in r_anal
- bb's are included in fcn struct
  - analyze bb's and fcn's all together
* Update some vapis
* Fix build
2011-02-04 14:03:59 +01:00
Nibble
5b9fd63c1f * More work on gdiff
- Follow basic blocks instead of diffing fcn->addr+fcn->size
    vs fcn2->addr+fcn2->size
* Remove unused r_core_anal_graph_fcn
* Fix build
2010-12-24 16:58:27 +01:00
Nibble
2e26e35584 * Add bb list into RAnalFcn structure
* Analyze bbs per function
* Remove gdiff from radiff2 temporary (deprecate?)
  - Meanwhile ragdiff2 should be used
* Update TODO
2010-12-24 13:27:20 +01:00
Nibble
28d0a62430 * Change gdiff API so it takes 2 core's as args
* Don't output diff info and vars in 'afl' for loc's
* More refactoring of gdiff
2010-12-06 03:34:44 +01:00
Nibble
92baebdadd * More optimizations in gdiff
* Fix af* output
2010-12-05 10:44:27 +01:00
Nibble
a0ae2c2286 * Show detailed info for diffing in afl output
* Create struct RAnalDiff and move diff related fields inside
* Move {RAnalFcn, RAnalBlock}.diff from int to RAnalDiff*
* Add r_anal_diff API
2010-12-05 08:46:56 +01:00
pancake
96c998fe78 * Fix XREFs and xdot graph output 2010-12-01 23:30:00 +01:00
Nibble
0ffefbc320 * Modify cmd 'a' to analyze all the fcn's and bb's of the bin 2010-11-27 04:20:19 +01:00
Nibble
e4832f435d * Distinguish betwen fcn's (call refs) and loc's (jmp refs)
* Show fcn type and code xref type in 'afl' output
  - C for calls, J for jmps
* Add optional argument 'type' to command 'af+'
  - l for loc's, f for fcn's (default)
* Add argument 'type' to r_anal_fcn_add()
* Add field type to RAnalFcn and enum RAnalFcnType
2010-11-23 17:15:33 +01:00
Nibble
b3cd57f573 * Add arg reftype to r_core_anal_fcn()
* Add R_ANAL_REF_TYPE_CALL and R_ANAL_REF_TYPE_NULL to RAnalRefType enum
* Set type R_ANAL_REF_TYPE_CALL to call refs during opcode analysis
* Fix bug in r_core_anal_fcn() increasing performance
2010-11-23 14:05:23 +01:00
Nibble
60f54b6969 * Add r_core_anal_fcn_cc() in r_core for Cyclomatic Complexity calc
* Add command 'afc'
* Add fields 'ncalls' (number of calls) and 'conditinal' to RAnalBlock
* Set anal.split=true by default
2010-11-22 15:14:54 +01:00
Nibble
71978e186f * More optimization on the analysis loop
* Add config_analsplit_callback() in anal/config.c to set RAnal->split
* Add field split to RAnal struct
  - Avoid unnecessary call during BB analysis
* Set the default anal depth to 100
* Take into account internal calls in xref analysis
* Rename anal_x86_x86im to anal_x86 and make it the default anal plugin
* Rename anal_x86 to anal_x86_simple (x86.simple)

--HG--
rename : libr/anal/p/anal_x86_x86im.c => libr/anal/p/anal_x86.c
rename : libr/anal/p/anal_x86.c => libr/anal/p/anal_x86_simple.c
rename : libr/anal/p/x86_x86im.mk => libr/anal/p/x86.mk
rename : libr/anal/p/x86.mk => libr/anal/p/x86_simple.mk
2010-11-20 16:47:15 +01:00
pancake
96797846e9 * Fix io_ptrace_read when memory error occurs
- Fixes graphs in debugger mode
2010-11-19 00:49:05 +01:00
Nibble
a1d0887ca8 * Fix build (update core/anal.c with the last changes in r_bin)
* Implement extract in rabin2
2010-10-04 04:01:25 +02:00
Nibble
4369761655 * Fix typo in printf 2010-09-28 19:57:02 +02:00
Nibble
7d1303292e * r_anal
- Fix segfault in anal_x86_x86im (64bits)
  - always show analysis warnings
* r_core
  - Fix /a output
2010-09-28 18:52:46 +02:00
Nibble
697490a661 * r_core
- Implement 'ar' commands
  - Show XREFS in disassembly
* r_anal
  - Add r_anal_xref_get
2010-09-28 18:05:31 +02:00
Nibble
eb811bbf08 * r_core
- Deprecate ah and add anal.plugin
  - e anal.plugin=? list available plugins
  - Add the command 'ar' to handle refs/xrefs
  - Remove old CX and Cx stuff
  - Remove afg (done by af)
* r_anal (& r_meta)
  - Remove refs/xrefs stuff from r_meta
  - Handle refs from r_anal
  - Add r_anal_ref_{add, del}
* rabin2
  - Add 'e anal.plugin' to the output of rabin2 -Ir
2010-09-28 13:58:03 +02:00
Nibble
e5bc46da65 * Update r_anal with the changes introduced in r_bin 2010-09-24 21:30:33 +02:00
Nibble
59ac6a7c8b * Refactoring of /a
* ptrdepth works right with code and data refs
* More work in x86im plugin
  - Fill op.refs for more opcodes
  - Next step is a massive refactoring using r_anal_value
2010-09-08 11:52:10 +02:00
Nibble
98a09ecd52 * ranal2
- Add stackop2str() and optype2str()
  - Output op type
* r_anal
  - Fix fcn analysis
  - Remove test_anal.sh
2010-08-25 02:27:42 +02:00
Nibble
4b052b53ee * r_core
- Add cfg var anal.ptrdepth to define analysis depth for indirect references
  - Add support for indirect references to /a (needs more testing)
* r_io
  - Remove perror msg from r_io_read_i()
* r_anal
  - Minor fixups in arm and x86 plugins
2010-08-19 02:30:12 +02:00
Nibble
8768a18a88 * r_core
- Add support to '/c' for "multiple instructions" search
    with search.asmstr=1
  - Move r_core_asm_search functions to core/asm.c
  - Fix typo in r_core_anal_search()
2010-08-12 14:54:24 +02:00
Nibble
38b4665bb1 * visual mode
- Fix flickering while keeping pressed s or S (step, step over)
  - Prompt "Press any key" after using ':'
* r_core
  - Group refs under CODE & DATA in afl output
  - Remove command CF (use af+ instead)
2010-08-06 17:19:09 +02:00
Nibble
a7750b3204 * r_anal
- Add field at to RAnalRef
  - Set ref->at to the addrees of the opcode which does the
    jump/call
  - Set correctly the xrefs "from" address
* r_core
  - Modify afl to accept an optional argument [fcn name] to
    filter output by function
  - Change afl output to group xrefs by type (code and data)
2010-08-02 12:42:59 +02:00
Nibble
2251f089fa * Fix bug analyzing fcns
* Update TODO
  - stackptr is correctly handled in 'ret n' instructions
2010-07-31 20:00:54 +02:00
Nibble
67478d4bfb * Fix bug flagging analyzed functions
* Add libopenssl to configure report
* Update TODO
2010-07-17 15:50:09 +02:00
Nibble
89a63b5c3a * Fix segfault parsing imports in mach-o
* Simplify the output of the command 'S'
* Update TODO
2010-07-11 13:15:18 +02:00
pancake
989082a699 * Hacky fixes for Cx/CX xrefs in 'pd' and r_meta
- rmeta now uses m->printf from r_cons (grep-friendly)
2010-06-25 18:00:17 +02:00
pancake
255191c670 * Some more work on r_cons_grep
* Minor refactor in TODO file
* Display xref data (Cx/CX are broken atm)
* Added Vx command
* Compare flag names with ut64 hashnames (faster execution)
* Swap d->i and x->d print formats
* Hint in r_str_cmp
2010-06-25 11:22:14 +02:00
pancake
e14bbdf6e2 * Fix ^w in r_line
* Initial implementation of /a command
  - Search for code/data references using code analysis
* Add search.from and search.to eval vars and honor them in '/' command
2010-06-25 00:21:22 +02:00
pancake
ade05c9aeb * Display some string references on x86
* In 'pd' display strings as text, not opcodes
* Added 'Vdu' command to undefine metadata and flags on cursor
* Better support for visual cursor
* Added f-@ command to undefine flags at given address
* Fix parse of C* commands
* Added C- and C[xXsSm..]- to unset metadata
* Disable cursor when quitting visual mode
2010-06-21 01:58:45 +02:00
pancake
4f8fc7d926 * Added traced field in RAnalBB
- Display 'traced' flag in 'abl' command
* Initial work on 'dd' command (filedescriptors)
  - API defined, not yet implemented or used
2010-06-18 11:09:19 +02:00
pancake
123faacd3c * Implement r_anal_cond_eval() and r_anal_value_to_ut64() functions
- Code seems to work and basicblock conditionals can be evaluated
  - Show 'match' result in 'abl' command
  - Wrong namespace
2010-06-18 00:53:47 +02:00
Nibble
9e49939dab * Revert wrong "bb memory leak" fix (again xD)
- RAnalBlock must keep a list of the analyzed opcodes
  - Those RAnalOp are not freed because they are added to this list
2010-06-17 10:04:51 +02:00