使用LLVM生成纯机器代码
Generating pure machine code with LLVM
有没有一种方法可以通过LLVM从模块生成"纯"机器代码?
我的意思是,我有一个模块,只想获得x86操作码,而不需要任何MachO或Darwin对象头,只需要操作码(如果可能的话,将它们重新定位到某个基地址)。
我想您正在寻找objdump。使用objdump -d your_executable > dump_file
这样做的"标准"方法是构建一个可执行文件,然后根据需要提取原始位。类似于http://www.bravegnu.org/gnu-eprog/hello-arm.html。
另一种选择是使用LLVM JIT API;不过,我没有任何好的文档或示例代码来展示如何以这种方式使用LLVM。也许可以看看lldb中的ClangExpressionParser::PrepareForExecution是如何工作的(http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangExpressionParser.cpp?revision=161559&视图=标记)。
相关文章:
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 使用不同的链接器会产生不同的机器代码吗
- objdump 不显示机器代码,但显示 ASM
- 从.o目标文件中提取函数的原始机器代码?
- 我在区分源代码、目标代码、汇编代码和机器代码时感到困惑
- 如果C++编译为机器代码,为什么我们需要安装"运行时"?
- 是否可以执行存储在变量中的机器代码
- "Double or Nothing"赌博机器代码无法超过15组合
- 如何在 c++ 中将机器代码作为函数运行
- 可以从文件执行机器代码吗?
- 如何将x64机器代码写入虚拟内存并在C++中为Windows执行
- 如何将高级/低级编程代码直接转换为机器代码
- (如何)我可以使用LLVM机器代码分析器预测代码片段的运行时间
- 如何使用llvm生成机器代码
- 使用LLVM生成纯机器代码
- 注释会被翻译成机器代码吗?C++
- 如何使用c++执行附加在可执行文件末尾的机器代码
- 如何从机器代码中恢复C++尝试/抛出/捕获块长度和地址
- 是否有编译器可以编译为机器代码的 C C++ C# 编译器
- C++ - 极其奇怪的机器代码行为