Commit Graph

98 Commits

Author SHA1 Message Date
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
69d08e1514 * Huge refactoring of x86_x86im using r_anal_value
- next step is integrate it in the analysis engine and deprecate old stuff
* Add field "imm" (immediate value) to RAnalValue
2010-09-23 13:25:46 +02:00
Nibble
49dceaaffd * More work on anal_x86_x86im refactoring 2010-09-22 18:31:15 +02:00
pancake
1356a9bdd1 * Highlight destination offset when cursor on jmp/call in visual
* Show call decompilations under the opcode as a comment
* Rename RRegister as RReg
  - Deprecate r_reg_init and use r_reg_new
  - Rewrite the list.h dependency in r_reg in order to use r_list
  - Fix some memory leaks
* Implement push/pop methods in RReg class
  - add test case using it
  - will be used for register diffing and tracing
2010-09-18 02:51:17 +02:00
Nibble
f7693a14d2 * Huge refactoring of anal_x86_x86im
* Add comments in anal_x86_x86im explaining how x86im parse the opcodes
* Implement analysis for more opcodes
* Rename R_ANAL_OP_TYPE_RCALL into R_ANAL_OP_TYPE_UCALL (more generic)
* Update anal_mips.c and r_anal.vapi
* Update TODO
2010-09-05 21:20:56 +02:00
pancake
3c8ddce624 * Import more r_anal_var stuff from r1
- Implemented 'af[aAv]' command.
  - In r1 this command is 'CF[aAv]'
  - Variable contents are not displayed yet
2010-08-22 18:41:57 +02:00
pancake
3ced8a528c * Initial work on function_from_string parser for r_anal
- CF? for testing
2010-08-12 12:19:25 +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
pancake
67ad35187b * Refactor TODO
* Added r_anal_fcn_to_string() and get_var()
  - vars now have array size and direction
* Some random fixes
  - minor opimitzation in autocompletion (thx edu)
* Added Vtlr command to rename in visual tracked flags
2010-07-12 21:37:40 +02:00
pancake
07d55075ae * Add openbsd|netbsd|freebsd to the list of automatic ostypes
* Do not allow to build if shared object extension is not defined
* Remove the use of R_META_FUNCTION in r_core (this was breaking the build)
  - Now takes the information from the r_anal->fcns
  - Uses the new function r_anal_fcn_find()
* The 'pdf' command now prints the whole function independently of your
  offset. This also simplifies a bit the r_print_disasm function.
2010-07-03 03:35:26 +02:00
pancake
182b7737cf * Remove deprecated documentation
* Some syntax fixes
* Some changes in the design of the vars in r_anal
* Remove 'CF' command and META_FUNCTION type
* Fix 'S' '*' mark when in debugger
2010-07-02 02:01:51 +02:00
pancake
37c3e25664 * RCore now depends on RThread
- Loads rabin2 information in a background thread
  - Prompt is now much more responsive
  - Fix segfault in null pointered var in RThread
* rabin2 load strings only from data sections if found
* Split r_core_prompt/exec (make it cooperative-thread-friendly)
2010-06-23 17:30:16 +02:00
pancake
33fdb14643 * Added dummy anal.mips 2010-06-23 04:02:57 +02:00
pancake
255504b79c * Added initial aop_to_string() method for RAnal
- accessible via asm.decode
* Add more 'Vd' keys (data, code, string, ..)
2010-06-21 11:55:48 +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
pancake
c8da941768 * Very early work on r_anal_call api
* Initial support for visual cursor with invert cons in 'pd' bytes
  - Some changes in '*' and '/' keys in visual modes (+-16)
  - '+/-' in visual cursor works as in r1 (inc/dec cursor byte)
* Rename 'zf' into 'zh' for header, not function
  - 'zf' stands now for function signatures (args, types, ret, ...)
2010-06-17 17:55:39 +02:00
pancake
23ad3d2415 * Added asm.linescall=false (default)
- Implemented in anal_reflines to skip call analysis for lines
* Set dbg.trace=true by default
* Display trace count and times in 'pd' (asm.trace)
  - counter starts as 1, not 0 :)
* Added 'absolute' variable in RAnalValue (not yet used..)
  - Defines the sign of the value (needs arch-dependent code)
* Sync TODO files
2010-06-17 02:22:50 +02:00
pancake
882d7efa7b * Add more 'cmp' opcodes support in analysis for x86
* memref now specifies the size of pointer
  - this is serialized as a cast (char) ..
  - no sign support yet
2010-06-17 01:48: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
pancake
16089bb6e9 * Fix build of binr/
- Some missing deps everywhere
* Initial work for RAnalCond
2010-06-15 00:46:18 +02:00
Nibble
aa762573b5 * Fix r_debug build
* More random fixes in r_anal
2010-06-14 18:52:49 +02:00
pancake
d3c0819cc7 * Some fixes in make all/clean
* Initial work on RAnalCond
2010-06-14 16:20:54 +02:00
pancake
4bd719546c * Implement RAnalRef as a struct instead of a hacky ut64 pointer
- Support data and code reference specification
* Also handle 'jmp' as code references
2010-06-14 00:57:40 +02:00
pancake
c9a403cf71 * More work on 'at' command
* RRange ported to r_list (not yet tested)
* Fix r_cmd.vapi RCmdPlugin struct definition
2010-06-04 23:47:35 +02:00
pancake
9ceeae1f54 * Added refptr in RAnalOp
- Used only from ARM code analysis
* Implement ELF get_main for ARM ELF's
2010-06-02 23:36:05 +02:00
Nibble
5c35f6e359 * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
pancake
76e52fdeb0 * Added install-symlink (0.3s vs 3s) faster install for devel
* Added 'S' key in visual mode (step over)
* Safer 'dcc' and 'dcr' commands using step over if necessary
  - Skip current instruction (do not lock on calls, rets..)
* Implement step over functionality
2010-05-24 17:51:51 +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
pancake
be12c8f284 * Added anal_java plugin (copypasta from r1)
- Split java_ops array into a separate object file
* Fix r_config.vapi and add RConfig instance in RCore definition
2010-05-23 14:31:18 +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
Nibble
7abcfe6852 * Refactoring
- Remove all init functions (included in _new)
  - Update vapi's (needs more work)
2010-05-20 17:40:58 +02:00
Nibble
7184530c8a * r_anal
- Add 'st64 stackptr' to RAnalAop
    (avoids pb with 'push imm' where aop.value=imm and simplifies code)
  - Fix stackframe analysis detecting reg size
  - Update old x86 plugin
* r_core
  - Little refactoring of stackframe stuff
2010-05-19 03:55:20 +02:00
pancake
b8e98f3a00 * Add bb_list() method to RAnalFcn class
* Handle function boundaries in 'pd'
* Reset stack_ptr=0 when leaving a function body
* Fix 'asm.bytes=false' (display flags as newlines)
* Fix 's+' and 's-' (seek redo, seek undo)
  - Bindied in visual mode as 'u' and 'U' keys
  - Added 's*' command to list seeking history
* Add dummy file.md5 eval var
  - TODO: must be done by rabin2 and checked by project file
2010-05-19 02:39:01 +02:00
Nibble
8ff37cd30b * r_anal
- Add r_anal_strmask
  - Add nopcode (opcode count) to RAnalAop
* r_util
  - Fix constant types in r_types_base
* Add r_anal stuff to TODO
2010-05-16 14:04:08 +02:00
Nibble
6759768392 * r_anal
- simplify local var/args analysis
  - Fix var sign in x86im plugin
  - Add analysis support for some missing opcodes
* r_parse
  - Fix asm.filter
* r_util
  - Change r_hex_bin_truncate type to st64
2010-05-14 23:04:10 +02:00
Nibble
5c3c8e70c6 * Initial import of x86im (by pluf) into 'x86/x86im/'
* Add dummy ranal plugin for x86im
* Move dislen stuff to 'x86/dislen/'
* Add "import msdn" to TODO.refactoring

--HG--
rename : libr/anal/arch/x86/dislen.c => libr/anal/arch/x86/dislen/dislen.c
rename : libr/anal/arch/x86/dislen.h => libr/anal/arch/x86/dislen/dislen.h
2010-05-03 12:37:51 +02:00
Nibble
9207ece839 * Fix segfault printing big buffers
* Modify r_anal_reflines_str to return char*
2010-04-08 18:29:46 +02:00
Nibble
d8cb940a9d * Initial refactoring of r_anal & r_core 2010-04-07 13:43:50 +02:00
pancake
de6e7e5900 * Some build fixes 2010-03-23 16:01:18 +01:00
Nibble
e0635a8beb * r_asm
- Fix x86.olly plugin
2010-03-19 13:51:28 +01:00
pancake
1521ccf621 * Initial VAPI for RAnal 2010-03-19 12:23:14 +01:00
pancake
6d6ede7ee6 * Disassemble branch-in-the-middle instructions
- Uses reflines code analysis to get some hints
* Rename RAnalysis into RAnal
2010-03-19 12:00:04 +01:00
pancake
d6125712b5 * Add some missing methods in some vapis for valaswig
* Merge r_macro inside r_cmd
  - Rename RCommand to RCmd
* Propagate LIL_ENDIAN in userconf.h.acr
* Simplify configure script in swig/
  - valaswig is now mandatory
* Add 'st.fastcall' examples.

--HG--
rename : libr/macro/macro.c => libr/cmd/macro.c
2010-03-18 22:22:21 +01:00