文章目录
前言
-
原理:在编译器处理分析生成代码的时候,来 增加一些无用的代码、拆分代码块、使代码扁平化,进而提升静态分析的难度。
-
Chris Lattner
Chris Lattner 生于 1978 年,2005年加入苹果,将苹果使用的 GCC 全面转为 LLVM。2010年开始主导开发 Swift 语言。
- Xcode的编译器前端
clang
clang是llvm的一部分;而llvm本身是开源的,基于llvm 进行代码混淆的工具中,本人最终喜欢的马甲包混淆方案是用Hikari,具体的用法看这里
Clang 是 LLVM 的子项目,是 C,C++ 和 Objective-C 编译器
其中的 clang static analyzer 主要是进行语法分析,语义分析和生成中间代码,当然这个过程会对代码进行检查,出错的和需要警告的会标注出来。
lld 是 Clang / LLVM 的内置链接器,clang