可以将对象代码转换回LLVM IR吗?

问题描述 投票:0回答:1

对象代码可以反汇编为汇编语言。有没有办法将目标代码或可执行文件转换为LLVM IR?

c++ assembly llvm llvm-ir object-code
1个回答
2
投票

我的意思是,是的,您可以将机器语言转换为LLVM IR。 IR是Turing-complete,这意味着它可以计算其他图灵完备系统可以计算的任何东西。在最坏的情况下,您可以拥有x86仿真器的LLVM IR表示,并只执行以字符串形式给出的机器代码。

但是你的问题特别要求将“返回”转换为IR,因为IR结果与原始IR类似。答案是,不,不是真的。机器语言代码将是各种优化过程的结果,并且在优化之前无法确定代码的样子。 (arrow在评论中提到了McSema,它做得最好,但总的来说,结果与原始代码有很大不同。)

© www.soinside.com 2019 - 2024. All rights reserved.