avast / avast/retdec

Wrong result for x64-lea with different prefixes

Open
#854 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Subject: https://github.com/rfalke/decompiler-subjects/blob/master/from_holdec/x64_lea/x64_elf/subject.exe
Output:
```
int main(int argc, char ** argv) {
// 0x401040
printf("lea1 should=0x1a2a3a4a5a6a7b8b/1885383485026892683 is=0x%016lx\n", 0x5a6a7b8b);
printf("lea2 should=0x1a2a3a4a5a6a7b8b/1885383485026892683 is=0x%016lx\n", 0x5a6a7b8b);
printf("lea3 should=0x000000005b6b7b8b/ 1533770635 is=0x%016lx\n", 0x5b6b7b8b);
printf("lea4 should=0x000000005b6b7b8b/ 1533770635 is=0x%016lx\n", 0x5b6b7b8b);
printf("lea5 should=0x1b2b3b4b5b6b7b8b/1957723657864969099 is=0x%016lx\n", 0x5b6b7b8b);
printf("lea6 should=0x000000005b6b7b8b/ 1533770635 is=0x%016lx\n", 0x5b6b7b8b);
return 0;
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the linked x64_elf/subject.exe and the six expected-versus-actual printf results in the issue. Trace how the decompiler handles the x64 LEA cases with different prefixes, then verify that all six reported values match the expected 64-bit and 32-bit results.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Bug
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.