是否可以将汇编语言转换为LLVM IR,对其进行优化,然后将其重新编译为不同的架构?

时间:2011-11-27 19:13:39

标签: assembly llvm recompile

是否可以将汇编语言转换为LLVM IR,优化它然后将其重新编译为不同的架构?如何在IR中处理堆栈中的“推送”和“弹出”?这是我发现的最简单的反对意见,但我确信有这么多的反对意见。

我打算构建一个动态重新编译器,看起来这将是一个很好的解决方案,因为LLVM会自动优化我的新架构代码。 LLVM是否可以实现这一切?

由于

3 个答案:

答案 0 :(得分:4)

这是一个类似的问题:Recompile a x86 code with LLVM to some faster one x86

答案是LLVM不能直接执行,但可以作为工具的一部分使用。

答案 1 :(得分:1)

有可能。

但是您需要开发一些代码库LLVM来实现将汇编语言翻译为LLVM IR的过程。

然后LLVM可以帮助您优化和生成新架构。

所以,重点是你需要开发能够将汇编语言翻译成LLVM IR的翻译器。我见过某人已经这样做了,你可以在网站上搜索。

答案 2 :(得分:0)

您可以尝试创建要优化的程序的符号表示形式,然后使用Arybo之类的工具将符号表达式转换为LLVM IR。


Jonathan Salwan在其仓库Tigress_Protection中进行了此操作,他在其中演示了如何使用符号执行和使用工具Triton进行的污点分析来对虚拟机进行模糊处理,以便获得程序的符号表示以及{ {3}},他将符号表达式转换为LLVM IR以便进行一些优化。我想这是一种方法。