Hello Fredi,
This is my experience with a publicly available tool called McSema
(https://github.com/trailofbits/mcsema) which can convert x86 machine
code to functional LLVM IR.McSema support translation of x86 machine
code, including integer, floating point, and SSE instructions.
* Pluses of McSema
o Well documented
o Fully functional LLVM IR, i.e. the recovered LLVM IR can be
re-written to binary and executed.
o Pluggable control flow graph recovery phase: The tool has 2
independent phases: In the first phase, it extracts control flow
graph (cfg) information from the binary (using a tool
bin_descend). Then it will write the recovered cfg into a Google
Protocol Buffer serialized file. There is also an IDAPython
script to recover cfg from within IDA Pro (which is a commercial
solution ). In that sense, we can plug-in any solution to
recover cfg. In the second phase McSema converts this cfg into
LLVM IR.
* Minuses of LLVM IR recovered from Mcsema:
o One of the downside of this recovered LLVM IR is that the
variable (scalar/aggregate) and type information is not
recovered in that LLVM IR. In our group, we are actively working
on recovering the variable and type information.
Thanks and Regards,
Sandeep Dasgupta
PhD Student, University of Illinois Urbana Champaign
> Date: Sat, 13 Aug 2016 15:57:14 +0200
> From: fee via llvm-dev <llvm-dev at lists.llvm.org
> <mailto:llvm-dev at lists.llvm.org>>
> To: llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> Subject: [llvm-dev] Binary to LLVM IR lifter?
> Message-ID: <342a05bd-1375-6712-931b-d5afb3736e1b at web.de
> <mailto:342a05bd-1375-6712-931b-d5afb3736e1b at web.de>>
> Content-Type: text/plain; charset=utf-8
>
> Hi all,
>
> I am looking for binary lifter/translater that are able to convert
> architecture specific code like x86, x86_64, ARM etc. to LLVM IR.
>
> Do you know any working tools that can do something like this?
>
> Regards,
>
> Fredi
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20160814/8b0d7a48/attachment.html>