【发布时间】:2019-08-30 18:58:53
【问题描述】:
目标代码可以反汇编成汇编语言。有没有办法将目标代码或可执行文件转换为 LLVM IR?
【问题讨论】:
-
google://mcsema
标签: c++ assembly llvm llvm-ir object-code
目标代码可以反汇编成汇编语言。有没有办法将目标代码或可执行文件转换为 LLVM IR?
【问题讨论】:
标签: c++ assembly llvm llvm-ir object-code
我的意思是,是的,您可以将机器语言转换为 LLVM IR。 IR 是图灵完备的,这意味着它可以计算其他图灵完备系统可以计算的任何东西。在最坏的情况下,您可能拥有 x86 仿真器的 LLVM IR 表示,并且只需执行作为字符串给出的机器代码。
但是您的问题专门询问了将“返回”转换为 IR,因为 IR 结果类似于原始 IR。答案是,不,不是。机器语言代码将是各种优化过程的结果,无法确定优化之前代码的样子。 (箭头在评论中提到了 McSema,它尽了最大努力,但总的来说结果会与原始代码非常不同。)
【讨论】: