Commit graph

2403 commits

Author SHA1 Message Date
pancake
c36b299073 Fix some null deref and rarun2 chroot escape vuln 2016-05-24 12:32:45 +02:00
Roi Martin
00626b9b02 Add temporary range operator @.. (#4986) 2016-05-23 23:41:39 +02:00
gk
0461e567e9 Fix #4927 - Add rabin2 -qqz to list only strings (no offsets or sizes) 2016-05-23 22:53:40 +02:00
pancake
b28d5e0a9c Fix android build 2016-05-23 21:54:42 +02:00
Sushant Dinesh
cf456f4414 Fixes to ESIL (#4951)
- Reverted ADD and ADC to set flags based on internal variables
- Fixed calculation of carry and zero flags from internal vars
- Revert "ESIL: add floating point instructions (#4794)"
  This reverts commit 964d12b392. Since we
  decided that floating point operations will be implemented using separate
  ops, these unions are no longer needed. This commit introduced a regression
  in setting esil->old and esil->cur
- Style fixes
2016-05-23 16:39:54 +02:00
zlowram
60b62560f1 Added anal hints to specify type base on disasm 2016-05-21 19:47:49 +02:00
Anton Kochkov
cc39d55be2 Fix PowerPC check in defines 2016-05-19 13:46:41 +03:00
pancake
7f80a159c3 More powerpc blindfixing 2016-05-19 12:27:58 +02:00
Riccardo Schirone
8727840e90 anal/fcn: use getter/setter to access the size of a RAnalFunction
This is one of the first steps to improve analysis. This way we'll have
one single place to change if we want to change the meaning of the
"size" field. (size -> realsize)
2016-05-19 01:50:50 +02:00
Sven Steinbauer
901b145f33 Inline r_swap_* functions [fix #4895] (#4902) 2016-05-18 10:13:26 +02:00
pancake
39947f0865 Fix #4912 - Add rarun2 option to specify timeout signal to be sent 2016-05-17 10:41:33 +02:00
pancake
c627fb3bec Add colors in afll and fix max stack 2016-05-16 03:46:23 +02:00
Álvaro Felipe Melchor
6b827c1563 Fix #4796 - Add dbm aka module relative breakpoints 2016-05-16 01:00:11 +02:00
pancake
80ea7427bb Indentation fixes around the previous commit and beyond 2016-05-15 10:40:57 +02:00
Joshua J. Drake
29c2670039 Fix #4560: Handle recoils well with swstep=true
When resuming after (during) recoil from a breakpoint, the swstep
implementation would fail to advance. In short, the debugger would immediately
interrupt again because r_bp_restore was re-setting the original breakpoint
just before continue. The following changes fix this issue:

1. Modify r_bp_get_in to stop including the byte after a breakpoint. This was
causing r_bp_recoil to fail because it thought there was already a breakpoint
on the next instruction.

2. Pass the real breakpoint address (pc - dbg->bpsize) to r_bp_recoil so
that r_bp_get_in can work properly. Stop adding the b->size there to keep it
going too.

3. Add a state flag to core->dbg to track that we are in the midst of a recoil.

4. When continuing from recoil (in r_debug_continue_kill), restore all
breakpoints except the one we just hit (with the new r_bp_restore_except) to
avoid hitting it again. Once we move past this instruction, that breakpoint
will be set again.
2016-05-15 10:19:24 +02:00
pancake
23dcb486ea Fix some minor memory leaks, Properly make check_fcn public 2016-05-15 02:43:10 +02:00
pancake
02eb896897 Handle data refs in dalvik analysis 2016-05-14 10:40:03 +02:00
Joshua J. Drake
83baa272c8 Try for C99 compatibility per xvkilka's comments 2016-05-14 08:42:56 +03:00
Joshua J. Drake
83a76b7158 Propagate location information in perror
The "r_sys_perror" function previously would use "perror" on UNIX resulting in
location information of the "perror" callsite being shown. Renaming
"r_sys_perror" to "r_sys_perror_str" and replacing the original identifier with
a macro ensures that the displayed information is useful.

Further, this addreses a TODO that makes this functionality work on both
Windows and UNIX by moving these macros outside of the UNIX #if. The (now)
"r_sys_perror_str" is already implemented for both platforms. Let's use it!
2016-05-14 08:42:56 +03:00
pancake
f18be0bb99 Fix several pointer arithmetic issues in r_endian.h 2016-05-13 11:45:00 +02:00
rene
695d9a0d04 added shortcuts for every node in graph view
fixes mentioned in the pr
fixed the Vp issue mentioned in the pr
fixes the mentioned parts
changed reallocation size

Signed-off-by: Riccardo Schirone <sirmy15@gmail.com>
2016-05-12 23:49:30 +02:00
Rakholiya Jenish
502870f07b list all encoders/decoders supported by woE/woD and rahash2 -E/-D (fix #4851)
list all encoders/decoders supported by woE/woD and rahash2 -E/-D (fix #4851)
2016-05-11 22:25:54 +02:00
pancake
3d89f2cc21 Add RAnal.Stack.RESET and handle it for arm64 2016-05-11 12:59:32 +02:00
pancake
35ec317f2f Support shift << and >> in RNumCalc 2016-05-11 00:28:42 +02:00
Riccardo Schirone
15c1197636 util/print: use screen_bounds to store the first non visible address 2016-05-10 22:15:24 +02:00
pancake
eabe6512f2 Fix #4815 - Implement HexII print format (ref: http://corkami.googlecode.com/svn/trunk/src/HexII/) 2016-05-10 00:18:21 +02:00
Álvaro Felipe Melchor
b7cc6c04d7 LDID parse signature in mach0 binaries
* added iC command to show signature info

in the case of mach it shows entitlements

* added rabin2 -OC to get signature info from binary

* change swap to r_read_bleX new API

* change eprintf to r_cons_printf

* add const char in plg->signature
2016-05-09 23:42:28 +02:00
Rakholiya Jenish
82574209b1 rc6 support (#4826)
fix warning
2016-05-09 16:51:26 +02:00
pancake
7676272b18 Add sj and s= commands 2016-05-09 10:39:19 +02:00
Damien Zammit
964d12b392 ESIL: add floating point instructions (#4794) 2016-05-07 12:32:06 +02:00
Rakholiya Jenish
3019bb477c Add support for punycode via woE and woD and rahash2
Also add aes-cbc support by getting IV from user
2016-05-07 12:31:13 +02:00
Damien Zammit
632dccc217 Remove LIL_ENDIAN macro and configure option
TODO: Remove other endian cruft from:
- hashing algs
- judy
- squashfs
- grub
- tms320

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-05-06 10:21:55 +02:00
pancake
bbb7b8412b Implement experimental cmdback in rap server and client 2016-05-05 01:20:23 +02:00
Damien Zammit
af0a865d9f WIP - Totally remove host endianness dependence
- Adds endian aware functions
- Removes references to host endian
- Uses binary detected endianness else tries LE and restricts by RAsmPlugin
- Fixes gdb debugger endianness when debugging BE qemu gdbserver

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-05-04 23:42:17 +10:00
Riccardo Schirone
ed80f726f6 core/graph: remove esil modes
core/cmd_debug: use just one if instead of two nested
2016-05-04 10:18:20 +02:00
Sven Steinbauer
9d68cf74f8 Colour current graphviz nodes and make colors configurable
Colours current node in Graphviz output (`ag` command) 'lightblue'.

Add `graph.gv.current` option to config with default to `false`

* White space fixes

Spaces before parens

* Make GV colour configurable

Using existing colours from the palette. Changes boxes from
`lightgray` to `gray` and allows settings for traced boxes, box colour,
and current box colour.
2016-05-04 00:50:33 +02:00
pancake
08310a99cd Add io.0xff to define the value to fill unallocated area 2016-05-03 23:09:00 +02:00
pancake
6261fe32fb bugfixes + testsuite for the Internal Swift demangler 2016-05-03 04:31:36 +02:00
pancake
1f7db90e41 Priorize keystone plugins and other random changes 2016-05-02 02:46:01 +02:00
pancake
b417da6d4d Add setarch/(from|to).string simplified RAsm APIs 2016-04-29 11:30:38 +02:00
Davide Balzarotti
86760900b1 Added color support for the hud.
- Fix issue #3570

* new matching algorithm (list of space-separated words, case insensitive)
  - Fix bug #4704
* refactoring some code
* updated copyright
2016-04-28 14:02:22 +02:00
pancake
d24bc909ec Update sdb for osx-ppc and other 0.10.2 updates 2016-04-27 00:25:28 +02:00
Sergey Anufrienko
5f279870d0 fix r_socket_read, don't lose sent data on r_socket_close (mingw32) (#4718) 2016-04-26 18:57:01 +02:00
pancake
2b52b9a3e6 Demangle Swift classnames in rabin2 -c 2016-04-25 18:59:27 +02:00
Damien Zammit
1a593a6318 GDB debug for lm32 architecture (#4696)
Signed-off-by: Damien Zammit <damien@zamaudio.com>

* Missing a couple of things in previous commit

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-04-24 23:13:00 +02:00
pancake
fafc626b55 Performance optimization for rabin2 (request vs all) 2016-04-23 00:47:00 +02:00
pancake
3225a168ef Fix syscall resolution after 0a4a2615c9 2016-04-22 19:33:23 +02:00
oddcoder
0a4a2615c9 Adding extra pass for find function argument 2016-04-22 16:25:37 +02:00
Sergey Anufrienko
d7635e085e Introduce debug plugin for QNX pdebug interface 2016-04-22 11:45:51 +02:00
Rakholiya Jenish
e1660b352a add aes-cbc encryption to rahash2
remove unnecessary comment

update man
2016-04-14 22:39:57 +02:00
pancake
93fcd7e722 Initial implementation of the anal.pushret (push+ret->jmp) option 2016-04-14 14:32:10 +02:00
pancake
20b49f1615 Implement stackptr analysis in MIPS and add ALIGN stackop type 2016-04-13 23:33:30 +02:00
Rakholiya Jenish
421a63a849 cleanup code, and use direction for specifying encryption/decryption 2016-04-13 21:54:12 +02:00
pancake
34a7837079 Include r_lib from r_bp 2016-04-13 14:48:17 +02:00
Rakholiya Jenish
27fba6fa10 Add crypto plugin for base64 and base91
update error occurence.
2016-04-13 10:34:55 +02:00
Rakholiya Jenish
2a68cea14c add woD, and rahash -D option
TODO done

fix error output
2016-04-13 10:34:54 +02:00
Rakholiya Jenish
8ea2e80354 add ROL and ROR support 2016-04-10 00:37:34 +02:00
Rakholiya Jenish
4c1c17f90a add ROT to rahash2
fix indentation

remove unnecessary header inclusion
2016-04-10 00:37:34 +02:00
Roi Martin
89ee2585d6 Add "summary mode" to ascii graphs 2016-04-09 22:29:16 +03:00
pancake
b54614d292 Use anal reg profiles from debug.esil 2016-04-08 00:54:15 +02:00
pancake
5867365cd5 Add dummy work for mach0 in rabin2 -O 2016-04-07 15:42:06 +02:00
Roi Martin
f44112dfc6 Implement cmd PS. Fix ax{*,j}
- Add r_core_project_save_rdb for selective project dump
- Implement command PS and Ps using r_core_project_save_rdb
- Fix commands ax* and axj
- Fix r_anal_xrefs_save (it didn't save DB to project file)
2016-04-07 11:12:50 +02:00
Daniel Domínguez
71beec242e Coredump generation for Mach0 binaries 2016-04-05 12:03:59 +02:00
Álvaro Felipe Melchor
b0c6ae4409 Fix #4295 and #4155
This commit is the first attempt to improve relocation
recognition when dealing with relocatables elf-files
2016-04-04 23:09:58 +02:00
pancake
32162ef393 Add r_buf_new_file API 2016-04-04 22:30:11 +02:00
Lukas Dresel
cb60759219 Removed unnecessary r_lib.h dependency in r_util.h 2016-04-04 21:26:20 +02:00
pancake
740e43eadd Fix some segfault and consistencies 2016-04-04 01:59:30 +02:00
pancake
e8263655be Fix more memleaks 2016-04-04 00:17:57 +02:00
pancake
0474d1e41e Define generic conditional enums for arm and x86 2016-04-01 12:06:02 +02:00
pancake
4b72511f6a Implement ys to show clipboard as string 2016-03-31 05:15:20 +02:00
pancake
c724e3b1a5 Honor ec graph.{true|false|trufae} in aga for graphviz 2016-03-31 02:03:44 +02:00
pancake
d9d4e7f889 Initial implementation of fs.squash and merge squashfs-tools 2016-03-30 16:01:24 +02:00
pancake
e93436ee5b Show calls and refs in aai 2016-03-29 01:13:00 +02:00
pancake
089ee49261 Fix #4410 - aai command to show analysis statistics info 2016-03-29 00:39:50 +02:00
pancake
9d54015029 Handle referer in http server for CSFR protection 2016-03-28 23:38:45 +02:00
pancake
f6454cc5f2 Add rarun2 execve to avoid posix_spawn 2016-03-27 14:17:39 +02:00
pancake
d092be54e2 API fixes for bochs and honor sandbox 2016-03-27 13:43:51 +02:00
skuater
c45fe4e1e7 Initial support for BOCHS (windows only for now) 2016-03-25 00:21:49 +01:00
Álvaro Felipe Melchor
2c70142294 Fix #4393 2016-03-25 00:18:48 +01:00
Darredevil
9c998618aa Fix #4362 2016-03-24 23:06:50 +01:00
oddcoder
7c5a2ef97a adding tl tl- tl-* 2016-03-24 22:47:42 +01:00
pancake
f4618c0bbd Remove radiff2 -CC because we already have -A, -AA, -AAA ... 2016-03-22 13:00:02 +01:00
Mizari
59d614edf1 Added drw/arw command + r_reg_arena_set_bytes 2016-03-22 11:48:42 +01:00
pancake
895a966884 Do not diff function strings, increase memlimit 2016-03-22 01:31:10 +01:00
Darredevil
b362e2d2fb Alias 'doo' command for issue #4365 2016-03-21 23:55:01 +03:00
pancake
09aed6e525 Simplify ?T and fix load time 2016-03-18 13:39:45 +01:00
Darredevil
12e40a9249 Loading time for issue #3244 2016-03-18 12:34:17 +01:00
Evan Shaw
288763f69a Count hex digits as numbers in parse filter
Without this we chop off number operands as soon as a hex digit is seen.

Also fix and use a previously unused macro.
2016-03-17 11:13:30 +01:00
Adr1
ab5792d132 RBin: improving versioninfo
Store ELF versioninfo in Sdb.
Display VS_FIXEDFILEINFO for PE.
2016-03-16 18:10:49 +01:00
pancake
8a45a43a86 Initial import of the m68k.pseudo plugin 2016-03-15 12:29:53 +01:00
pancake
b80904319d Fix #4194 - Remove RCons dependency from RIO 2016-03-14 00:11:31 +01:00
pancake
fd5c8d17fe Refactor the p=X, honor current seek and better ascii bars 2016-03-13 01:30:28 +01:00
Aneesh Dogra
5c3f5904ea Add a way to compare claimed CRC (in header) of PE files with the actual CRC. 2016-03-12 11:22:55 +01:00
pancake
977aeb8173 Show entrypoint type info in rabin2 -e and ie 2016-03-12 11:16:42 +01:00
Aneesh Dogra
0e3d4bf773 PE: Add support for parsing TLS and add TLS callback addresses to the list of entry points.
Only add the address if its valid.
2016-03-12 11:04:25 +01:00
Aneesh Dogra
571e2a80c8 rahash2: Add RC2 2016-03-09 15:18:50 +01:00
Kishor Bhat
1139833812 RCrypto: Add support for the Blowfish cipher 2016-03-09 08:30:25 +01:00
Pankaj Kataria
aa8a65a852 rahash2 Added xor encryption 2016-03-09 08:28:26 +01:00
pancake
588e264f9f Fix latest COVs 2016-03-07 12:54:40 +01:00
pancake
3f5aa46bd5 Add rahash2 -E to encrypt instead of hash 2016-03-07 03:24:52 +01:00
pancake
00ac90f71b Initial import of crypto.rc4 algorithm and modernize RCrypto API 2016-03-07 02:38:50 +01:00
oddcoder
d6dbd326d6 pic18c analysis plugin (coloring) 2016-03-05 23:37:12 +01:00
Adr1
611c3d1752 RBin: Display File Version info 2016-03-04 01:15:56 +01:00
oddcoder
599cbcd3c7 attempt to fix scan.converity bugs
I also hunted 4th illegal memory read
the first 2 bytes of b is always casted to (ut16) type
with out checking if b even contains 2 bytes
now it is handled it correctly
2016-03-04 00:50:25 +01:00
oddcoder
7fe6c6dff2 Adding initial support for PIC18C diassembler 2016-03-02 11:55:22 +01:00
Riccardo Schirone
ec6b55527c core/disasm: fix set of last row offset
core/visual: reset cursor position on 'u'/'U'/'o'/'V'.
2016-03-02 11:29:13 +01:00
Martin Heistermann
fbd0905c56 Add initial indirect relocation (irel, ifunc) support. 2016-02-28 02:43:25 +01:00
pancake
517f7fa23e Handle Vi in Vppc - aka change reg values with cursor 2016-02-25 11:35:59 +01:00
pancake
eef4665242 Initial support for tab in visual debugger 2016-02-25 10:28:54 +01:00
pancake
a7f137f215 Support cursor in dr= 2016-02-25 02:58:26 +01:00
Mario Ballano
47d9888f93 Various RAP client/server bugs, endianness and remove RAP_RMT_SYSTEM 2016-02-23 15:00:59 +01:00
Riccardo Schirone
e72f5ed0ae anal/op: add var field to RAnalOp to store the local used by op
anal: save writes/reades of vars/args and fix x86 stackop analysis
2016-02-23 02:35:47 +01:00
Riccardo Schirone
81555efde2 flags: use name instead of realname as the key field of a flag item
flags: remove r_flag_set_name API because not consistent
       the right way to change the name of a flag item is by using
       r_flag_rename. the old api has been then marked as static and
       refactored.
2016-02-22 18:21:25 +01:00
Riccardo Schirone
23006460c1 flags: refactoring of r_flag_set
flags: remove dup parameter from r_flag_set
2016-02-22 18:21:25 +01:00
Riccardo Schirone
b80c635aba flags: refactoring of the APIs to unset a flag item
flags: free items when using unset_name, unset_off or unset_glob
2016-02-22 18:21:25 +01:00
Riccardo Schirone
a13d21cce7 flags: start fixing some style issues and add comments to the API
* remove format and cmd from RFlagItem because not used
* remove space_idx2 from RFlag because not used
* remove some dead code (USE_SDB and USE_BTREE)
* move around some functions
2016-02-22 18:21:25 +01:00
pancake
522d30aea2 Fix regoff_t conflict 2016-02-21 03:45:41 +01:00
pancake
af2f02515f Support and load r_fs plugins 2016-02-21 02:32:28 +01:00
pancake
100df3bb32 Better MIPS32BE ELF relocs, add Rx regs in mips.cs and add scr.wheelnkey, nN defaults to flag now 2016-02-21 01:56:50 +01:00
pancake
3140749266 Fix #4095 - Export RBinSection info for mach0.la_symbol_ptr 2016-02-16 02:58:29 +01:00
pancake
d35556a3e6 Fix #2276 - Implement et command 2016-02-16 00:10:46 +01:00
pancake
fd359e9121 Implement radiff2 -D and optimize r_strbuf 2016-02-15 23:51:20 +01:00
pancake
636e0d6473 Update sdb from git to fix a crash on windows 2016-02-15 19:01:50 +01:00
pancake
cdf63617d7 Initial support for LANAI disassembler 2016-02-15 13:27:23 +01:00
pancake
1a89cac78f Initial support for search.overlap 2016-02-12 11:37:48 -06:00
Riccardo Schirone
0b8a589e16 anal/bb: keep track of ops positions inside a RAnalBlock 2016-02-12 09:06:36 -06:00
Riccardo Schirone
b6351ec833 core/visual: better implementation of cursor movements
core/visual: refactoring of movements with ocur enabled
2016-02-11 00:14:36 -06:00
Riccardo Schirone
b4fda922cd libr/core: calculate the offset of each disasm row
util/print: fix bug in r_print_row_at_off

core/disasm: fix bug when setting the row offset of last line
2016-02-11 00:14:36 -06:00
Riccardo Schirone
94123f158c core/disasm: review screen_bounds meaning
core/visual: enable screen_bounds only on default modes
2016-02-11 00:14:36 -06:00
Riccardo Schirone
444c6e616a core/visual: replace global variables with core->print fields 2016-02-11 00:14:36 -06:00
pancake
9f2ce614d3 Avoid null bytes in axt output 2016-02-09 11:38:55 -06:00
Maijin
530dbe72c1 Save/restore macros in projects fix #4050 2016-02-07 00:51:26 +01:00
pancake
f5181c4d90 Initial rework for dyldcache 2016-02-04 15:44:49 +01:00
pancake
805e3f26e8 Fixes for lldb/debugserver on x86-64 2016-02-03 12:09:58 +01:00
pancake
bb073cf5db Modernize asm/code.c 2016-01-30 03:02:06 +01:00
pancake
d7a244f010 Initial import of asm.tricore disassembler plugin 2016-01-30 02:47:17 +01:00
pancake
d30b2f4894 Initial import of the anal.xtensa plugin 2016-01-30 01:37:04 +01:00
Jeffrey Crowell
f713c67794 restyle the function decl in r_debug 2016-01-29 18:52:53 -05:00
pancake
6f1655c491 Initial support for xtensa CPU disassmbler (from GNU binutils) 2016-01-28 23:59:50 +01:00
pancake
32dbac517f Several bug fixes for gdb-arm and thumb remote debugger 2016-01-26 23:36:02 +01:00
pancake
79cc7c9958 Add adf and adfg commands to define function gaps as data 2016-01-25 17:19:30 +01:00
pancake
bea71d7074 Add ap command to find prelude for current offset 2016-01-24 03:05:27 +01:00
Goncalo Carvalho
c4ea7fd354 convert negative fp numbers to hex and add static assert macro 2016-01-23 23:20:52 +01:00
Álvaro Felipe Melchor
c372743315 xnu: get rid of ptrace even for attach and detach
some rework in order to handle mach message as mach_exc_server and alike does
api change in plugin debug, now the function detach receive a pointer to RDebug
trying to deallocate port when are not needed any more
2016-01-23 22:50:28 +01:00
pancake
5198c3b1a9 Bump capstone and sdb from git 2016-01-20 16:29:20 +01:00
condret
ccab168cb5 fix a memleak and implement esil.stacksize for @crowell 2016-01-19 23:36:21 +00:00
Jeffrey Crowell
438071e8e1 add a directive for esil stack size
should eventually be configurable and allocated in vm init, but not
right now.
2016-01-19 15:33:33 -05:00
pancake
de22aa46f2 Fix COV with boolified r_io_creat 2016-01-19 13:16:24 +01:00
Álvaro Felipe Melchor
d9e77ca0d1 xnu: first series of patches to use mach exceptions
* use set_trace_bit and clear_trace_bit macros

* use PT_ATTACHEXC since PT_ATTACH will be deprecated in the future
and we are interested in receiving mach exceptions

* first attempt to handle mach exceptions

* api change: added a parameter to r_core_setup_debugger
at least in OS X this function was producing double attachment.
I've added a boolean value to indicate when use dpa.

* added pipe to communicate between main process and traced process
by far this is not a good implementation. We should develop a better
approach/design to save all the exceptions and handle them accordingly.
This is the initial implementation

* bring back ptrace for stability and in order to merge this into master
2016-01-18 22:24:16 +01:00
Y. Sapir
66225b9ee1 Filter unselected flagspaces in r_flag_get_at. 2016-01-15 03:11:55 +01:00