gpt4 book ai didi

assembly - 使用 LLVM 进行源到源编译

转载 作者:行者123 更新时间:2023-12-03 21:56:55 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




我需要将 x86 汇编源代码转换为 LLVM 人类可读的 .ll 文件(又名 LLVM 汇编语言)。我怎样才能做到这一点?如果没有直接的解决方案,是否有可能在 LLVM 基础架构中以尽可能少的努力实现一个?

我想,我正在寻找的解决方案应该是某种 有限责任公司将 .s 文件转换回 .ll 表示的对应项。

最佳答案

仅针对那些仍在寻求有关此主题的更多信息的人,我想分享有关我在网络上找到的一个正在进行的项目 (http://dslab.epfl.ch/proj/s2e) 的信息。该项目有两个组成部分:

  • x86-to-LLVM backend用于将 x86 机器代码动态转换为 LLVM IR
  • RevGen用于对 x86 二进制文件进行静态分析的工具,能够将内联 x86 程序集转换为 LLVM IR

  • 这里是 RevGen 原型(prototype):
    RevGen 将 x86 二进制文件作为输入,并分三步输出等效的 LLVM 模块。首先,RevGen 查找所有可执行代码块并将它们转换为 LLVM 翻译 block 。其次,当没有更多的翻译 block 需要覆盖时,RevGen 将它们转换为基本 block ,并以 LLVM 格式重建原始二进制文件的控制流图。第三,RevGen 解析外部函数调用以构建最终的 LLVM 模块。对于动态分析,最后一步将 LLVM 模块与允许执行 LLVM 模块的运行时库链接。

    关于assembly - 使用 LLVM 进行源到源编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014237/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com