Commit Graph

25997 Commits

Author SHA1 Message Date
Luc Tielen
91d67d6894
Refactor loading of elf libs ##bin 2023-04-20 16:51:33 +02:00
Luc Tielen
19dc41dc7a Refactor elf loading of relocs ##bin 2023-04-20 14:47:45 +02:00
pancake
34e659dbac Remove unused variable 2023-04-20 12:13:52 +02:00
pancake
5e4a86f564 Fix ininite loop in the ext2 grub code (DDoS) ##crash 2023-04-19 19:40:49 +02:00
pancake
fa21d2b32e Fix 8 byte oobread on pkcs7 parser ##crash 2023-04-19 17:25:28 +02:00
Luc Tielen
093d583000 Refactor even more loading of elf sections ##bin 2023-04-19 07:22:22 +02:00
Luc Tielen
923df4761c Refactor elf loading of sections ##bin 2023-04-19 07:22:22 +02:00
pancake
872e02dff9
Branch prediction optimizations (3/3) ##performance 2023-04-18 17:48:13 +02:00
pancake
433917e551
Branch prediction optimizations (2/3) ##performance 2023-04-18 16:10:44 +02:00
pancake
b44f8d3f3c
Branch prediction optimizations (1/3) ##performance 2023-04-18 16:10:16 +02:00
pancake
c8e62e19ba Add greepy color theme (green + pink + white) glitch-style ##cons 2023-04-18 15:52:15 +02:00
pancake
825cb98ebe Tiny check fixes in RCoreCmd() 2023-04-18 15:11:48 +02:00
pancake
5527376f36 Use RCore.cmdCall() and just replace pointers for -A 2023-04-18 10:20:58 +02:00
Luc Tielen
7ee8fb77a2 Refactor mach0 loading of relocs ##bin 2023-04-17 18:36:18 +02:00
pancake
86d77e2a54 Silent warning on empty dwarf blocks ##bin 2023-04-17 16:38:37 +02:00
pancake
35c7ab6f50 Unused var had a meaning in the xnu kernelcache parser ##bin 2023-04-17 13:42:00 +02:00
pancake
b56efb0ad3 Fix UAF in the dwarf parser ##crash 2023-04-17 13:41:28 +02:00
Ildar Sadykov
2874ef7125
Implement r_str_tok_r without breaking abi
* reduce the strtok usage
2023-04-17 00:52:31 +02:00
pancake
91f8fef027
Add build optimization and precondition check levels in -v ##shell 2023-04-14 17:59:32 +02:00
pancake
5135fe4600 Fix 1 byte oobread in the wasm disassembler ##arch 2023-04-14 15:48:45 +02:00
pancake
bb5adcdd20 Reuse RStr.version() from r2's '?V'/'-v' ##shell 2023-04-14 13:32:52 +02:00
pancake
0e6a470b25 Show '(asan)' in r2 -v when runnin sanitized builds ##shell 2023-04-14 13:32:52 +02:00
pancake
f585a3aa06
Fix non-null-terminated string in dwarf ##crash 2023-04-14 12:15:01 +02:00
pancake
db1d06da6b Migrate s390.cs and fix the abidiff suppression rules ##arch 2023-04-14 11:26:23 +02:00
pancake
721f818364 Fix null deref in the dyldcache ##crash 2023-04-14 11:02:03 +02:00
pancake
9e64f8c14c
Fix oobread in swift field parser ##crash 2023-04-14 10:54:31 +02:00
pancake
10415ea004 100ms faster large tables listings 2023-04-13 20:22:37 +02:00
pancake
a2465476be Fix 4 byte oobread in objc analysis on 32bit binaries ##crash 2023-04-13 19:50:56 +02:00
pancake
96282db512 Fix oobread in dwarf parser ##crash 2023-04-13 19:39:07 +02:00
Luc Tielen
3f153abffe
Refactor loading of mach0 sections ##bin 2023-04-13 18:20:09 +02:00
pancake
6741634429 Fix double free in debug traces 2023-04-13 16:42:13 +02:00
Luc Tielen
e943a97b26 Conditionally parse mach0 start symbols ##bin 2023-04-13 15:45:57 +02:00
Luc Tielen
81f596a4d9 Fix bug wrongly casting dyld/kernelcache to mach0 ##bin 2023-04-13 15:45:57 +02:00
Luc Tielen
1920cca725 Remove code, port dyld + kernel cache to new API ##bin 2023-04-13 15:45:57 +02:00
pancake
ce37e3e4b1 Fix UAF in the p9 parser ##bin 2023-04-13 14:44:10 +02:00
pancake
6ff7ee9dda Fix status register in the regprofile for darwin-arm64 ##debug 2023-04-13 11:52:36 +02:00
pancake
185eb5afe2 Fix oobread crash in the visual bit pixel editor ##crash 2023-04-13 11:50:01 +02:00
pancake
0b97bd37aa Another dwarf null deref ##crash 2023-04-13 11:05:05 +02:00
pancake
05ca1adf56 Code cleanup in visual.c 2023-04-13 10:56:19 +02:00
pancake
60f8492f2b Rename R_CONST to R_TAG and add unit tests for them ##api 2023-04-12 22:37:12 +02:00
pancake
eaea585b0d Fix asm.pseudo for arm64's stur instruction ##disasm 2023-04-12 21:41:27 +02:00
pancake
d31d72491b Migrate the ppc.gnu plugin ##arch 2023-04-12 21:05:09 +02:00
pancake
8978d445a3 Implement 128bit regstore esil emulation ##esil
* Add test case for the arm64 q0 register
2023-04-12 20:53:24 +02:00
pancake
9618cf91e4 Dont display the cpu flags if the arch doesn't support them ##debug
* This is done in visual thru the drcq command
* RISCV is one of those archs. Tested in real hardware
2023-04-12 19:51:42 +02:00
pancake
75ab029976 Implement 'uname -a' flag ##shell 2023-04-12 19:31:32 +02:00
pancake
29fad286b2 Adjust bpcount and use typedefs instead of structs in bps ##debug 2023-04-12 00:32:22 +00:00
pancake
9a43f62e53 Define RISCV breakpoint instructions ##debug 2023-04-12 00:27:43 +00:00
pancake
3456d0d16e Fix oobread in the xcoff64 parser ##crash 2023-04-12 18:07:13 +02:00
pancake
90dc5c64f7 Fix an 1byte oobread in the pyc plugin ##crash 2023-04-12 18:01:43 +02:00
Luc Tielen
06b6f85581 Migrate m68k_gnu plugin ##arch 2023-04-12 17:53:32 +02:00
pancake
fb4a0bdfdc Improve the riscv analysis ##arch
* Fix inconsistencies between disasm and opinfo
* Fixes emulation of calls and jumps
* Fix type confussion x=(addi 0, y/lea y/ mov y)
* Fix "li" as mov not as load
* Fix esil emulation for riscv's jr/li/mv ##arch
2023-04-12 17:52:59 +02:00
Luc Tielen
3e812278b5
Refactor loading of mach0 symbols ##bin
* Use RVector instead of handmade
* Replace sdb with ht for performance in mach0 parser
* Mark flacky test as broken
2023-04-12 16:51:30 +02:00
Luc Tielen
47d88743bd
Migrate S390 GNU plugin ##arch 2023-04-12 15:59:51 +02:00
pancake
e5a10638f7 Fix warnings on xattr io plugin on linux 2023-04-12 12:47:33 +02:00
pancake
277e0aa606 Fix #21559 - k&r syntax is deprecated for c2x compat reasons 2023-04-12 11:56:24 +02:00
pancake
21414a0dc8 Fix REG_SP redefinition on rv64 builds 2023-04-12 11:24:58 +02:00
pancake
77b091d618 Avoid large allocation in the elf parser ##crash 2023-04-12 11:06:21 +02:00
pancake
c2801306f3 Check for null pointers in uleb and dwarf ##crash 2023-04-12 11:06:21 +02:00
AlexanderKucherov
d5e8678c10
Fix #21576 - Function stack frame size in case of FP register in a Thumb's PUSH ##anal 2023-04-11 23:29:31 +02:00
Luc Tielen
494c21467b
Refactor loading of mach0 libraries ##bin
* Use less allocations in mach0 parser

Co-authored-by: Luc Tielen <ltielen@nowsecure.com>
Co-authored-by: pancake <pancake@nowsecure.com>
2023-04-11 23:19:04 +02:00
pancake
caf010de2a
Fix SocketNotificationRetrieveEvents already defined issue ##build 2023-04-11 16:59:34 +02:00
Luc Tielen
38d0257b74 Implement review remarks for mach0 import parsing ##bin 2023-04-11 16:05:53 +02:00
Luc Tielen
89d29a7b52 Refactor mach0 loading of imports ##bin 2023-04-11 16:05:53 +02:00
Luc Tielen
b0c267e827 Refactor string comparisons in macho parser ##bin 2023-04-11 16:05:53 +02:00
pancake
6b1d05e31b Add -v, -vj and the 'r2.' command as a short for js oneliners ##shell 2023-04-11 15:10:20 +02:00
pancake
bf965bdd85 Implement zip0:// uri handler ##io
* Open the first file inside a zip
* Add test for zip0://
2023-04-11 14:30:03 +02:00
pancake
e89a521642 Only run 'diq' in visual when cfg.debug ##visual
* diq stands for debug process info, useless for esil
2023-04-11 14:30:03 +02:00
pancake
0fddb6c0d7 Implement pseudo for riscv's 'auipc' instruction ##disasm 2023-04-11 14:30:03 +02:00
pancake
9f90b76155 Large null:// allocation causing negative pointer issues on iobank ##io
* Crash reproducer 9e248945-73a7-4cd7-906b-1544a0a3cc36
2023-04-11 14:02:01 +02:00
pancake
c6ff4a7338 Fix oobread in omu command ##crash 2023-04-11 13:47:25 +02:00
pancake
70587b75da Fix large allocation bug in the elf version parser ##crash 2023-04-11 13:01:43 +02:00
pancake
9a74377d69 Fix null derefs in the dwarf parser ##crash 2023-04-11 13:01:43 +02:00
pancake
9501a38638
Dont use strtok in the riscv plugin ##arch 2023-04-10 23:38:44 +02:00
pancake
109a8ddd0a
Fix '\xff' strings issue in bsd-rv64/arm64 ##disasm 2023-04-10 13:28:07 +02:00
pancake
767dc394f8
Improve code quality of the dmh command
* Avoid strtok, strcmp ("\0") and other abominations
2023-04-10 12:54:51 +02:00
pancake
07df4144eb Native debugger for OpenBSD and NetBSD on arm64 ##debug 2023-04-10 09:19:30 +02:00
pancake
4968d69f18
Migrate the hppa.gnu ##arch 2023-04-09 23:20:32 +02:00
pancake
b5cd2f3731 Improve RTable trailing spaces ##print 2023-04-09 18:07:50 +02:00
pancake
5bf6f11c9c Add experimental zign.mangled to not use demmangled symbol names ##signatures 2023-04-09 18:07:50 +02:00
pancake
93b2886ade Use "" command syntax for the z* output ##signatures 2023-04-09 18:07:50 +02:00
pancake
7f4992b588 Add demangled column in the symbol listing ##bin 2023-04-09 18:07:50 +02:00
pancake
f740d7b72e Fix trailing spaces in table ##print 2023-04-09 18:07:50 +02:00
pancake
de31667fc8 Add LC_AOT_METADATA parsing support for mach0 ##bin 2023-04-09 12:42:11 +02:00
pancake
d7b083c068 Implement 'piE' command, like 'pie' but for bytes instead of ops ##print 2023-04-09 12:03:57 +02:00
pancake
590d6412fe Dont emulate null instruction types, causing invalid analysis ##esil 2023-04-09 11:41:36 +02:00
pancake
e40490c5f2 Fix #21564 - 128bit support via [16] and RReg for arm64 ##esil 2023-04-09 11:41:36 +02:00
pancake
ce02212bfe Migrate the sparc.gnu plugin ##arch 2023-04-09 01:48:18 +02:00
pancake
f4821f733a Partial fix as an example for #21559 2023-04-09 01:03:52 +02:00
pancake
0cf6e7a5cc Fix RReg.setValue on 128bit registers ##reg
* Still limited to 64bit values
2023-04-07 20:18:48 +02:00
pancake
c6a32fd1a0 Update tests 2023-04-05 18:50:09 +02:00
pancake
40f1ebe64c Add support for ""ec in theme files ##cons 2023-04-05 17:32:18 +02:00
pancake
123bcd7e83 Improve color support in graphviz, still wip ##graph 2023-04-05 17:24:21 +02:00
pancake
1370752021 Improved instruction mask using the new aobm and anal.mask ##anal 2023-04-05 14:31:19 +02:00
pancake
25de52db5f
Initial implementation of the 'cgfa' command ##diff
* List all similar functions
2023-04-05 14:30:39 +02:00
pancake
259cf507f4 Add ?ee and ?ei command for stderr echos ##shell 2023-04-05 13:40:57 +02:00
pancake
91d5c5c98f
Add crosscompiled arm64 debian builds ##ci 2023-04-05 12:48:11 +02:00
pancake
b6d777275c Better typescript entrypoint support and fake r2pipe ##lang 2023-04-05 11:29:22 +02:00
pancake
38d4b86693 Support running typescript files without r2's Gmain ##lang 2023-04-05 02:07:26 +02:00
pancake
46229e33ea frida-compile bundles can contain anything, we only interpret/load the .js ones ##lang 2023-04-05 01:59:38 +02:00
pancake
00205c687d
Reuse recusion in c++ demangling with lower bounds ##bin 2023-04-05 01:52:01 +02:00
pancake
d8420d4dca Improve brainfuck VM using ESIL and arch restrictions ##arch
* Instruction size must be 0xff instead of 32, to handle long jumps
* Registers are 32bit, so internal stack must use 32bit words
* Fix loop logic using simplified conditionals
2023-04-01 11:38:31 +02:00
Luc Tielen
58cc69f0dd Migrate the brainfuck ##arch 2023-04-01 11:38:31 +02:00
pancake
2119dc6510
Fixes the bfbug losing arch setup after o malloc ##core 2023-04-01 00:11:51 +02:00
Luc Tielen
2292f29ae5 Remove unneeded line in meson build after plugin migration ##arch 2023-03-31 15:31:34 +02:00
Luc Tielen
98c025ff79
Migrate h8300 plugin ##arch 2023-03-31 14:53:40 +02:00
pancake
ac9452accf Always use the return value of RTable.query() ##shell 2023-03-31 14:46:43 +02:00
pancake
8b741db5db Dont list symbols when using is,:help ##shell 2023-03-31 14:46:43 +02:00
pancake
b7767dcc80 Fix UAF in RStr.replaceIcase() spotted by coverity ##util 2023-03-31 13:53:10 +02:00
pancake
a8143d8fb2 Migrate the pyc plugin ##arch 2023-03-30 16:14:41 +02:00
Luc Tielen
1e2c75cf65
Migrate msp430 plugin ##arch 2023-03-30 15:56:37 +02:00
pancake
79ed7b39b6 Fix some oobread bugs in the ELF parser ##bin 2023-03-30 14:19:08 +02:00
Zhipeng Xue
887cda026b
Fix potential uninitialized value 2023-03-30 11:39:33 +02:00
pancake
471109294b Support JK scrolling (+-5 lines) in modals ##panels 2023-03-29 22:46:19 +02:00
pancake
5e5bbab90f Fix oobread in the msvc demangler ##crash 2023-03-29 21:55:48 +02:00
pancake
1c8d35b36f Fix archinfo for v810 ##arch 2023-03-29 20:15:10 +02:00
pancake
2175715b0a Add wip archinfo and wip regs and make mcs96 an arch plugin ##arch 2023-03-29 20:15:10 +02:00
pancake
df330b9107 Implement parsing optimization for dwarf5 ##dwarf 2023-03-29 18:09:52 +02:00
pancake
8a378cca41 Store column information in the addr2line database ##dwarf 2023-03-29 12:23:05 +02:00
pancake
2eb635193c Add cmd.step config var to run a command after every debugger step ##debug 2023-03-29 11:36:35 +02:00
pancake
5b41faf4b1 Implement 'aoem' command to show memory refs via emulation ##esil 2023-03-29 11:36:35 +02:00
pancake
ec23985697 Filter zignature names before validation ##signatures 2023-03-29 11:21:01 +02:00
pancake
f5749b7732 Minor help improvements for afv and less eprintfs 2023-03-29 06:18:49 +02:00
pancake
8e15ae2b35 Fix two minor memory leaks 2023-03-28 23:05:32 +02:00
pancake
bed9f722b3 Fix uninitialized oobread in the elf parser 2023-03-28 22:57:33 +02:00
pancake
e2421ca83f Fix UAF in radiff2 when using R_LOG apis after freeing RCore 2023-03-28 22:57:33 +02:00
pancake
05af4fc3bf Make sys/sanitize be aware of the memory sanitize check ##build
* -fsanitize=address is only available on Linux/CLang
* Avoid infinite recursive loop when core-log is not initialized
2023-03-28 22:57:33 +02:00
Luc Tielen
43db095af7 Migrate ebc plugin ##arch 2023-03-28 20:32:59 +02:00
Luc Tielen
561032abe5
Migrate lh5801 plugin + add missing regprofile ##arch 2023-03-28 20:13:18 +02:00
pancake
a215f295a8 Migrate the pdp11 plugin ##arch 2023-03-28 15:42:28 +02:00
Luc Tielen
be83c2cee9 Migrate arc ##arch 2023-03-28 15:24:42 +02:00
pancake
648f28f7e2 Fix uninitialized memory bug in RCons 2023-03-28 11:29:58 +02:00
pancake
70a78f0943 Initial steps to support column details in dbginfo ##bin 2023-03-28 06:58:15 +02:00
pancake
1e0243be4b Optimize dwarf parser reducing getsection for strp ##bin
* Down loading times from 20 minutes to 20s
2023-03-28 06:58:15 +02:00
pancake
bcc7a40a4e
Remove global in the DWARF parser ##bin 2023-03-27 20:58:19 +02:00
Luc Tielen
80197aa2ac Support wcu command for new io cache ##io 2023-03-27 15:26:01 +02:00
Luc Tielen
bc96eae13c Implement wcf command for new io cache ##io 2023-03-27 15:26:01 +02:00
pancake
635c434337 Add rasm2 -N to mimmic the r2 -N flag ##shell 2023-03-27 15:21:13 +02:00
pancake
459e071510 Use r2 -NN from r2r and extend the env for rasm2/rabin2 ##shell 2023-03-27 15:21:13 +02:00
pancake
d7e70604ba
More ELF cleanups on the symbol allocation logic ##bin 2023-03-27 15:20:42 +02:00
pancake
8c73bc6d89 Use more R_LOG instead of eprintfs in some commands ##shell 2023-03-27 14:52:32 +02:00
pancake
195a40edc3 Add search.badpage to customize badpage scan ##search 2023-03-27 13:32:54 +02:00
pancake
dd08b5ccf3 Fix null deref in dte ##shell 2023-03-27 13:28:25 +02:00
pancake
c1663224fd Support big endian value search analysis (aav) ##anal
* Inspired by 2762beba68
2023-03-27 12:52:04 +02:00
tsunekoh
2d0a4eab55 Make main function detection for 64bit PE Arm64 2023-03-25 18:14:20 +01:00
pancake
73795bd161
Minor cleanup in the ELF parser ##bin 2023-03-24 17:00:04 +01:00
Luc Tielen
22d8cbf482 Fix segmentation fault when listing cache entries before init ##io 2023-03-24 13:39:47 +01:00
Luc Tielen
7378b2e543 Fix usage of cache in pde command ##io 2023-03-23 21:03:51 +01:00
Luc Tielen
92727d8008 Prevent multiple initializations of cache ##io 2023-03-23 21:03:51 +01:00
Luc Tielen
19792b9058 Fix cloning of cache ##io 2023-03-23 21:03:51 +01:00
Luc Tielen
0560990e10 Retain order of writes to cache during clone ##io 2023-03-23 21:03:51 +01:00