前言
要想通过clang 加载pass,就不能采用这种动态库方式(add_llvm_loadable_module),而是要编译成静态库(add_llvm_library)并加入passManager的管理机制定义的clang 传入的参数去调用pass
`
I、用带混淆功能的clang进行编译工程
1.1 通过clang 加载pass 编辑混淆代码
- 编辑lib/Transforms/Obfuscation/CMakeLists.txt 将add_llvm_loadable_module 修改为add_llvm_library
- 复制lib/Transforms/Obfuscation/LLVMBuild.txt到对应的位置
- 在lib/Transforms/IPO/LLVMBuild.txt 的required_libraries 增加Obfuscation
required_libraries = Analysis BitWriter Core InstCombine IRReader Linker Object ProfileData Scalar Support TransformUtils Vectorize