背景:在进行汇编代码识别,即识别某段汇编代码所属的架构。看到llvm相关资料,通过clang命令可以将代码转换为bitcode (架构无关的伪汇编代码),然后通过llc命令可以将bitcode转换为指定架构的汇编,如果原始代码中含有嵌入式汇编,则最终通过llc转换时,如果嵌入式汇编和llc指定的架构不一致,则导致llc在转换时报错。
相关的命令介绍参考如下三个链接。
https://blog.csdn.net/qq_36287943/article/details/109626082
LLVM - 学习笔记一
https://blog.csdn.net/qq_27885505/article/details/80366525 LLVM中,使用LLC生成可视化SelectionDAG
http://manpages.ubuntu.com/manpages/precise/man1/llc-2.8.1.html llc - LLVM static compiler
以下这篇是大神的文章,通过二进制转换,直接将arm上的可执行文件转换为GPU可以运行的文件。
https://blog.trailofbits.com/2020/10/22/lets-build-a-high-performance-fuzzer-with-gpus/