
ollvm
文章平均质量分 81
芳芳超人爱学习
这个作者很懒,什么都没留下…
展开
-
编写自己的PASS
编写自己的PASS翻译 2023-02-24 13:06:40 · 252 阅读 · 0 评论 -
ollvm源码分析之控制流扁平化(3)
参考网站:ollvm源码分析参考网站:Obufuscator-llvm源码分析Pass之flattening实现功能是:增加switch-case语句,使其扁平化。1 命令命令解析-mllvm -fla激活控制流扁平化2 代码分析2.1 入口函数runOnFunctionFlattening继承了FunctionPass,因此它的入口函数即为runOnFunction。bool Flattening::runOnFunction(Function &F)翻译 2021-03-09 16:45:43 · 915 阅读 · 0 评论 -
ollvm源码分析之虚假控制流(2)
参考网站:Obfuscator-llvm源码分析参考网站:ollvm源码分析Pass之BogusControlFlow实现功能是:添加虚假控制流1 命令命令解析-mllvm -bcf激活虚假控制流-mllvm -bcf_loop若被激活,应用3次虚假控制流,默认为1-mllvm -bcf_prob=40若被激活,基本块的40%被混淆,默认为30%2 代码分析2.1 入口函数runOnFunction继承了FunctionPass,因此它的入口函数即翻译 2021-03-09 15:43:49 · 979 阅读 · 0 评论 -
ollvm源码分析之指令替换(1)
参考网站:Obfuscator-llvm源码分析ollvmollvm总体框架与llvm一致,如下图所示。其中IR(intermediate representation)是前端语言生成的中间代码表示,也是Pass操作的对象,它包括四部分:ModuleFunctionBasicBlockInstructionOLLVM有三个Pass以实现混淆,分别为Substitution、BogusControlFlow、flattening。它们位于Transforms/Obfuscation/目录翻译 2021-03-09 14:13:07 · 1202 阅读 · 0 评论