avast / avast/retdec

bin2llvmir: produce self-contained LLVM IR

Open
#54 2 comments 0 reactions 0 assignees View on GitHub
C-bin2llvmir Q-discussion
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

This meta issue intends to track the development of bin2llvmir, with the goal of producing self-contained LLVM IR, which may be consumed by other tools, such as symbolic execution engines (e.g. klee), other binary analysis tools, etc.

Discussions on how best to do this may be contained here, and specific issues related to the binary to LLVM IR translation may be referenced from here (e.g. the contents of wide-strings being lost in .ll representation, but present in .bc representation: #38.)

The end-goal may be to reach a functionality similar to that of mcsema, which produces recompilable LLVM IR. However, this is considered difficult, and not the specific aim of RetDec (which seeks to produce readable LLVM IR and HLL), so if this should be the end goal is still up for discussion. It could be enough to produce self-contained LLVM IR that may be fed to symbolic execution engines.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the bin2llvmir work and the referenced issue #38 about wide strings being lost in .ll but retained in .bc. Clarify whether the goal is self-contained IR for symbolic execution or recompilable IR like mcsema, then define a concrete scope and acceptance criteria for the related translation issues.

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
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.