avast / avast/retdec

Variadic function decompilation

Open
#140 2 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

Analyze if it is somehow possible to correctly decompile something like this?

```c
#include
#include
#include

void print_error(const char *fmt, ...) {
va_list args;

va_start(args, fmt);
fprintf(stderr, "error: ");
vfprintf(stderr, fmt, args);
va_end(args);

exit(1);
}

int main(int argc, char *argv[]) {
print_error("argc = %d, argv[0] = %sn", argc, argv[0]);
return 0;
}
```

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue names no source files, tests, or implementation entry points; it only provides a C example using a variadic function. Start by reproducing the example in RetDec and tracing how its decompiler represents variadic arguments. Done would require a documented conclusion about whether this case can be decompiled correctly and what support would be needed.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.