Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
目标代码可以反汇编成汇编语言。有没有办法将目标代码或可执行文件转换为 LLVM IR?
我的意思是,是的,您可以将机器语言转换为 LLVM IR。IR 是图灵完备的,这意味着它可以计算其他图灵完备系统可以计算的任何东西。在最坏的情况下,您可能拥有 x86 仿真器的 LLVM IR 表示,并且只需执行作为字符串给出的机器代码。
但是您的问题专门询问了将“返回”转换为 IR,因为 IR 结果类似于原始 IR。答案是,不,不是。机器语言代码将是各种优化过程的结果,无法确定优化之前代码的样子。(箭头在评论中提到了 McSema,它尽了最大的努力,但总的来说结果会与原始代码有很大的不同。)