DynamoRIO / DynamoRIO/dynamorio

finish support for translating mangled instructions on AArch64

Open
#5,069 2 comments 0 reactions 0 assignees View on GitHub
OpSys-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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.