avast / avast/retdec

Support type recovery and indirect call lifting

Open
#1,180 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

I was trying to lift a c file that has a structure and indirect call. For example,

`typedef void(*FuncPtr)(int)

typedef struct {
int a;
FunctionPtr ptr;
} Container;

void execute(Container container) {
container.ptr(10);
}`

However, this structure is not recovered by retdec, it also does not recognize the indirect call made.

Can we augment retdec with this type of information and add some support for indirect call recognition?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing RetDec's existing type-recovery and indirect-call lifting entry points, then trace how the supplied C structure and function-pointer example are represented. Done means the example's structure type is recovered and its indirect call is recognized during lifting, with tests covering both behaviors.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.