13

是否可以将汇编语言翻译为 LLVM IR,对其进行优化,然后将其重新编译为不同的架构?您将如何处理 IR 中堆栈上的“push”和“pop”?这是我发现的最简单的反对意见,但我敢肯定有很多这样的反对意见。

我正计划构建一个动态重新编译器,这似乎是一个很好的解决方案,因为 LLVM 会自动优化我的代码以适应新架构。LLVM 这一切都可能吗?

谢谢

4

3 回答 3

4

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

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

于 2011-11-27T19:25:51.230 回答
1

有可能的。

但是您需要开发一些 LLVM 代码库来实现将汇编语言转换为 LLVM IR 的过程。然后 LLVM 可以帮助您优化和生成新架构。

因此,关键是您需要开发可以将汇编语言翻译成 LLVM IR 的翻译器。我看到有人已经这样做了,你可以在网站上搜索。

于 2013-06-26T03:12:20.063 回答
0

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


Jonathan Salwan 在他的 repo Tigress_Protection中做到了这一点,他演示了如何使用符号执行和污点分析对虚拟机进行反混淆,使用他的工具Triton以获得程序的符号表示,并使用Arybo,他将符号表达式转换为 LLVM IR 按顺序应用一些优化。我想这是一种方法。

于 2020-12-15T09:47:38.760 回答