【问题标题】:Is it possible to translate an assembly language to LLVM IR, optimize it and then recompile it to a different architecture?是否可以将汇编语言翻译为 LLVM IR,对其进行优化,然后将其重新编译为不同的架构?
【发布时间】:2011-11-27 19:13:39
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: assembly llvm recompile


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      有可能。

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

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

      【讨论】:

        【解决方案3】:

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


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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多