文章目录
前言
LLVM IR 有三种表示格式,第一种是 bitcode 这样的存储格式,以 .bc 做后缀,第二种是可读的以 .ll,第三种是用于开发时操作 LLVM IR 的内存格式
- Confusing static libraries with Bitcode Sectname
编译器混淆是基于中间代码(bitcode)进行的。
编译生成一个带bitcode的静态库,我们就可以提取其中的bitcode进行混淆。
- 原理
在编译器处理分析生成代码的时候,来增加一些无用的代码、拆分代码块、使代码扁平化,进而提升静态分析的难度。
I 、 混淆带有bitcode sectname 静态库的步骤
sectname __bitcode
Section
sectname __bitcode
segname __LLVM
addr 0x0000000000000240
size 0x0000000000001a30
offset