DynamoRIO / DynamoRIO/dynamorio
finish support for translating mangled instructions on AArch64
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
There is a bunch of unsupported mangle instructions that is reported when running DR with `-loglevel 2 -stress_recreate_state` in the log file on AArch64, e.g.
```
unsupported mangle instr: cbz @0x0000fffd50705400[8byte] %x0
unsupported mangle instr: orr %xzr %x30 lsl $0x0000000000000000 -> %x2
unsupported mangle instr: tbnz @0x0000fffd50705d40[8byte] %x0 $0x1d
unsupported mangle instr: tbz @0x0000fffd507045d0[8byte] %x0 $0x02
```
The full command I ran was
```
drrun -verbose -debug -loglevel 2 -stress_recreate_state -- hello2
```
where `hello2` is just a hello world binary.
Contributor guide
Research direction
Start by reproducing the report with `drrun -verbose -debug -loglevel 2 -stress_recreate_state -- hello2` on AArch64 and inspect the log output. Trace the translation path for the listed `cbz`, `orr`, `tbnz`, and `tbz` instructions; done means these instructions no longer produce unsupported-mangle reports.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- devtools, reverse-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100