Commit graph

597 commits

Author SHA1 Message Date
Anton Kochkov
3be06f30c0 Fixing function colorization 2013-06-21 22:13:43 +04:00
Anton Kochkov
b30a148be6 Colorize function names: step 2 2013-06-21 00:34:03 +04:00
pancake
04cfefb9d8 Fixes on dyldcache list and x86 branch analysis
Fix some branch analysis issues for x86
Add new simpler r_reg api r_reg_getv()
Store library offset in dyldcache xtract info
Accessible via rabin2 -A or r2 <file>
Looks like dyldcache is too slow and buggy for latest caches
Fix indentation in branch comments
2013-06-20 02:49:39 +02:00
Anton Kochkov
83b40a7b4e Added cjmp, fname and flow color categories 2013-06-17 09:42:46 +04:00
pancake
ef781cbadd New flag rasm2 -c CPU. pointer hints, fix analysis of x86-16 jmps
Add ahp (pointer hints)
Add rasm2 -c flag to select cpu (wip for arm)
rasm2 -e toggles instead of setting
Fix analysis of absolute jumps in x86-16
Push and pops are now magenta \o/
2013-06-17 03:26:48 +02:00
Anton Kochkov
5341081d1d Added binary arithmetics operations in color 'bin' 2013-06-16 23:18:29 +02:00
pancake
082fccc1b2 Change r_anal ABI to fix bindings +to_esil_string() 2013-06-09 03:25:32 +02:00
pancake
4d32b6b8e4 Initial import of r_bin_bios plugin 2013-06-09 02:11:17 +02:00
pancake
3f1d3ba146 Better r_str_hash(), Fixes in CCa, Added ?h, Better rbin for BEOS bins
Identify Haiku binaries as 'beos' with noodle()
Fix CCa for non numeric offsets
Use sdb's r_str_hash() instead of old one (much less collisions)
Added ?h command to hash strings
CCa now appends instead of replacing comments
Do not mark as static if bin links to libs
2013-06-07 10:26:37 +02:00
pancake
29066085de New 'afb <bits>' per-function asm.bits, Renamed 'afb' to 'afbb' 2013-05-24 02:53:15 +02:00
pancake
3ba48ac9ad More color theme fixes and categories (math, bin, other) 2013-05-23 12:37:40 +02:00
pancake
ecc45d8d53 More fixes in 'ec' and 'ecs' commands for color palette 2013-05-23 03:03:40 +02:00
pancake
e5cdab6d20 Fully configurable console palette for disassembly, hexdump and prompt
- Fix overflow in r_cons
2013-05-23 02:26:48 +02:00
pancake
a42ab6898d Extend the fix of #92 to handle func name refs on nonlinear addressings 2013-05-22 04:30:46 +02:00
pancake
9d65bfe70c Initial r_cons palette support. See 'ec' command 2013-05-22 04:22:49 +02:00
pancake
8c5a6d68ff Handle fcn in r_parse, unify filter() and add locdiff utility 2013-05-22 01:49:18 +02:00
pancake
e3129f246e Show flag comment in branch references (fixes #92) 2013-05-21 08:59:08 +02:00
pancake
6ad7ed7925 Lot of bugfixes in r_asm, x86 assembler and ragg2 -x
- Thanks Ripe for reporting
- Handle $pc in r_asm assemble
- New ops for x86.nz: sar, shl, shr, shl, rcr, rcl, ror, rol
- Fix disassembler indentation for functions
- Fix memory align issue in r_sys_run()
2013-04-22 00:01:41 +02:00
pancake
4cf83c6a63 Detect more c++ bins, demangle symbols and fixes in udis86
Better detection of c++ bins
Handle symbol/import name mangling as code comments
Fix visual menu 'VT'
Fix udis86 call analysis
2013-04-16 03:24:47 +02:00
pancake
469db755bf Enhace 8085 disasm and add basic code analysis support 2013-04-10 02:04:50 +02:00
pancake
d5f3ddaaf0 Refix #72 2013-04-01 01:45:28 +02:00
pancake
7ff12dfeee Fix #72 : Honor per-section arch/bits in io+core 2013-03-31 04:34:46 +02:00
pancake
c829b88c3f Bump for the 0.9.4 release 2013-03-21 18:42:31 +01:00
pancake
67f0794b82 Fix disasm indent. Add 'mvn' and 'cmp r, n' opcodes 2013-03-13 17:57:40 +01:00
pancake
4c244a818c Add 'Ch', handle c++ lang in rbin and obey cursor in V: 2013-03-01 09:57:30 +01:00
pancake
dc2690e529 Support get/set introspection in 'pf' and handle scr.stride in px
Rename pf$ to pf.
Add support for introspecting and setting named pf fields
Introspection supports get and set
Add scr.stride property for 'px'
Initial work on slist
Add judy arrays implementation (not integrated)
2013-02-01 03:15:48 +01:00
pancake
1f6174c6ae Better webui, 'pi' counts opcodes and remove /new and htmlgraph
pi honors number of instructions, not bytes
Remove htmlgraph and lungo webui
More work on the enyo webui
2013-01-25 03:22:09 +01:00
pancake
1c93e8a727 Better webui, fix segfault in ag, add agj for json graphs
More work on the webui
New 'agj' command to get function graphs in json
Fix segfault in 'ag' command
'agv' now launches the internal http server
Initial refactoring for RAnalHint integration into RCore
Add basic mime-type support in the http server
Enhace the graph view style
2013-01-24 03:48:24 +01:00
pancake
4ffa7952a2 Fix segfault in DEX parser, remove more r_print refs 2013-01-23 01:53:32 +01:00
pancake
2365918652 Fix slow ELF loading and add anal hints support to projects
Fix slow ELF loading when shstr section was huge
Added 'ahj' command to list anal hints in json
Add 'ah*' and use it from r_core_project
Fix 'i*' command
2013-01-22 18:08:33 +01:00
pancake
fc9301b14b Add hints and named print formats and more
Initial implementation of anal hints (ah?)
Use anal hints in core/disasm. Needs more work
New data structure StrHT (string hashtable)
Simplify core/libs.c with cpp macros
Added r_cons_color() wip function for ansi256 consoles
RPrint no longer depends on r_cons
Sort 'a?' help commands
Add support for named print formats with pf$ command
Add support for 64 bit string pointers in 'pf' ('S')
Add r_print_mute and r_print_format_length functions
Bump r2 nodejs bindings version number
Merge r_print into r_util
2013-01-22 05:06:12 +01:00
pancake
a8a4c5e3e8 Initial implementation of http.upload (disabled by default)
Open http://localhost:9090/upload.html to upload
curl -F file=@/bin/ls http://localhost:9090/up/ls.bin
Tested on 10MB files without problems
Default upload directory is $TMPDIR
2013-01-03 00:47:58 +01:00
pancake
2d0dd302be Add RCoreLog API ('l' command), '-' cmd is now '$'
Fix in disasm comments
Fix bugs in r_strpool api
Log API allows rss-like messaging
2012-12-23 13:52:57 +01:00
pancake
48f710abe8 Share RBinJavaObj to RAsmJava plugin, better java and fixes in config
Some more work to get java support back (analysis, disasm, bin share)
Honor ordinal field in java r_bin methods
Fix segfault in 'af*' on FreeBSD (thanks idwer for reporting!)
Fix some valgrind warnings
Better io.maxblk handling
Fix div by zero when blocksize is 0
Fix disasm lines when no function and extra code comments
2012-12-20 11:31:38 +01:00
pancake
51b7147df6 Add asm.linesright to show lines before opcode instead of offset 2012-12-19 01:28:34 +01:00
pancake
0f6b4e34e1 Fix null pointer in disasm 2012-12-18 15:46:00 +01:00
pancake
a14f48918f Fix build and pdj on invalid opcodes 2012-12-07 16:00:36 +01:00
pancake
70b037e154 Show refs in disasm, better analysis for ARM and x86-16
Fix status line bug in visual debugger
2012-12-07 03:12:25 +01:00
pancake
83da070d44 Fix fcn lines in disasm, minor fix in meta
Initial work to fix linux32 debugger on linux64
2012-12-06 03:11:40 +01:00
pancake
475372ec2c Fix archbits in overlap mem, fixes for ad, pd and segmented addressing
Fix invalid wide string identification in 'ad' command
Temporal blocksize syntax ':' has changed to '!'
  - x @ 1024!33
Fix overlapped IO sections handling
Add support for segmented address in temporal seek
Fix disassemlby to print more lines than blocksize
2012-12-06 00:55:22 +01:00
pancake
84002a421f Better new WebUI, fix pdf,pD, implement http.timeout and more
Enhacements in the new webui
Fix r_socket_block_time()
Implement assembler for the 1bit arch RAR (wip)
Fix pdf, pdb and pD (print_disasm)
Implement http.timeout and http.sandbox
2012-12-03 04:01:55 +01:00
pancake
b6c5e7dc72 Honor meta item length in core disasm 2012-11-20 04:22:16 +01:00
pancake
e495421782 Initial implementation of 'ad' (analyze data)
Force tid=pid when tid=-1 in r_debug_select()
Add support for 16bit mov in x86.nz assembler
2012-11-20 03:59:00 +01:00
pancake
8ea25c4a46 Use RNum in RAsm, fixes for segoff and better disasm
Reference of RNum in RAsm (use flags in 'wa/pa'!)
Use RNum in x86.nz plugin
Rename scr.segoff to asm.segoff
Fixes for segmented addressing resolution
Honor lineswidth in disasm
Remove rabin2 -p flag in help and manpage
Fix disasm.c loop for small blocksizes and invalid ops
2012-11-16 01:34:26 +01:00
pancake
56b442fb70 Fixes in RCore's disassembler 2012-11-13 04:38:26 +01:00
pancake
23bd67ce59 Fix 'invalid' instructions in disassembly (reported by xvilka) 2012-11-13 04:09:59 +01:00
pancake
25df4aef1c Fixed io ports flagspace usage and multiple asm filters
Handle negated flagspace in RParse
Support pseudo+decode+disasm
2012-11-13 02:00:00 +01:00
pancake
8e1dbb443a Better support for IO ports on asm.pseudo and analysis
* Analyze IO opcodes on x86
* Fix 0x0x in olly disasm
* Fix segfault in objc mangling
* Support for writing nibbles with 'wx'
* If optype is IO, use 'ports' flagspace
* Add support for flagspaces in RParse
* Use RList in RParse instead of list.h
* asm.pseudo handles for in/out x86 opcodes
* Random code cleanup
* Fix udis86 64bit disasm bug
2012-11-13 00:53:52 +01:00
pancake
1a6d3155e5 Enhace r2wui and implement 'pdj' command (disasm to json) 2012-11-08 09:49:27 +01:00
pancake
21c4d1c5f5 Enhace ARM disassembly and code analysis 2012-11-05 06:01:55 +01:00
pancake
ece5d5b61d Analyze LEA re-references on x86-64 style code 2012-10-30 10:08:06 +01:00
pancake
5ae5849992 Implement support to associate comments to flags 2012-10-26 10:00:22 +02:00
pancake
94b001265a Fix mach0 ehdr header, new $S and $SS vars, Vdr
Show xrefs before comments
cmtright is false by default
Fix ehdr virtual section on mach0 files
Addr 'Vdr' command to rename functions in visual
Add $S and $SS variables (section offset, section size)
2012-10-26 01:33:57 +02:00
pancake
38628b4e17 Fix ELF loader and segfault in disasm->hexdump 2012-10-17 12:13:23 +02:00
pancake
7e9af106bb Implement RAnal.fcn_del_locs() to fix Vdu and af-
New commands: fx and fxd to show contents of flags
Fix pZ-pz help message and stuff
fF in visual is now nN
nN in visual has been deprecated
sfF also renamed to snN
sn renamed to so
e scr.fkey is now scr.nkey
Beautify the disasm loc functions
Toggle breakpoints with 'b' in visual
2012-09-28 02:20:52 +02:00
pancake
d00cc922fb Fix uninitialized variable use in arc disassembler
Fix invalid malloc in generic disasm
2012-09-23 18:10:37 +02:00
pancake
4909348b6e Fix disasm and autocomplete af* commands
Fix typos in help messages
Show 'b' where breakpoints are
2012-09-20 23:32:20 +02:00
pancake
2e83fa67b8 Fix python bindings: do not use homonim methods and fields 2012-09-19 14:08:44 +02:00
pancake
063ed1615a Add demo graph view for www, add pad command remove a8
Enhacements for the r2irc bot (code cleanup and config)
Fix r_bin.vapi and other nodejs related issues
2012-09-19 03:15:36 +02:00
pancake
cd30c0c0e4 Various little bugs fixed and pz/pZ renaming
Fix r_core_system pipes after scr.interaction
Fix 'ao N' (parse argument)
Fix segfault in p= N >blocksize
Split BBs in pdr with '--'
Add help for ps?
Do not show invalid rahash2 -a entropy at the end of p=e
pz is now psz
pZ is now pz
2012-08-29 17:24:30 +02:00
pancake
e46efa8a1d Initial implementation of r_bin_size (rabin2 -Z)
Changes in the disasm loop to support continuous fun
Fixes disasm after opcode payload
Added RConstr code in r_util (not yet used)
RBinSize implemented for elf, mach0 and plan9
Fix build
2012-08-23 12:46:55 +02:00
pancake
f75817ee6c Initial work on supporting payloaded opcodes
Basic classes support for dalvik (rabin2 -C, ic*)
2012-08-22 18:02:23 +02:00
Anton Kochkov
e43a1f921d Deep integration of complex types - build fixed 2012-07-22 12:41:53 +04:00
pancake
30354fefc8 * Implemented 'afe' and 'Sr' commands
* Show strings referenced by relative LEAs
* Fix ascii art in hexdump columns
* Unset cursor when quiting visual mod
2012-06-14 10:01:16 +02:00
pancake
810d9a3dbc * Put rax2 buf in .bss instead of the stack
* Add support for wide string dump in r_bin
* Fix detection of data section in PE
* Show error if temporary seek flag does not exists
* Fix wrong disassmbly with 'pd' (invalid)
2012-05-30 03:23:53 +02:00
pancake
beac4bbc24 * More fixes in the code analysis loops
* Properly detect end of functions in visual
* Apply rudi_s patches for cache
* Show push flag information if available as a comment
* Clear screen after quiting Visual
* Remove unused function
2012-02-16 01:26:50 +01:00
pancake
f41d41e9eb * Some fixes for the code analysis (still wrong, but at least ^C)
* Fix r_num_calc and all tests cases should run fine now
2012-02-15 11:11:25 +01:00
pancake
65d1dddfd1 * apply rudi_s patch fixing multiple bugs
- Fix uninitialized variables and other GCC warnings
  - Remove unused variables, fix invalid heap ops
  - ?p print error if VA is not
  - Fix invalid write in r_io_cache_read().
* add support for 'mov reg, [addr]' in x86.nz[32]
2012-02-12 23:45:04 +01:00
pancake
990d616e13 * Add 16 segment addressing mode
- e asm.offseg=true  : show in disasm
  - ? f000:1345        : calculate value
  - s c000:1400        : seek to segment:address
  - also supports 0xf000:0x123
  - segment is 32 bit instead of 16 #fun
* Add rudi_s patch to pass write_cache test
* Fix crash in r_io_free
* Move r_core_yank_to into yank.c
2012-02-05 01:14:09 +01:00
pancake
62219c8dda ** Apply patch from Simon Ruderich (thanks!)
* Remove some unused variables.
* libr/core/disasm.c: Fix minor memory leak.
* libr/util/str.c: Cleanup r_str_home() and fix potential crash.
* libr/line/dietline.c: Cleanup r_line_hist_load, fix memory leak.
* libr/core/cmd.c: Fix read from uninitialized memory.
* libr/util/str.c: Add comment why r_str_cpy() was added.
* libr/io/p/io_malloc.c: Prevent read from invalid memory.
* Split -n into -n (no user settings) and -N (no analysis).
2012-02-03 20:52:20 +01:00
pancake
840550aa3a * Add asm.tabs for bearuty for free (enable by default?)
* Apply @l0gic patch for ELF parsing segfault
* Improve a lot the startup time by using r_file_mmap
* Fix build on osx
2012-01-26 03:18:45 +01:00
pancake
07620cd50c * Fix AT&T X86 disassembler when facing invalid instructions
- This bug was reported by @hteso
* Apply @earada patch hiding cursor in visual mode
* Honor asm.size config variable
2011-12-02 01:58:34 +01:00
pancake
76b68079ee * Handle int3 on x86 as a trap instruction instead of SWI
* Make 'fd' work without arguments
* Added r_flag_get_at () to handle deltas
  - Show it in visual title
  - Used by 'fd'
* Colorize trap instructions in bright red
2011-11-22 01:42:16 +01:00
pancake
d7f2c850be * Add initial native support for fat binaries in r2
- Select arch/bits with r2 -a and -b (old -b is now -B)
  - Kinda hacky, but works for osx-x86/32/64
  - Export offset information of fat bins
* Show flags in search output
* Disable interactive console in rabin2
* Do not comment int3 opcodes
2011-11-22 00:59:20 +01: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
0f271a8bac * Added api to get opcode descriptions
- r_asm now depends on r_db (uses r_pair aka sdb)
  - r_asm_describe()
  - install opcode descriptions
  - Use ?d to get description of opcode (uses asm.arch)
* Add 'fl' command to get length of flag
* Fix some warnings in anal.sparc plugin
* Add new assembler directives
  - .int8 (alias of .byte)
  - .int16 (alias of .short)
  - .int32 and .int64
* Fix memory leak in r_core_disasm()
* Add accessors for RAnalFcn.{refs,xrefs,vars,bbs}
  - Updated bindings
2011-11-12 01:52:31 +01:00
pancake
f94e93aa40 * invert offset colors in program counter address 2011-10-14 03:31:04 +02:00
pancake
ebb04f2e8f * Fix overflow in rasc2 (needs more work)
* Remove pragma pack(push) in x86im
* Remove analysis reference memory reads error messages
2011-07-03 01:51:20 +02:00
pancake
7319208c8f * More visual fixes for the comments in disassembly
- Added asm.cmtright=true eval config variable
* Add missing r_magic.deps
2011-09-12 03:26:32 +02:00
pancake
4a3d7bc1db * Show comments at right of disasm if they fit in screen
- Added r_cons_get_column () api
* Fix ';' in visual (0 prefix)
* Update pkg-config files
* Fix sys/vala.sh
  - Use ccache if possible
* Add r_magic.vapi
2011-09-12 03:01:07 +02:00
pancake
323441c122 * Initial import of r_magic
- Imported code from OpenBSD trunk
  - Remove the elf part (-1KLOC)
  - Some refactoring in order to be more r2-like
  - fixed warning messages
  - readdir one can be dangerous /cc @vect01
  - Remove libmagic dependency
* Rename asm.case into asm.ucase
2011-09-10 01:30:03 +02:00
pancake
1732541915 * Fix OS identification in ELF on r_bin
* Add missing OSABI definitions
* Fix r_str_case()
* Remove already defined or useless commented config code from r1
2011-09-08 15:10:46 +02:00
pancake
56fb04bb79 * Say different error if -w is used in r2 and fails
* p= command is now an alias for !rahash2 -a entropy -b 512 $FILE
* Some work in the 'G' key in visual
* Fix zoom on io.va=1
* r_sys_getcwd now returns a heap ptr and its named to r_sys_getdir()
* Show invalid instructions in 'pd'
* Fix prompt for 'w' key in visual
* More work with RPair
  - Looks like it's finally usable. Let's use it from r_syscall
  - Update sdb from hg
  - Enhace test program
* Show newlines in 'ps' command
2011-09-04 02:34:54 +02:00
pancake
12816468f6 * Refactoring of the TODO tasks
* Add dummy 'dca' command. needs to be implemented
* Reload all symbol information when io.va changes
* Only print jumpkey references in visual mode
* Reduce the autoblocksize in visual for disassembly
2011-09-03 03:10:01 +02:00
pancake
b50447489c * Fix segmentation fault in asm.lines=false
- Thanks @hteso for reporting!
* Various indentation fixes
2011-09-02 01:42:09 +02:00
pancake
b4a63953c7 * invalid instructions in x86 (udis86) should be length=-1 2011-08-30 00:42:18 +02:00
pancake
47834e60bd * Do not calculate reflines if asm.lines=false
* Honor null callback in r_cmd
* Some enhacements in the r_config_description
* Implement cmd.repeat and add two commands to handle it
  - . and .. (allow to handle pyew-like newline)
* Add ia and ia* to show all binary information info
  - Use r_sys_cmd_str() instead of r_sys_cmd()
  - This fixes the bug of not able to interpret output of .i?*
* Some random minor code simplifications
* r_sys_getenv now returns an allocated buffer
  - Need some review to avoid memleaks
2011-08-27 20:25:37 +02:00
pancake
6d5bef5976 * Use hg manifest in make dist
* Honor r_bin_use_arch arch and bits information for r_bin_create
* Implemented sC command to seek by comment matching
* Fix one byte Color_RESET in r_print
* Minor refactor in rasm newlisp example
2011-08-27 03:31:55 +02:00
pancake
efb113ce8b * Fix '// ?' pseudodecompiled issue
- Thanks l0gic for reporting!
2011-08-18 17:03:45 +02:00
pancake
7a79f92c82 * Fix pdi with no args
* Fix bug in dietline autocomplete
2011-07-07 02:04:42 +02:00
pancake
0528e66fda * Disable asm.dwarf until reimplemented
* Some more code cleanup in gdbwrap plugin code
2011-06-30 21:35:15 +02:00
pancake
ef375bf85d * Fix macro definitions
* Handle asm.flags in core_disasm
2011-06-26 21:24:22 +02:00
pancake
10fdf33d64 * Fix segfault in core/print_disasm 2011-06-23 01:01:27 +02:00
pancake
46c7851ffc * Some fixes in the LEA/MOV memref analysis
* Stretch bytes and stackptr in disasm
* Fix string length in r_bin (\0 is counted)
  - hello is a 6 byte length string
* Fix 'Vds' to autodetect string length
2011-06-09 02:12:46 +02:00
pancake
4c0b8f437b * Added 'pw' and 'pq' commands to print 32bit and 64bit hex values
* Autocomplete 'dcu' argument
* Analyze [pc+delta] mov and lea opcodes on x86-64
  - Resolves indirect string pointers for ObjectiveC binaries
* Handle UCALL in dso
* Fix x86-64 register profile for OSX
* Implement r_mem_get_num()
* Various fixes in 'pf' command
2011-06-09 01:20:02 +02:00
pancake
c9faf9f88b * Do not load strings if project is already loaded
- Added bin.strings eval key
* Fix range check for anal/meta
* Do not exit(1) when write error on console
* Added 'ad' command to analyze data
  - Find trampolines from data to text f.ex
  - Supports 32 and 64 bit archs
* flags/name moved to util/name

--HG--
rename : libr/flags/name.c => libr/util/name.c
2011-06-04 05:27:26 +02:00
pancake
535a2aa713 * r_asm_disassemble use _CONST_ut8* buffer now
* Split core/cmd.c into disasm.c and core/visual.c into vmenus.c
* Fix some warnings reported by valgrind
* Chop instructions disassembled by udis86
* Fix visual prompt display in debugger mode
* Added 'pdi' and 'pdf' commands
  - Used to print just instructions or lengths
  - Documented via 'pd?'
* Added initial work on a test suite for r2
  - Spot a crash!
2011-06-04 03:14:04 +02:00