Commit Graph

55 Commits

Author SHA1 Message Date
pancake
932279ed7e Initial work to disable FCN_OLD. 2014-09-23 00:40:35 +02:00
pancake
196cfd0534 Initial major cleanup of the RAnal module 2014-09-22 01:39:24 +02:00
jvoisin
975daf00f5 Coverifix 2014-07-30 22:26:13 +02:00
pancake
d25cafe4d4 Check Java version in RBin's check(), cleanup (-44LOC) 2014-02-22 00:19:16 +01:00
Adam Pridgen
efcad51646 Fixing coverity issues and a potential buffer overflow in bb->op_bytes 2014-01-07 04:31:56 +01:00
Adam Pridgen
bc2ee1f869 Improved plugin analysis allowing plugin developers to define custom
analysis algorithms.
Java analysis plugin is re-written to leverage this capability.
Added some new R_ANAL types, and some of the respective operations and strings.
Updated io-component files to get file size and info
2014-01-03 00:28:46 +01:00
pancake
230efd1f05 Rename {RAsmRAnal}Op inst_len and length to size 2013-12-06 05:04:17 +01:00
Adam Pridgen
88fbfd3301 mend 2013-12-02 00:45:07 +01:00
Adam Pridgen
519190801b Rewrote backward disassemble with a greedy backward algorithm, added a find api to rlist, label to bb struct 2013-12-02 00:09:22 +01:00
pancake
ab654dea32 Fixes in analysis, add 'R' in visual to randomize colors 2013-09-30 04:23:58 +02:00
pancake
ece5d5b61d Analyze LEA re-references on x86-64 style code 2012-10-30 10:08:06 +01:00
pancake
5c236fa0e3 Add mips pseudocode, anal.hasnext, fix anal bugs
Better mips analysis
Implemented mips pseudocode plugin
Change asm.parser in asm.arch callback
2012-08-31 11:45:06 +02:00
pancake
062deb4b69 Fix build. enhace mips anal, add recursive disasm
Fix UCALL opcode analysis in mips
Initial implementation of 'pdr' recursive disassembler
Workaround for code wrong basic block size in pdr
2012-08-29 14:46:19 +02:00
Anton Kochkov
e43a1f921d Deep integration of complex types - build fixed 2012-07-22 12:41:53 +04:00
pancake
aafff4a55a * Initial fix for regdiff colorizer
- dro is working again
* Dummy agt command (analyze graph to destination)
  - Still wip, requires some changes in r_anal api
* Handle ap? command
* Use core->dbg->bits in core_reg
* dbt - backtrace accepts an argument to redefine ebp
* Use r_core_seek_delta in visual (fix Vh = 0xFFFFF..)
2012-06-14 02:18:15 +02:00
pancake
997a6dbd14 * Apply patch from @w_levin fixing lot of memory leaks - Thanks! 2011-12-16 16:33:06 +01:00
pancake
686e23c9d8 * Do not store opcodes in basic blocks (-40% mem usage in analysis)
* Fix some memory leaks in the elf parser
2011-11-15 09:56:22 +01:00
pancake
d36e430a59 * Fix build and sys/build.sh for BSD 2011-07-03 12:07:43 +02:00
pancake
c16d61b370 * Add missing fs/types.h
* Fix many memory leaks in r_anal_{op,cond}
* Fix signature of r_fs_name()
2011-11-14 00:21:25 +01:00
pancake
020dd97a8b * Fix many segfaults discovered in OpenBSD
* Fix segfaults caused by read buffer overflow in x86im
  - use a 16 byte delta buffer in function and basic block analysis
* Fix r_list_delete segfault caused by an use-after-free bug
  - Thanks Edd Barrett for notifying :)
* Clean up many warnings reported by OpenBSD's gcc
* Reduce analysis depth to 50
* Fix OpenBSD syscall definitions and fix generator python script
2011-04-03 02:43:15 +02:00
Nibble
c712fd87f6 * Show conditions in decode mode
* Fix bug with imm=0 in r_anal_value_to_string()
* Add 32bits regs to the anal_x86 profile
* Add r_anal_bb_from_offset()
2011-02-28 13:07:41 +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
pancake
06f91e2a28 * Code cleanup in r_anal (-30LOC) 2011-02-18 10:08:24 +01:00
Nibble
f3f094117a * Huge refactoring of r_anal code and API 2011-02-11 11:22:43 +01:00
pancake
7e22c00602 * Hide verbose messages of "unknown cond, opcode" in anal
- #define VERBOSE in bb.c and fcn.c
* Fix memory leak in cons_grep
  - Fix grepping for null strings
  - Fixes count of lines x~?
2011-02-05 02:55:50 +01:00
pancake
af7cfafc0d * Initial api for r_anal_cc (calling conventions)
- Not yet implemented, just a draft
* Added initial AVR cpu code analysis plugin
2011-01-26 21:54:39 +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
Nibble
c254af504f * More optimizations in gdiff
* Fix the usage message of radiff2
2010-12-04 15:24:39 +01:00
Nibble
f50fc41794 * Huge refactoring of gdiff using Levenshtein distance and binmasks 2010-12-04 15:14:53 +01:00
Nibble
caee8a1009 * return r_anal_ret_end in fcn and bb analysis if an unknown opcode is found
* re-autogen using acr 0.8.4
2010-11-26 00:44:47 +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
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
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
cfc552e156 * r_anal
- Fix bb split algoritm
* build
  - Fix "make clean" in bin/t
2010-08-02 09:54:50 +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
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
pancake
e36ef11025 * Initial working basic block conditional decompilation
- Only 'test' opcode for x86 is currently supported (just for testing)
  - analysis backend generates RAnalValue's for each argument
  - compiles a cmp+cjmp into a RAnalCond class
  - de/serializes the RAnalCond into an evaluable string
  - Make anal api more stable
* Fix a memory leak in anal_bb
* Reassign anal->reg into dbg->reg
  - Replicate dbg->reg into dbg->anal->reg
  - Such nasty cascade assignation..
2010-06-16 21:44:19 +02:00
pancake
a580ff4fa8 * Initial implementation of the subclassed RLFList class
- Implements a serialized RFList inside a RList container
  - Allows faster scans on contents
* Initial import of the RAnalCond/Value code
  - Not yet usable..just refactoring..
  - Handle null pointers in reg classes
* Added not-yet-working emit_arm.c for r2rc tool
2010-06-16 09:42:46 +02:00
Nibble
a129564c1c * r_anal
- Don't free appended aop's
  - Set bbc->cond = NULL in printed bbs list
2010-06-15 16:19:20 +02:00
pancake
16089bb6e9 * Fix build of binr/
- Some missing deps everywhere
* Initial work for RAnalCond
2010-06-15 00:46:18 +02:00
Nibble
68aeb6f92a * Add targets clean & mrproper to binr/Makefile
* Use r_list_free instead of r_list_destroy in r_anal
* Some minor fixups in r_anal
2010-06-14 18:29:52 +02:00
Nibble
629acd799d * r_anal
- Minor fixup in r_anal_bb_free
  - Init aop->mnemonic = NULL in r_anal_aop_new
2010-06-03 11:31:23 +02:00
Nibble
097edd11c6 * Add support for non-splitted graphs
* Add config var anal.split
* Fix segfault in r_anal & r_big
* Fix r_anal split algorithm
* Minor fixup in bb type assignment
* Fix partial graphs generation
2010-06-02 19:17:47 +02:00
Nibble
4f236eded5 * r_anal
- rename R_ANAL_BB_DIFF_* to R_ANAL_DIFF_*
  - add field diff to RAnalFcn
  - Allow r_anal_{bb,fcn}_set to edit an existing one
* r_core
  - Output diff state with afl, abl, af* and ab*
  - Allow to change the diff state with af+ and ab+
2010-05-24 13:57:49 +02:00
Nibble
9a76d39a7a * Add optional libgmp dependecy
* Update configure
* r_big
  - Prepare big.c to add gmp code
  - Implement r_big_{new, free} with libgmp
* r_anal
  - Change the type of {bb,fcn}->fingerprint to RNumBig
* r_flags & r_core
  - Add cmd 'af-*' which removes all flags
2010-05-24 11:15:32 +02:00
Nibble
2368a1e3b6 * r_bin_elf
- Fix section va bug
* r_anal
  - Store mnemonic in RAnalOp
  - Initial work on bindiff
2010-05-23 12:51:37 +02:00
Nibble
934112d2b7 * r_anal
- Fix bb->type resolution
  - Use bb->type as flag
* r_core
  - Mofify ab+ to accept more than one type
2010-05-21 19:20:42 +02:00
Nibble
ee92530330 * r_anal
- Fill aop type
  - Update r_anal_bb and r_anal_bb_add accordingly
* r_core
  - Add field type to ab+
    'h' = head, 'b' = body, 'l' = last, 'f' = foot
2010-05-21 18:23:01 +02:00
pancake
8a2e418ca2 * Add not-yet-used 'RAnalBlock->type' field
* Added r_list_length() method
* Add missing enums in RAnal
2010-05-21 17:35:05 +02:00
pancake
02c11613ec * Clean TODO files
* Rename refactorization in RAnal
  - Fix compilation of vala test programs
  - RAnalBB -> RAnalBlock, RAnalAop -> RAnalOp, ...
  - sync vapis
2010-05-21 01:46:26 +02:00