本次源码分析的版本为Obfuscator-llvm-3.6.1,目前O-llvm包含有三个pass,分别是BogusControlFlow、Flattening 和 Instruction Substitution。它们是O-llvm实现混淆功能的核心,具体实现位于llvm-3.6.1/lib/Transforms/Obfuscation/目录下。下面就对这三个pass进行详细的分析。2. Pass1:BogusControlFlowBogusControlFlow的功能...
O-llvm是基于llvm进行编写的一个开源项目(https://github.com/obfuscator-llvm/obfuscator),它的作用是对前端语言生成的中间代码进行混淆,目前在市场上,一些加固厂商(比如360加固宝、梆梆加固)会使用改进的O-llvm对它们so文件中的一些关键函数采用O-llvm混淆,增加逆向的难度。因此,掌握O-llvm的实现过程,是很有必要...
O-llvm是基于llvm进行编写的一个开源项目(https://github.com/obfuscator-llvm/obfuscator),它的作用是对前端语言生成的中间代码进行混淆,目前在市场上,一些加固厂商(比如360加固宝、梆梆加固)会使用改进的O-llvm对它们so文件中的一些关键函数采用O-llvm混淆,增加逆向的难度。因此,掌握O-llvm的实现过程,是很有必要...
是std::string_::形式的函数,改了函数的名字,这是OLLVM的另一种加密函数,在.init_array段里面: OLLVM字符串使用前混淆:运行时解密 Ctrl+S打开.init_array: 查看sub_6CEC函数: 都赋值为0,未解密。 接下来的两个函数,都不是解密函数。 do { byte_3E1BA[v5]=byte_22E80[v5 +280 +-28...
在逆向分析中,Obfuscator-llvm是一个备受关注的工具,它通过混淆前端语言生成的中间代码来增强SO文件的安全性。本文主要讲解了Obfuscator-llvm的三个核心pass——BogusControlFlow、Flattening和Instruction Substitution,它们在O-llvm-3.6.1版本中的实现。BogusControlFlow通过添加虚假控制流和垃圾指令来混淆函数...
虚假控制流程 -mllvm -bcf_prob=40 模糊概率百分之40 -mllvm -bcf_loop=3#LOCAL_CFLAGS := -mllvm -bcf -mllvm -boguscf-prob=100 -mllvm -boguscf-loop=1 -mllvm -sub -mllvm -fla -mllvm -perFLA=100#-mllvm -fla -> -mllvm -split -mllvm -split_num=3 如果激活了传递,则在每个基本...
开源项目Obfuscator-LLVM是一个带有混淆功能的编译器,是在编译阶段做混淆。 我们需要下载并编译项目;制作xcode编译器插件;把插件中编译器的执行文件指向编译好的Obfuscator-LLVM的bin目录下的可执行文件Clang;重启Xcode后,修改编译器为这个新的编译器。 具体流程可以参考一下两个文章: ...
混淆方法一: InstructionsSubstitution [html] view plain copy -mllvm -sub: activate instructions substitution -mllvm -funcSUB="func1,func2,func3": if instructions substitution is activated, apply it only on functions func1, func2 and func3 -mllvm -perSUB=20: if instructions ...
obfuscator-llvm 是一个开源的代码混淆编译器,能够使编译出来的文件添加垃圾代码和各种跳转流程,给逆向分析者增加难度。 二、编译 (1) 下载 目前最新版的是4.0的,下载地址是https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0,也可以用 git 下载。
(1)LLVM-Obfuscator 是瑞士西北应用科技大学安全实验室针对LLVM编译组件开发的代码混淆工具,该工具完全开源,目的是为了增加逆向工程的难度,保证代码的安全性。(2)Obfuscator-llvm最新版本集成了LLVM-3.4编译器,并且兼容LLVM支持的所有语言(C,C++, Objective-C, Ada and Fortran)和平台(x86, x86-...