avast / avast/retdec

Should support overlapping instructions

Open
#809 0 comments 0 reactions 0 assignees View on GitHub
C-bin2llvmir enhancement P-output
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Background: https://reverseengineering.stackexchange.com/questions/1531/what-is-overlapping-instructions-obfuscation

Subject: https://github.com/rfalke/decompiler-subjects/blob/master/from_holdec/overlapping_instructions/ia32_elf/subject.exe

In this subject the method `add_one()` is the most basic case. Current output is

```
// Address range: 0x80492b5 - 0x80492c0
int32_t add_one(int32_t result) {
// 0x80492b5
return result;
}
```

but should be `return result + 1;`.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the decompilation of add_one() from the linked overlapping_instructions/ia32_elf/subject.exe subject. Compare the current output with the expected return result + 1, then verify that overlapping instructions are handled without regressing ordinary cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.