理学学士学位论文的工作相对简单,但其他线索似乎很少。我可能希望这位研究员的主管在这方面做进一步的研究,但似乎他的重点更多地放在了编译器设计领域。
是否有研究项目,商业原型,甚至在LLVM反编译领域进行了各种积极的研究吗?
#1 楼
反编译非常容易。长期以来,LLVM随CBackend一起提供,该CBackend可以将LLVM转换为C。 。因此,您可能只需要使用普通的LLVM工具(opt,llc)来“反编译” IR。我发现LLVM IR本身就很容易阅读,但是我很奇怪。但是,就像将C编译为汇编程序一样,某些信息会丢失或破坏。结构字段名称消失了,永远被索引取代。虽然它们的类型仍然存在。从概念上讲,控制流仍然存在,代码和数据没有混淆,但是可以删除功能,因为它们已失效或内联。我相信枚举值也将被删除。保留要起作用的参数信息以及全局变量的类型。
实际上,有一篇不错的文章,LLVM撰稿人以您建议的方式概述了使用位码格式的陷阱和问题。似乎有很多人听了他的话,所以我不确定我们是否需要超越目前了解LLVM位码的工具...
评论
PNaCl现在使用LLVM(的缩减子集)作为其格式。因此,这不仅是编译器IR。
–锑
2013年6月11日14:42