Commit Graph

1203 Commits

Author SHA1 Message Date
pancake
de31667fc8 Add LC_AOT_METADATA parsing support for mach0 ##bin 2023-04-09 12:42:11 +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
c6a32fd1a0 Update tests 2023-04-05 18:50:09 +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
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
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
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
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
c1663224fd Support big endian value search analysis (aav) ##anal
* Inspired by 2762beba68
2023-03-27 12:52:04 +02:00
pancake
b601497c3a
Hide meaningless AnalOp fields in ao/aoj ##anal 2023-03-23 12:06:23 +01:00
pancake
9608c125ec Expose the value of arm's ADD in op.val ##arch 2023-03-23 10:46:56 +01:00
pancake
c654dc7a5c Implement wao recj for arm64 ##write 2023-03-23 10:19:07 +01:00
pancake
39b7822a2b Fix tests 2023-03-22 17:47:00 +01:00
pancake
e8ac805d4d
Fix memcpy bug in the new cache ##io 2023-03-22 03:59:36 +01:00
pancake
4e8b0986e2 ZeroPad addresses in iSq and iSSq ##bin 2023-03-20 09:04:26 +01:00
Yuvraj Saxena
9ad89fd980
Fix tb instruction for ARM assembler ##asm
Current code unconditionally drops last 2 bits without checking if those 2 bits are set or cleared,
if ignored these 2 bits are eventually lost and not encoded in machine instruction
and it's dangerous to assume destination supplied is valid to correct this I implemented a check.
Last 2 bits are discarded when final machine instruction is generated
and later in the decode phase this 14 bit immediate value (destination) is shifted left 2 bit positions,
and later sign extended to 64 bits that means we can actually encode a number with 16 bits but current code encodes only upto 14 bits. Thus, wasting 2 bits.
Also, Current code unconditionally parses last 5 bits from immediate 1, which is nothing but bit number to be tested in the register. Therefore, it must be within range 0-31 if 32 bit register is used, range must 0-63 if 64 bit register is used.
Also, in the case of 64 bit register only last 5 bits are encoded because it's later concatenated with MSB hence rendering a 6 bit number that can be used to denote bit positions between 0-63. To tackle this a check for this is implemented.
At last testcases are added to demonstrate these checks.
2023-03-19 13:08:25 +01:00
pancake
b340dea630 Fix some warnings on windows and unbreak few tests 2023-03-15 12:03:06 +01:00
pancake
6bbe2e22fa Use R_LOG instead of eprintf (Usage in libr/util) 2023-03-14 20:42:02 +01:00
pancake
83603ac9b8 Unbreak 7 fixed tests 2023-03-14 20:42:02 +01:00
pancake
1de7776d2f Add test for bin.cache on macho relocs 2023-03-14 10:36:58 +01:00
pancake
b8bd90585f Fix spaces in cr16 tests 2023-03-13 17:42:32 +01:00
pancake
90601b14f7 Improve the pseudo-decompilation output for !x86 and inlined gotos ##print 2023-03-13 17:27:56 +01:00
pancake
f4539cc9e1 Dont try to resolve strings on call destinations ##disasm 2023-03-13 17:26:46 +01:00
pancake
26aa0212a0
Initial implementation of the io-write-cache command ##io 2023-03-13 14:46:53 +01:00
Lazula
86b5d8e4ab
Correctly align r_core_cmd_help_match output in inexact mode ##shell 2023-03-11 07:32:54 +01:00
Lazula
57812e2471
Drastically reduce eUsage counter ##shell
* Get rid of some eprintf
* Use RCoreHelpMessage
* Missing comma in cmd_cmp.c and vmenus.c
* cmd.c * cmd_anal.c * cmd_cmp.c * cmd_debug.c * cmd_eval.c
* cmd_flag.c * cmd_help.c * cmd_debug.c 2 * fixes * cmd_info.c
* cmd_log.c * cmd_meta.c * cmd_mount.c * cmd_open.c * cmd_print.c
* cconfig.c * cmd.c * cmd_anal.c * cmd_search.c * cmd_seek.c
* cmd_write.c * core_a2f.c * core_sixref.c * vmenus.c * yank.c
* Please sys/lint.sh
2023-03-09 16:07:09 +01:00
pancake
396861400d Support function arguments without a name ##anal
* Default name is 'arg%d'
* Warnings moved to the right place
* Fix null assert related to this
2023-03-09 14:12:59 +01:00
pancake
be015171a3 Add some basic swift and objc function signatures ##types 2023-03-07 19:26:55 +01:00
pancake
9089b49b6d Magic depth starts at 0 now ##search 2023-03-07 17:47:43 +01:00
Yuvraj Saxena
046486862a
Add more conditional branch instructions for the arm64 assembler ##asm
* Add testcase and aliases for bhs conditional branch instruction for the arm64 assembler
* bcs and b.cs are aliases for bhs instruction
2023-03-05 18:06:59 +01:00
pancake
f6bc514e00 Test fixes and identify more slow tests 2023-03-05 08:56:33 +01:00
pancake
a9e46e9d37 Move slow test, fix mz regression and unref in regitem 2023-03-05 01:51:55 +01:00
pancake
f1a8261067
Add ?Tj and get rid of all the eprintf("Usage in cmd.egg ##shell 2023-03-03 22:09:04 +01:00
pancake
7874971313 Honor dir.source in test 2023-03-02 23:43:57 +01:00
pancake
cbdc372e4a Add CLLf command as an alias for 'list' and fix @@i ##dwarf 2023-03-03 00:03:38 +01:00
pancake
7c50a3587a Fix #21340 - fix list of callrefs in afij ##anal 2023-03-02 19:04:35 +01:00
pancake
3b74c121b6 Implement conditional branch instruction for the arm64 assembler ##asm 2023-03-02 17:11:07 +01:00
pancake
b87dfa4585 Run the pending jobs in the qjs repl and expose r2pipe module ##lang 2023-03-02 13:10:11 +01:00
pancake
952325637e Fix #21412 - Implement segment iterator ##shell 2023-03-02 12:19:57 +01:00
pancake
acadb6a3ee
Move the riscv.cs plugin ##arch 2023-03-01 21:54:58 +01:00
pancake
2b34da70fa Implement ESM module loader for the QJS runtime ##lang
* Supports files generated with frida-compile
* Use R_LOG for qjs error messages
2023-02-28 19:33:20 +01:00
pancake
100700549a Fix oobread in dwarf5 parser ##crash 2023-02-24 22:27:06 +01:00