avast / avast/retdec

Implement "Meaningful Variables Names for Decompiled Code A Machine Translation Approach" in retdec

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

Description

See http://www.contrib.andrew.cmu.edu/~apjaffe/smt/decompilation-renaming-2.pdf

Quote from @apjaffe's abstract:

> Decompiled code lacks meaningful variable names. We used statistical machine translation to suggest variable names that are natural given the context. This technique has previously been successfully applied to obfuscated JavaScript code, but decompiled C code poses unique challenges in constructing an aligned corpus and selecting the best translation from among several candidates.

In @apjaffe's paper, they use Hex-Rays Decompiler to generate training dataset and raw decompiled C code, with some effort the solution could be ported to RetDec as well.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the linked paper and reviewing RetDec’s existing decompilation and variable-naming architecture, then compare it with the Hex-Rays training-data approach described there. Done means a RetDec-integrated approach can suggest meaningful variable names for decompiled C code, with its scope and evaluation criteria established.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, cpp
Domain
compilers, machine-learning, 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.