[LLVMdev] Decompilation capabilities

Wilfred L. Guerin wilfredguerin at gmail.com
Tue Jul 24 15:56:40 PDT 2007


As I am one who constantly relies on various decompilers (mine are now
obsolete) to confirm such things as inlined asm being correctly placed
and formed by the various compilers, and integrity confirmation of
binaries during security audit, I must ask the obvious question:

Can LLVM handle binary decompilation currently, and can it properly
read/parse all known machine code and asm compiler formats?

How will my various asm be loaded into the LLVM language, and how do I
confirm its integrity for other machine hosts?

Specificly, can asm plaintext be loaded, does it require creation of a
binary/objout to read, and are there yet specific input parsers for
the more advanced decompilers? (IDA is now most common)

Moreso, although LLVM handles generic operations, have all machine
based special codes been included yet? Has the optimization "table"
for advanced math functions been filled and explicitly verified?

We all know this is a simple loop of all function permutations from
all procs to all others, but even as you only commit to handling c/c++
currently there is concern that all options are covered.

I personally use a library of variable bit length value managers to
handle 8bit processors when needed, along with 256b on the 32b ia
frequently, so having number scope requirements and verified
resolutions optimized in the library to all host machines is critical.

To make it short...

Are all formats of asm from conventional decompilers read coherently
AND THEIR NATIVE OPTIMIZATIONS retained in your modeling data, and can
LLVM handle decompilation (including through simultion) currently with
or without external assistance?

Till soon,

-Wilfred
WilfredGuerin at gmail.com



More information about the llvm-dev mailing list