反编译二进制到 LLVM IR
工具对比
copy from McSema
| McSema | dagger | llvm-mctoll | retdec | reopt | rev.ng | bin2llvm | fcd | RevGen | Fracture | libbeauty | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Actively maintained? | Yes | No | Yes | Yes | Yes | No | Maybe | Maybe | Maybe | No | Yes |
| Commercial support available? | Yes | No | No | No | Maybe | No | No | No | No | Maybe | No |
| LLVM versions | 3.5 - current | 5 | current | 3.9.1 | 3.8 | 3.8 | 3.2 | 4 | 3.9 | 3.4 | 6 |
| Builds with CI? | Yes | No | No | Yes | No | No | Yes | Maybe | Maybe | No | No |
| 32-bit architectures | x86 | x86 | ARM | x86, ARM, MIPS, PIC32, PowerPC | ARM, MIPS | S2E | S2E | S2E | ARM, x86 | ||
| 64-bit architectures | x86-64, AArch64 | x86-64, AArch64) | x86-64 | x86-64 | x86-64 | S2E | S2E | PowerPC | x86-64 | ||
| Control-flow recovery | IDA Pro, Binary Ninja, DynInst | Ad-hoc | Ad-hoc | Ad-hoc | Ad-hoc | Ad-hoc | Ad-hoc | Ad-hoc | McSema | Ad-hoc | Ad-hoc |
| File formats | ELF, PE | ELF, Mach-O | ELF, PE, Mach-O, COFF, AR, Intel HEX, Raw | ELF | ELF | ELF | ELF, PE | ELF, Mach-O (maybe) | ELF | ||
| Bitcode is executable? | Yes | Yes | Yes | Yes | Yes | Yes | No | No | CGC | No | No |
| C++ exceptions suport? | Yes | No | No | No | No | Indirectly | No | No | No | No | Maybe |
| Lifts stack variables? | Yes | No | Maybe | Yes | No | No | No | Yes | No | No | Maybe |
| Lifts global variables? | Yes | Maybe | Yes | Yes | No | Maybe | No | No | No | Yes | Maybe |
| Has a test suite? | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No |