Commit Graph

433 Commits

Author SHA1 Message Date
pancake
ca432e3f04 * Initial import of the 'r_fs' API
- Allows to mount filesystems in virtual IO
  - Only dummy ext2 plugin ATM
  - Added 'm' command in r2 to manage mountpoints,
    list directories and retrieve files
  - Bonus: hacky version of grub/fs code to use it
    as a standalone API. Plugins will use it
  - API is quite simple and limited, read-only access
2011-01-12 00:01:06 +01:00
earada
0eaceff162 * Fix function asciiart in r_print_disas
* Add mmap & mmap_free windows support
2011-01-02 14:39:25 +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
earada
cf1d6a1d78 * Use RList in RFLags 2010-12-24 00:51:01 +01:00
pancake
29a870a269 * Minor cosmetic sugar fixes in CODE XREFs
* Some more fields into r_io vapi
2010-12-15 11:32:39 +01:00
pancake
ef9e96c03d * Some cosmetic fixes in 'pd' 2010-12-13 00:49:33 +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
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
fc11acc128 * More work in var analysis
* Put RAnalVar->type and RAnalVar->dir together
2010-12-03 13:52:11 +01:00
pancake
96c998fe78 * Fix XREFs and xdot graph output 2010-12-01 23:30:00 +01:00
Nibble
f55fb1accf * Fix r_anal_var_add() call in cmd.c 2010-11-29 20:11:49 +01:00
pancake
8aded92fa6 * Added C stub for plugin.vala
- Major cleanup in vapi/t Makefile
* Fix a format string bug in flags
2010-11-29 10:22:38 +01:00
Nibble
717713c3b2 * Rename cmd 'a' to 'aa' (analyze all) 2010-11-27 15:03: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
ed33751a8e * Add cmd 'a [@ addr]'
- Helper for af+ab (analyze functions and basic blocks)
* 'a?' shows analysis help
2010-11-26 13:13:45 +01:00
Nibble
7e8b8a9900 * Show /* func: */ or /* loc: */ in disassemble
* Filter fcn searchs by type (reduce pd time)
* Add arg 'type' to r_anal_fcn_find()
2010-11-23 19:55:31 +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
1f8d80e37c * Zero out UCALL and UJMP opcodes in r_anal_strmask()
* Add imports to functions with name fcn.imp.* in r_core_bin_load()
* Fix bug in cmd 'zg', truncate ouput file
2010-11-21 19:01:41 +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
pancake
421208a0c7 * Replace main for binsym in r_bin
* Added dummy commands for r_debug_fork/clone
2010-11-18 11:41:17 +01:00
pancake
0aafe05b45 * Step now accepts pid+tid
* Fix attach in w32 debugger
  - use dpa and get first thread by default
* Mark with asterisks the selected pid/thread (dp/dpt)
* Fix reg_write in w32
2010-11-17 02:31:56 +01:00
pancake
4db5cded34 * Fix w32dist find command
* Display TODO message in r2 -L
* Implement rax2 -s - and rax2 -
* Honor dbg->tid in many places
* Implement basic stuff for dbg->reason
  - Only w32 and *nix atm
  - Not yet displayed or used
  - Added many new reason types in enum
* Fix w32 register map
* Handle attach:// in io_w32dbg plugin
* Implement w32 process and thread list
  - You can now select the thread
  > dp      # list pids
  > dp=1424 # attach to pid
  > dpt     # list threads
  > dpt=580 # select thread
* Added dummy code to list windows
2010-11-17 00:56:48 +01:00
pancake
264f95a40e * Fix build in iOS 4.1 (darwin-arm)
- Honor CFLAGS everywhere
  - Use ut?? instead of uint??_t
* Add build instructions in doc/iphone
* Fix some out-of-range conditionals
2010-11-08 19:30:25 +01:00
Nibble
35dc03713d * Bypass bp in the remainder continues
* Disable stop_all_threads temporarilly
  - Only step once in bypassbp()
2010-10-28 21:20:44 +02:00
Nibble
4ddde68f05 * Initial work on fixing bp&&dc&&dc
* Fix bug in io_ptrace when it writes to mem in 64bits
* Minor cosmetic changes in test_x86im
* Update TODO
2010-10-28 20:47:21 +02:00
pancake
98cc88700d * Added much more detailed vapis
- Enhaces API support for valaswig bindings
  - I'm probably breaking the build
2010-10-28 00:55:07 +02:00
Nibble
c2dd0f1126 * Minor optimization in r_core_prompt()
- Avoid the use of r_config_get_i
* Apply pancake's patch
  - fix cmd 'bp' with flags
2010-10-27 19:00:45 +02:00
Nibble
a3ff1f5261 * Fix initial seek in debug mode to pc (use sr pc)
* Complete 's' help
* Fix dietline echo in 'r2 -v' mode
  - Add cb for scr.prompt
2010-10-27 17:45:53 +02:00
pancake
89680b63f0 * Fix eflags parsing for x86-32/64 debugger
- added ?f and ?b commands to parse bits and flags
2010-10-26 21:00:54 +02:00
Nibble
c79afe3568 * Add var vm.arch
* Fix vm arch setup at startup
* Fix flag set in visual mode when cursor is enabled
* Filter string names before adding flags in r_bin_load
* Fix r_flag_name_filter (do trim)
* Fix r_sys_rmkdir
* Update TODO
2010-10-23 14:27:13 +02:00
pancake
f7dd1dd66f * Build w32 python bindings in build.sh
* Added 'drb' command to show bytes of GPR
* Fix signature of r_print_hexdump and _hexpairs
* Enhace r_reg test case
* Fix swig/Makefile w32dist target
2010-10-19 22:17:58 +02:00
pancake
bbdf96a97d * Some work on the analysis of the cursor bug 2010-10-18 11:38:52 +02:00
pancake
9f7040dbf8 * Fix warnings in asmserv on windows
* Some alloca->malloc fixes for w32
* More error checking in r_sys_rmkdir
  - Uses the new r_sys_mkdir_failed() api
  - works on windows and posix
* Disable asm.dwarf when the plugin fails to init
  - Displays a warning message
* Added 'e scr.cols=16'
  - Determines the width of the hexdump (px, x)
  - Used also by Visual mode hjkl dimensions
2010-10-17 23:03:54 +02:00
pancake
5d946a8b21 * Apply some fixes for w32
* More nullptr checks
  - Fix 'drp'
* Fix build
2010-10-14 19:01:14 +02:00
pancake
93e69bab0e * Fix null pointer issue related to r_syscall and r_core 2010-10-14 17:06:09 +02:00
pancake
d607e969bc * Fix division by zero in VM code when using ATT syntax
- use intel syntax when running VM code from disasm loop
2010-10-13 18:07:55 +02:00
Nibble
f29444ab20 * r_core
- Add var asm.functions to show/hide function analysis in disasm
  - Take into account asm.{xrefs, functions} in disasm
* vapi's
  - Add bin to RCore in r_core.vapi
2010-10-09 19:13:10 +02:00
Nibble
b3ac5bd4d4 * r_core
- Add helpers r_core_disassemble_instr() and r_core_disassemble_bytes()
* bindings
  - Fix go detection
  - Update r_core.vapi
2010-10-09 13:54:08 +02:00
pancake
1fc70da3c9 * Analyze cmp/ldr/str opcodes in arm thumb
* Minor work to fix the cursor issues
2010-10-08 11:10:25 +02:00
pancake
cc4e664533 * Do not show cursor in visual mode when cursor is disabled 2010-10-08 00:48:07 +02:00
Nibble
44eff205c1 * r_core
- Fix DATA in disasm
  - Correct the number of lines showed with 'pd n'
* Update r_core vapi
2010-10-07 13:02:07 +02:00
Nibble
124aa07a96 * Add r_core_asm_bwdisassemble for backward disassemble resolution
* Add example using bwdisassemble in swig/vapi/t/bwdisassemble.vala
* Add field len to RCoreAsmHit
* Update vapi's
* Fix memory leak in r_core_asm_strsearch()
* Fix several vala examples
* Fix r_list_iterator warning in vala
2010-10-06 18:04:47 +02:00
pancake
8081f02601 * Fix uninitialized variable in rabin2
* Fix null pointer handling in rbin when no xtr plugin found
* Initial draft code for the x86 debug registers implementation
* Fix avr* command
2010-10-01 11:10:59 +02:00
Nibble
df9434b1ec * Make r_core_asm_strsearch more API-friendly
- return RList of RCoreAsmHit's
  - Add helpers for list handling
* Add type RCoreAsmHit
* Show hit code as comment with '/c', eg:
    [0x00402350]> "/c jmp e; ret"
    f hit0_0 @ 0x004078e8   # jmp eax; ret 0xffbc;
    f hit0_1 @ 0x00409416   # jmp ebx; ret 0x8b48;
    f hit0_2 @ 0x0040ded4   # jmp ecx; retf ;
* Update r_core vapi
2010-09-30 19:25:47 +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
pancake
d71fcd2708 * Do not show color prompt in windows
* Fix build on w32
* Finish the symgraph script
2010-09-24 19:04:33 +02:00
pancake
124786c1ac * Added 'drd' command to show only modified regs
* Added r_list_foreach_prev()
* Add RSyscallPort to handle Hardware I/O ports
* Remove libr/TODO and refactor /TODO
* Link with 'ld' in rarc2-tool for nasm
2010-09-24 16:45:56 +02:00
pancake
eb6dbb2245 * Initial draft implementation of hardware breakpoints
- use specific ptrace() calls in linux/freebsd to change regs
  - hwbp are not yet working, just basic DRX get/set
  - generic interface to handle hw bps in x86-32/64
  - needs to import DR# handling code from r1
2010-09-24 05:41:54 +02:00
pancake
84dd63b743 * Add 'bf' command to change block size based on flag size
- Added help in 'b?'
* Added support for bit-collection registers
  - eflags is now displayed as a string
  - debug/p/debug_native.c needs a correct x86 flag string
* Fix segfault when listing empty register sets
2010-09-24 04:09:39 +02:00
pancake
46aa9f5f7e * Implement stacked register storage
- Add support for register diffing
  - Colorize modified registers are step/cont
  - Add command 'dro' to show old register values
  - requires make clean
2010-09-23 20:42:35 +02:00
pancake
022e6c96f0 * Add pt command for print times (Thanks @earada for the patch)
- pt prints times in unix format
  - ptd prints times in dos format
  - ptn prints times in ntfs format
* Add cfg.datefmt in global config to define the format output of 'pt'
2010-09-23 12:59:54 +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
pancake
183dffcd6b * Fix push immediate opcode analysis in basic x86 analysis
* Import simple arm assembler
* Some fixes for the brainfuck disassembler plugin
2010-09-08 19:49:34 +02:00
pancake
14f5a6a6fd * Cleanups in many TODO/READMEs 2010-08-26 12:18:30 +02:00
pancake
984b5c4d16 * Apply edu's project patch
- CC now ask for size, like the rest of r_meta_add commands
  - Project tracks meta, xrefs and sections information and actual offset
  - Visual add comment patched to use new r_meta_add comment with size
  - Documented C* in r_meta help.
2010-08-26 04:19:12 +02:00
pancake
df9cc8983c * Try to fix r_io_bind segfault in 64bit boxes 2010-08-26 01:35:32 +02:00
pancake
72065de10a * Initial hacky implementation of RAnalCall in 'pd' 2010-08-25 12:35:08 +02:00
pancake
c6a115c602 * Import 'rtr.c' from r1 in order to implement '=' command
* Add missing r_socket_udp_connect()
2010-08-24 11:58:09 +02:00
pancake
8f6192738c * Apply patches from edu (Thanks)
- Fix '#' command
2010-08-24 04:09:12 +02:00
pancake
3edaed0067 * '|' at the beggining of command is an io pipe instead of console pipe
* r_line uses ansi code to clean line instead of drawing spaces
2010-08-23 19:13:19 +02:00
pancake
b07bf785be * Add the possibility to import/export regs from vm to debugger
* Parse rap:// in a different way, so we can now connect without
  opening any file. code is hardly simplified
2010-08-23 12:08:23 +02:00
pancake
eb0ce8208d * Initial implementation of '=' command
- Deprecate the useless '|' one
* Added rap.loop config var to wait for connections in loop
* All data operations in rap are now bounded to RMT_MAX
* Protocol implementation compatible with r1
  - Many endian hacks.. must take care of
* Use blocking operations for reading network packets
2010-08-23 06:39:23 +02:00
pancake
8f6bdc3560 * Add 'avrr' and 'avrc' commands to setup vm regs
* Many minor random fixes
* RVm api has an own architecture description file
  - r_vm_set_arch(vm, arch, bits);
  - add x86-16, x86-32, x86-64, arm-32
2010-08-23 00:48:44 +02:00
pancake
19f072f3f5 * Import Vv command to visually analyze functions from r1 2010-08-22 19:07:03 +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
675b04e7cd * Integrate r_vm into r_core
- Analyze code in order to do syscall analysis
  - Some fixes in r_vm to make it work
  - Add 'av' command to interact with the virtual machine
  - added r_str_subchr helper func in r_util
2010-08-22 17:56:50 +02:00
Nibble
5b9d174fbc * r_anal
- Add test_anal (to speed up the development of analysis plugins)
  - Add test_anal.sh (helper)
* r_core
  - Remove debug msg from the output of cmd 'i'
2010-08-20 21:47:58 +02:00
pancake
82d8b0f336 * Implement r_core_sysenv_update()
* Simplify some functions in core/cmd
* Move CF -> afs
  - Add documentation for 'afs' command
  - Accept numeric argument
  - Add support for 'get' and 'set'
2010-08-19 20:28:25 +02:00
Nibble
283c2efef9 * rabin2
- Add flag -n to filter by {symbol, import, section} name
* r_core
  - dmi accepts argument symname
  - more work on cmd parsing
2010-08-17 13:15:18 +02:00
Nibble
37fdce78f8 * Minor fixup O:) 2010-08-17 01:56:49 +02:00
Nibble
f41acb4729 * r_core
- Fix ."raw cmd" to interpret raw cmd output
  - Fix .cmd~str to interpret grepped output
* r_cons
  - Add r_cons_filter() to apply cons filters (grep, html...)
* Update TODO
2010-08-17 01:27:24 +02:00
Nibble
f841376cc8 * r_core
- More work on dmi
  - Don't flag symbols without any output
  - Output human readable format with 'dmi'
  - Output radare commands with 'dmi*'
2010-08-16 16:07:45 +02:00
pancake
3287f8d64d * Filter string to avoid escaped commands execution (r_str_unscape)
* More chars filtered in rabin2 -z (flag ..)
* Parse PLT in order to find matching ordinal in rgot.vala
2010-08-16 14:58:10 +02:00
Nibble
6727897e73 * rabin2
- Add flag -b to set a custom baddr
* r_core
  - Add command 'dmi' to flag the symbols of a given lib in memory
2010-08-16 14:35:15 +02:00
pancake
14516c7e9c * Implement 0x2e and 0x64-0x67 conditional jmp opcodes on x86
* Stop parsing commands at '#' char (comment)
* strclean command strings before executing them (fixes some issues with spaces..)
* V: is now honoring cursor position in cursor mode
2010-08-16 13:59:48 +02:00
Nibble
e22bdf0c79 * r_util
- Add r_str_ansi_filter() for removing ansi codes
    in a given string
* r_cons
  - Remove ansi codes before doing grep, avoid problems
    with colors
2010-08-13 01:18:06 +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
pancake
3ced8a528c * Initial work on function_from_string parser for r_anal
- CF? for testing
2010-08-12 12:19:25 +02:00
Nibble
b218d39420 * Implement '/c' for 'search.asmstr=1' 2010-08-11 19:10:47 +02:00
Nibble
16f6c7a392 * r_asm
- Handle errors in x86_nasm plugin
* r_core
  - Minor fixup in debug message in '/c'
2010-08-11 18:29:15 +02:00
Nibble
02251522ea * r_core
- Add cmd '/c' for searching asm code
  - Add config var search.asmstr
* build
  - Minor fixups in "make mrproper"
2010-08-11 17:48:02 +02:00
pancake
8a3c845627 * Implement @:blocksize syntax for commands
* Some reordering of the TODO
2010-08-10 12:34:10 +02:00
pancake
01fa57d832 * Merge old w32 build fix
* Add 'c' in '?' help message
* Import edu's RList-ification of RSearch patch
* Deprecate r_search_kw_list() method
* Fix build of r_socket_to_string() method on w32
2010-08-08 19:03:51 +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
dd310e4352 * Fix bug in r_parse_filter (thx edu!) 2010-08-02 19:34:23 +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
d094f42d2f * r_bin
- Fill RBinImport->size within bin plugins
  - Add field size to RBinImport
* r_bin_elf
  - Correct value of r_bin_elf_symbol_t->size for imports
* rabin2
  - Output af+ command in radare mode
* Update TODO
2010-08-01 11:02:55 +02:00
Nibble
216973b29c * Fix bug regading false positives with z/
* Fix r_mem_cmp_mask
* Update TODO
2010-07-21 17:11:06 +02:00
Nibble
f5ad5c138a * Fix z/ ranges 2010-07-21 12:59:11 +02:00
pancake
1ab4a426da * Fix some bugs reported by edu in the signature module
* Minor updates in TODO
2010-07-21 11:12:24 +02:00
pancake
53843bb8ab * Added static version of 'sw' in doc.sw/sw
- main repo only works in cgi mode..
* Fix 'z*' command
  - Display bytes when listing 'zb'
* Drop unused 'RList*' from RSignItem
* Add missing definition of r_flag_rename
2010-07-21 00:05:33 +02:00
pancake
e2192f185e * Fix segfault in r_sign caused by an off-by-one
* Use r_flag_item_rename() to avoid wrong flag hash indexing
  - Based on edu's patch (thanks!)
2010-07-20 23:25:15 +02:00
pancake
c84ba4b076 * Display cursor information in visual prompt when enabled
* Partial support for visual selection of bytes in disassembly
2010-07-16 11:28:16 +02:00
pancake
9587e5ac9a * Implement #md5 #md4 #sha1 #sha256 #sha512
* Fix r_print flags in visual
* Fix r_debug_trace_pc
* Import some macros from bithacks.h
2010-07-16 00:02:33 +02:00
pancake
2f09509630 * Fail when binr build fails somewhere
* userconf R2_VERSION
* Implement some more # hashing algorithms
2010-07-15 13:34:53 +02:00
pancake
87841fbe15 * Fix build
* mrproper runs clean too
2010-07-13 11:48:26 +02:00
pancake
a2ab58dbe6 * Implement 'Ct' command to manage anal_var_types
* Minor todo cleanup
* Use more PFMT64
2010-07-13 10:56:56 +02:00
pancake
28f3d983e6 * Fix build and support unset breakpoint command 2010-07-13 01:22:44 +02:00
pancake
773c2549ad * Initial implementation of callback commands for r_bp
- Added 'dbc' command to configure them
* Check breakpoint stop everywhere
2010-07-13 01:20:57 +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
Nibble
14b3479658 * r_anal
- Modify stackptr on 'ret imm'
  - Improve analysis of 'push ref' instructions
* r_bin
  - Print a Warning message when a fat mach-o is opened
* Update TODO
2010-07-12 17:17:31 +02:00
pancake
87512b23b0 * Apply r_parse fixes from edu to support more than one numeric
to flag replacment and avoid 0x0 substitutions
* Implement 'fr' command
* Add autocompletion for /a
2010-07-12 14:46:43 +02:00
pancake
1fd4f51f66 * Fix segfault in 'pd' command, thanks edu!
* Fix r_bin.vapi
2010-07-08 14:24:07 +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
cc35fbf14f * Added file.desc
* Cx/CX is not working again, needs more love
* Implemented 'pdf' .. needs review
2010-06-30 11:59:52 +02:00
pancake
a6840204b5 * Fix Vd command
- Added Cd command to define data
2010-06-30 02:44:24 +02:00
pancake
5f10d6ba64 * r2 -n does not load rabin2 information
* Implemented search.align
  - Affects RPrint->addrmod and RSearch->align
* Use r_search_reset() instead of r_search_new()
* typedef RConfigCallback
* r_sys_bt renamed to r_sys_backtrace
2010-06-30 02:30:07 +02:00
pancake
bc2c79ee8d * Use RList in r_bp
- vapi updated
* Generalize the use of PrintfCallback typedef
  - used in r_bp and handled by r_cons in r_core
2010-06-30 01:13:09 +02:00
pancake
39a8c23740 * Major refactoring in r_meta
* Added C! command that calls r_meta_sync()
    - put xref information inside function metaitems
    - reduces cpu usage
  - Fix some memory leaks
  - Add object lifecycle for r_list_item_t
  - Use RList instead of list.h
* Apply patch from edu fixing '+' key in visual (Thanks!)
* Fix segfault in osx printf ("%s", NULL) using r_str_get()
2010-06-28 00:43:07 +02:00
pancake
c73e43bf40 * Fix print_address function for mips disassembler
* Implement 'gp' register index inside .got section for get_main on mips
* Use more switch() in core/cmd.c
* Simplify some random code
2010-06-27 21:33:11 +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
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
00214c95ef * Add 'C-*' command to unset all metadata 2010-06-21 02:05:23 +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
ace71e8be4 * Load string flags into r2
- Fix string filtering
* Display string references for ARM (load indirections)
* Fix numeric indexing of branch references in visual mode
* Display '>' char for call instructions
* More work on RMeta
  - unscape strings to avoid \n and \t
  - handle correctly the 'Cs' command
  - Add partial documentation for the rest of 'C' commands
2010-06-21 00:48:06 +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
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
Nibble
19dfb38b23 * r_core
- Fix segfault (pancake)
* Build
  - Remove rpath stuff
  - Simplify Makefiles
  - Add rafind2 to binr/Makefile
  - Add symstall to binr and r2rc
  - Fix minor deinstall issues
2010-06-15 13:10:46 +02:00
pancake
0006bf0564 * Fix segfault and infinite loop in 'dct' command 2010-06-13 12:51:44 +02:00
pancake
f0cca138db * Fix 'bx lr' and 'ldr pc,[pc,#]' code analysis for arm
* Added 'ata' command to specify a list of valid traceable adddresses
* some initial work on r_db.. iterators not yet supported
2010-06-13 11:59:17 +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
b7c554b24a * Some linkage fixes for binr/
* Added 'at' command (not yet implemented at all)
  - Some refactoring in r_debug_trace code
  - Remove deprecated r_trace.h
2010-06-04 00:56:44 +02:00
pancake
8a40844199 * List cmd plugins when ':' command is executed
- Added ->desc field in RCmdPlugin
2010-06-03 11:53:42 +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
8d2d0e0806 * r_core
- Fix bug in r_core_anal_graph_nodes (s/printf/r_cons_printf/)
  - Use r_str_chop_ro to get 'cg' filename
* r_diff
  - Reimplement graphdiff using r_core functions
* r_config
  - Fix t/Makefile using -l instead of .o's
2010-05-28 10:17:24 +02:00
Nibble
4235dd2a8e * Fix bug with static plugins
* Treat r_cons and r_line as singleton in r_core_init
* Move gdiff to r_core
* Fix libgmp support

--HG--
rename : libr/diff/gdiff.c => libr/core/gdiff.c
rename : libr/diff/gdiff.h => libr/core/gdiff.h
2010-05-28 02:44:51 +02:00
Nibble
4ead120e53 * Rename "handler" to "plugin"
* Rename */handler.c to */plugin.c
* Rename "handle" to "handler" in r_lib

--HG--
rename : libr/bp/handle.c => libr/bp/plugin.c
rename : libr/cmd/handle.c => libr/cmd/plugin.c
rename : libr/debug/handle.c => libr/debug/plugin.c
rename : libr/io/handle.c => libr/io/plugin.c
2010-05-26 18:25:35 +02:00
Nibble
5c35f6e359 * Rename {r_*_handle_t, R*Handle} to {r_*_plugin_t, R*Plugin} 2010-05-26 01:42:22 +02:00
Nibble
79ce1c14ad * r_diff
- Add flag '-v' (va) to radiff2
* r_core
  - Launch 'radiff2 -g' with '-v' if 'io.va = 1'
2010-05-25 01:49:46 +02:00
pancake
5152da2e93 * 'sr' also pushes into the seek history
* Debugger print mode with seeking support
  - Fix V? message
2010-05-24 19:38:13 +02:00
Nibble
c9b90d93e1 * r_diff
- Fix 'radiff2 -g'
* r_core
  - Remove debug messages
2010-05-24 19:08:38 +02:00
pancake
497cf959a7 * Added r_core_project_info
- Implemented 'Ps, Po and Pi' commands
  - Allow to open a project file without givin the path to file
  - Store and check changes in file.sha1 and file.path
* Do not load libraries twice in r_core
* Implement -r flag to rahash2 to export data in radare commands
  - Sync help message
2010-05-24 18:51:01 +02:00
Nibble
f65de2d925 * r_diff
- Add r_diff_gdiff (initial import of the graphdiffer)
	Next step is remove the mnemonics array and use a hash function
	The bb_diff function will change too :)
  - Add flag -g to radiff2
* r_core
  - Add cmd 'cg [file]' for graphdiffing
  - Add cmd 'agd [file]' for output graphdiff results
  - Modify r_core_anal_graph() for supporting graphdiffs
* r_util
  - Implement more r_big functions
  - Make other more gmp-like
2010-05-24 18:35:08 +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
pancake
d564c5a0fe * Implement 'dcc' and 'dcr' debugger commands
- Using continue-until-opcode-type call
  - Implemented continue-until-syscall in the same way
* Fix r_str_hash() algorithm to avoid colisions
* Added r_sys_bt()
2010-05-24 12:07:54 +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
Nibble
cd58dd21e8 * r_cmd
- Add r_cmd_free
* r_core
  - Inc/Sub stackptr in the next opcode
* vapi
  - Minor fixup in r_core.vapi
2010-05-21 12:42:17 +02:00