繁体   English   中英

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

[英]Is it possible to translate an assembly language to LLVM IR, optimize it and then recompile it to a different architecture?

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

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

谢谢

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

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

有可能的。

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

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

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


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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM