Commit graph

398 commits

Author SHA1 Message Date
pancake
90b47a9f20 Drop max file size to make rabin2 -zzz happy 2015-02-20 00:58:12 +01:00
inisider
d4b9195b95 add detector of msvc and lisence comments 2015-02-19 22:49:44 +01:00
pancake
31e08131d1 Handle RBin demanglers from plugins and support D language 2015-02-11 02:05:22 +01:00
pancake
a22f110979 Fix the rest of fatmach0 tests 2015-02-07 02:32:54 +01:00
pancake
3d2dec8852 Fix rabin2 -A for fatmach0s regression 2015-02-07 02:16:59 +01:00
pancake
1ea6a79d81 Fix null deref when failing to load a fatmach0 2015-02-04 02:40:48 +01:00
pancake
74c3707850 Fix invalid buffer size passed to bin_obj_new() 2015-02-03 23:19:14 +01:00
r0nk
2116a87c0c fixed a _huge_ memory leak. 2015-02-02 01:44:38 +01:00
pancake
039858fd86 Fix r2 -B, rabin2 -B, Implement oa command
- Now it is possible to load binfiles from debugger memory
* Base address is now honored properly. But it needs more testing
2015-01-29 01:45:39 +01:00
jvoisin
16cac50319 Coverity++ 2015-01-24 11:24:55 +01:00
pancake
d08015cf66 Add f--, fs-*, o--, enhace Po a lot
- Handle all internal information deinitialization in:
  - flags, io, core, bin, anal
- Fix w32 build
2015-01-22 02:22:29 +01:00
pancake
4c6e2f129c Add rabin2 -F and r2 -F to force the use of a specific rbin plugin 2015-01-11 19:40:26 +01:00
pancake
ded8790518 Initial support for Swift symbol and imports demangling 2015-01-02 04:32:53 +01:00
pancake
262b0cfd55 A fix for a MACH0 crash 2014-12-11 19:57:01 +01:00
pancake
acade3fee7 Fix more crashes on DEX 2014-12-11 17:21:15 +01:00
pancake
a984b05720 Fix underflow in RIO and clean some null derefs in RBin 2014-12-04 13:02:11 +01:00
pancake
9a0d62da22 Finally remove the void*debug pointer from RIOPlugin (use bool isdbg) 2014-11-21 11:36:51 +01:00
pancake
b1da2b30e3 Fix #1670 - r2 -d 'ls -l /' working again 2014-11-18 11:19:04 +01:00
pancake
b158a7a63b Fix rabin2 -z regression 2014-11-05 09:46:11 +01:00
pancake
b833c21948 Fix another off-by-one crash in rabin2 -z 2014-11-05 00:37:58 +01:00
pancake
7eea922f35 Fix a tiny off-by-one in rabin2 -z 2014-11-05 00:17:48 +01:00
pancake
cab0c6ae49 Fix crash in r_utf8_decode 2014-11-04 23:17:52 +01:00
Fedor Sakharov
d9a78f33b4 bin: Load symbols before relocations 2014-11-04 13:59:54 +01:00
jvoisin
a60d82b800 Fix a lot of warnings for GCC
Less than 20 warnings remaining on my x86_64 GCC 4.9.1
2014-10-26 13:50:58 +01:00
pancake
e807868b78 Honor rabin2 -N minstrlen for -z,-zz,-zzz 2014-10-24 20:13:18 +02:00
pancake
131b9092c2 Implement rabin2 -zzz (dump strings to stdout, works on huge files) 2014-10-24 18:26:37 +02:00
pancake
da866539ee Fix 'oo' bug (sync rcorefile and riofile lists), Better 'ob' 2014-10-17 00:04:52 +02:00
pancake
0e0dc63aa8 Fix r2 -d problem not loading syms. Redo the ASLR/PIE again 2014-10-15 15:41:02 +02:00
pancake
abd7bcda90 Hackaround for pie bins 2014-10-08 01:54:09 +02:00
pancake
9f962a05ab Fix r2 -zz and rabin2 -zz, also set default minstrlen for ELF/ELF64 2014-10-07 22:55:10 +02:00
pancake
38a1ded448 Fix rabin2 -a arm -b32 -c ... 2014-09-26 18:13:55 +02:00
pancake
ac22f9e25c Fix several COFF parsing crashes. Bring back /B 2014-09-20 19:28:56 +02:00
pancake
fc2bb2af7f Fix 4GB issue file and some more warnings 2014-09-20 15:53:29 +02:00
Jonathan Neuschäfer
64574ac5fb Fix an one-byte buffer overflow in string_scan_range 2014-09-18 18:56:57 +02:00
pancake
32173be9ee Fix RBinInfo.static 2014-09-09 00:33:31 +02:00
pancake
8204e78c3f Fix RBin & RLang related crashes (fix lot of memleaks and dblfrees) 2014-08-29 16:27:44 +02:00
pancake
67171b86a5 Hackaround to get r2 -B0 working. 2014-08-28 00:19:51 +02:00
Jonathan Neuschäfer
ed2470bc2c Avoid a few out-of-bounds reads
* When "omr" is called without any arguments
  + instead just do nothing
* in string_scan_range
* unbounded pdj now works under ASAN.
  + But what did the +5 do there?
* on px/ without arguments
2014-08-26 03:45:14 +02:00
pancake
cda3d9c44b Update sdb and workaround all sdb finalization issues until proper fix is done in Sdb 2014-08-25 01:10:10 +02:00
jvoisin
052d576ae6 coverifix 2014-08-24 19:40:08 +02:00
pancake
1386bbd2b8 Fix crash in elf parser (rbinfile != rbin != rbinobj) 2014-08-19 11:37:17 +02:00
jvoisin
9b99c0135d Even more coverifix 2014-08-18 15:03:02 +02:00
pancake
4b7e3cdd3f Fix CID 1231791 2014-08-17 20:22:30 +02:00
pancake
a0570b4144 More fixes related to paddr/vaddr on PE/ELF/XBE 2014-08-15 12:47:05 +02:00
pancake
a6ad71eccb Implement '/B' to search for known RBin headers 2014-08-11 03:48:51 +02:00
pancake
9a55e866b0 Fix rabin2 -Z . Implement it for DEX too. 2014-08-07 01:00:04 +02:00
pancake
5f3dda2bc2 Optimize loading big binaries, mostly for PE ~20x faster 2014-08-05 01:42:22 +02:00
jvoisin
f7b05fe65d Coverifix rampage! 2014-08-04 01:21:38 +02:00
jvoisin
d026752e4e Add a check to plugin loading, thanks davispuh 2014-08-03 17:30:21 +02:00
pancake
314ab38a78 Fix all latest coverity issues 2014-07-21 17:51:20 +02:00
pancake
e94817a78b Fix PE bin strings offsets and types 2014-07-17 21:56:35 +02:00
pancake
cf64a5dd75 Fix #1117 - Bring back rabin2 -c 2014-07-17 09:40:35 +02:00
pancake
5ce3dd71ab Autodetect ARM thumb symbols and expand analysis. Tested on ELF/MACH0 2014-07-17 03:34:16 +02:00
pancake
178464ea36 Apply LemonBoy's patch to fix string offset in va 2014-07-14 00:06:00 +02:00
LemonBoy
10dc0c6ef4 Make the PE header return vaddrs relative to the image address 2014-07-11 23:32:44 +02:00
LemonBoy
e8dd114774 Re-enable the hack that makes the world tick, one day we'll get rid of that 2014-07-11 23:32:44 +02:00
LemonBoy
0acf0b1dd2 Various fixes to stop the vaddr translation madness 2014-07-11 23:32:44 +02:00
LemonBoy
fa75d37e7f Fix a tiny memory leak (hah) 2014-07-09 17:16:57 +02:00
jvoisin
b0375a3904 strchr takes the lowest 8 bits of that only so 0x10a would appear as 0x0a making it segfault when doing the array access
Kudos to TheLemonMan
2014-07-07 16:03:51 +02:00
LemonBoy
9208946109 Add support for UTF-8 and better WChar strings in RBin
- Better string recognition.
- Better wchar string detection
- UTF-8 helpers. Better string detection.
- Break on invalid sequences
- Fix the vaddr translation. Misc fixes
2014-06-30 16:39:24 +02:00
Jonathan Neuschäfer
9d8dbbd7e8 r_bin_reload: initialize len_bytes, avoid unpredictable allocation
The problem here is that r_io_desc_read checks out_sz, the argument
&len_bytes is passed as, and uses *out_sz as the number of bytes to
allocate unless its UT64_MAX.  So, instead of passing an uninitialized
value, initialized len_bytes to UT64_MAX.
2014-06-21 01:39:33 +02:00
Jonathan Neuschäfer
4c612db79b a few cleanups in bin and lang
* libr/bin/bin.c: remove duplicate condition (xtr && xtr)
* libr/bin/p/bin_elf.c!libs: use r_list_newf
* libr/lang/p/Makefile: add empty "clean" target to silence make warning
2014-06-14 02:14:08 +02:00
pancake
3e5eb05eda Fix PE exports parsing (adapted inisider patch) and some code cleanup 2014-06-13 16:00:39 +02:00
pancake
63ae19c650 Implement RBinInfo->is_stripped for MACH0 files 2014-06-10 20:50:48 +02:00
pancake
0ea452d0f5 Fix build 2014-06-06 00:06:30 +02:00
pancake
7322a152e1 Minor fix for search in iova 2014-06-05 04:14:37 +02:00
deeso
d82e709d0d fixed use after free possibility from r_bin_reload 2014-06-02 17:16:57 +02:00
Fedor Sakharov
3a0422db24 bin: Delete the list of objs instead of deleting current object
Fixes #971
2014-06-02 17:15:48 +02:00
pancake
8d663ceb94 Some rework on RBin.baddr and laddr to make it work again
Not all fileformats return correct data in Sections, this is
why sometimes the relocation with baddr (needed for aslr) fails
on mach0 for example. This code needs to be redesigned and fixed.
2014-05-29 00:49:28 +02:00
pancake
d65700dedd Fixes to make RBin/RIO more consistent for bindings 2014-05-28 18:58:53 +02:00
pancake
6266fc66c7 Minor fixes 2014-05-28 17:49:32 +02:00
pancake
810b976b73 More regression fixes for baddr on ELF and MACH0 2014-05-26 12:04:07 +02:00
pancake
576c9d6221 Fix ASLR (rabin2, r2 -B working again), sort i? output 2014-05-26 03:06:29 +02:00
pancake
5d9751e9e2 Remove global in RBin 2014-05-26 00:39:23 +02:00
pancake
8c0ed5a6ee Update capstone and embed it into the 'make dist' tarball 2014-05-25 03:58:58 +02:00
Adam Pridgen
e6f8c63b7a Debugger returned '0' for size and not UT64_MAX which was unexpected 2014-05-21 19:38:20 -05:00
pancake
29ee197638 Optimize RMeta.add() and bump sdb for updated optimizations 2014-05-22 02:15:26 +02:00
pancake
e7d3a629a5 Remove file size limit in RBin 2014-05-22 00:59:31 +02:00
pancake
ff939fd048 Implement #956 (rabin2 -k - prompt) and fix r_bin_load() 2014-05-22 00:12:30 +02:00
deeso
a702c82ac8 Enhance performance with reduced mallocs at load time 2014-05-21 13:02:02 -05:00
pancake
a1224b2156 Refactor rva > vaddr and offset > paddr.
That change may make mixing vaddr and paddr more visible
2014-05-21 03:18:00 +02:00
pancake
879f295365 Fix bin.rawstr (rabin2 -zz), some offsets wrong in PE 2014-05-19 02:41:53 +02:00
Anton Kochkov
c644050a59 Fix CID 1214309 2014-05-17 03:00:45 +04:00
Anton Kochkov
90ef2d220f Fix CID 1214330 2014-05-17 02:56:52 +04:00
Anton Kochkov
3b4f167473 Fix CID 1214310 2014-05-17 02:52:27 +04:00
Anton Kochkov
58b5e970ba Fix CID 1214328 2014-05-17 02:49:26 +04:00
Anton Kochkov
86d13f5340 Fix CID 1214329 2014-05-17 02:47:43 +04:00
pancake
c6a73d3074 Fix loading sections from fatmach0 bins 2014-05-16 03:48:57 +02:00
pancake
41692b70e6 Fix regression: PE baddr, update uncrustify 2014-05-16 02:46:07 +02:00
pancake
03e1407dd9 Expose current opened file in 'k bin/cur/..' 2014-05-14 18:02:56 +02:00
pancake
587c5f51c2 Implement MACH0- crypto and UUID inside Sdb bin/<fd>/info 2014-05-14 05:48:03 +02:00
Adam Pridgen
6d1da071fe Fixed empty flags issues with debugger 2014-05-13 21:54:18 -05:00
Adam Pridgen
5bb7ddef66 Added listing for binfiles, selection by binobject ids, selection by binfile ids, and deletion by bin object ids 2014-05-13 21:54:18 -05:00
deeso
1fbc7f2168 Added load_bytes, Pushed curplugin down to RBinObj, Reworking the RBinFIle loading to accomodate RBinObj reworked how all bins are loaded. Needed to hack IO to make
this work with rbinfiles and rbinobjects.

Conflicts:
	libr/bin/bin.c
	libr/bin/p/bin_te.c
2014-05-13 21:54:18 -05:00
pancake
216c183b6e Remove tons of useless 'if (x) free (x)' 2014-05-09 17:40:28 +02:00
jvoisin
f37a120422 Fix CID 1135066 2014-05-09 15:47:42 +02:00
deeso
4ad0f2a400 Tweaking bin plugins so that they can check bytes along with a binfile and fixed extraneous * in buf.c and r_util.h 2014-05-08 14:09:10 -05:00
Adam Pridgen
baf8ead86f Update bin info for binfile being set in the environment 2014-05-05 22:07:01 -05:00
Anton Kochkov
98f8fff3f7 Fix CID 1211152 2014-05-06 01:33:53 +04:00
Adam Pridgen
e9cabecc45 Fix CIDs: 1211131, 1211134, 1211136, 1211133, 1211143 2014-05-04 22:09:20 -05:00
Adam Pridgen
bd297f6788 reworked how bins environmnent variables are set (e.g. io.va, arch, bits, etc.) and fixed some more mach0 regressions 2014-05-04 17:15:55 -05:00
deeso
3d8dc61a55 Fixed some of the mach0 regressions 2014-05-03 09:58:53 -05:00
pancake
a0da04cb16 Fix r_bin.h (should fix bindings) and more MAKE_JOBS 2014-05-03 02:19:14 +02:00
fr33tux
3d801f90ff Remove r_list_destroy, replaced it by r_list_purge 2014-05-03 01:27:10 +02:00
deeso
d5a6c3d23c Adding r_bin_load_as feature and fixing null pointer reference in rabin. 2014-05-02 13:51:02 -05:00
deeso
3adcb54f17 Overhauled how files are loaded. Now *all* files use an IO plugin the default one is mmap'ed 2014-05-01 20:13:57 -05:00
Adam Pridgen
c3d6664756 Adding multi-bin support for files that contain multiple objects and lots of other fixes in libr/bin 2014-04-28 12:11:14 -05:00
deeso
5f6f8064d9 Fixed some issues in bin/dwarf.c and Fixed 1205194, 1205193, 1205192, 1205202, 1205203, 1205204, 1205205, 1205209, 1205208, 1205207, 1205206 2014-04-25 15:14:57 -05:00
deeso
d5908941fb Steps toward fixing the reopen of a file being debugged 2014-04-24 18:21:40 -05:00
deeso
c6a7faad77 fixed the bug with the insane fuzz command 2014-04-22 23:06:00 -05:00
pancake
61bc0c8268 Fix t/io/zerofile segfault 2014-04-23 04:04:50 +02:00
pancake
836803d786 Sdbize RBin.list_archs(). Expose addrinfo in 'k bin/fd.#/addrinfo/*' 2014-04-23 03:57:13 +02:00
Fedor Sakharov
6c5505b39d Use sdb to store dwarf lineaddr info 2014-04-21 19:22:37 +04:00
pancake
fd6196e1f1 Fix mach0 arch listing (!= fatmach0) 2014-04-21 13:16:22 +02:00
deeso
d1186ac7c2 Added a temporary fix for the bin->printf issue 2014-04-20 15:01:51 -05:00
deeso
be5c6b6f0d Fixed the parsing and extraction of RBinFiles in macho or other multi-files. There appears to be a problem with bin->printf 2014-04-19 16:38:37 -05:00
pancake
2b84217ce8 Fix few warns in RBin 2014-04-18 16:37:02 +02:00
pancake
61fba34835 Add 'iA' command to list all archs (sub-bins) 2014-04-18 12:10:38 +02:00
pancake
662de48bd2 Fix rabin2 -z on Rust binaries 2014-04-04 00:24:56 +02:00
pancake
613e6e2f9c Fix invalid free and r2 -hh help 2014-04-03 23:05:52 +02:00
Adam Pridgen
eaa8f303fc fixed issue with r_bin missing stuff 2014-04-03 14:13:02 -05:00
Adam Pridgen
3048a34783 Trying to fix mem-leaks, and allow updating of bin object infos 2014-04-03 14:04:07 -05:00
pancake
7c8daf1e70 Refactoring RBinMeta into RBinDbgInfo 2014-03-10 02:27:32 +01:00
pancake
9ec418ec37 Fix rap:// and enhace RConsMouseWheel support 2014-03-02 00:31:35 +01:00
pancake
f3d622a641 ReFix for #585 issue 2014-02-27 03:01:14 +01:00
pancake
5666b6ce2b Refix #652 2014-02-22 02:52:56 +01:00
pancake
7e5d6894fb Fix #652 - rabin2 -g/-x/-N segfault 2014-02-22 02:48:13 +01:00
pancake
cb7c2b7f56 Fix possible null deref in bin.get_info 2014-02-14 11:51:08 +01:00
pancake
693653068e Fix strings and main offsets in PE 2014-02-13 01:48:15 +01:00
pancake
1390d9f2d5 Add length and size fields in RBinString 2014-02-11 00:08:12 +01:00
pancake
e70d43fc4f Implement String Type field in RBin string search (like in r1) 2014-02-10 17:19:18 +01:00
Adam Pridgen
dc06501f4a clean up sloppy spacing 2014-02-02 23:55:03 -06:00
Adam Pridgen
d01e6ac04c Fixed the entrypoint issue, need to address XXX in r_core_bin_info 2014-02-02 23:50:06 -06:00
pancake
9565830426 Bypass (comment) valgrind issue 2014-01-12 02:21:38 +01:00
pancake
6e8073a67f Fix @b: command suffix for 'pd' and fix issue with malformed mach0 2014-01-29 02:42:22 +01:00
Adam Pridgen
d74e10e13b Fixed the many load so that when switching priority, offset is updated to the current bin. TODO: save offset when changing priority 2014-01-26 01:29:17 -06:00
Adam Pridgen
5eb3e68c4f fixed warning introduced by java 2014-01-22 21:29:07 -06:00
Adam Pridgen
51a27ab1cc Coverity Fixes 2014-01-22 16:58:23 -06:00
pancake
1878a8cbae Fix previously skipped segfault 2014-01-20 03:29:50 +01:00
Adam Pridgen
db1bb1a089 Changed the location of RBinObject, and created RBinFile to conform similarly to
RCoreFile, where RBinFile contains meta information for RBinObjects.  Now
RBinFiles are swapped out along with the RCoreFile when the priority is changed.
2014-01-20 02:44:25 +01:00
Adam Pridgen
415a77dca0 Java can now load multiple bins into radare space, and analyse the different bins.
See libr/bin/p.bin_java.c libr/anal/p/anal_java.c for the hacky details.
Fixed the coverity issue.
2014-01-12 17:36:47 -06:00
pancake
35d14529a4 Fix minstrlen issue with elf binaries and Cd -X 2013-12-29 03:42:18 +01:00
pancake
1185a8210b Integrate SDB into RBin accessible with the 'ik' command 2013-12-20 01:20:17 +01:00
Roi Martin (@nibble_ds)
3f5ebd9d16 Fix #458 - Negative baddr
Fix r_bin_get_vaddr() (needs further testing due to changes in r_io)
2013-12-19 19:43:44 +01:00
Adam Pridgen
ddf540d0ab Squashed merge of @deeso's pullreq for the Java RBin plugin
Added basic interpretation of java access flags for classes, fields, and methods
Added a visibility_str to RBinSymbol and RBinClass, and updated getters in Java
Added minstrlen to bin_java plugin struct
Fixed bin->minstrlen not being set in r_bin_init_items
Fixed iinc instruction.
2013-12-17 02:23:16 +01:00
pancake
bbe6e8c8a2 Add license to RBin, RDebug and RIO plugins 2013-12-10 04:19:04 +01:00
pancake
c165361124 Add bin.bf for brainfuck and use static ESIL struct 2013-12-10 03:35:59 +01:00
pancake
26807eec4d Fix #386 - Crash when rabin2/radare2 terminates 2013-12-10 02:20:51 +01:00
pancake
f76441b7e7 Fix some warnings 2013-12-09 04:56:13 +01:00
Adam Pridgen
38c9af46b0 Fix the bin.minstrlen bug by adding a callback and refereshing strings when this value changes 2013-12-05 23:51:17 -06:00