O-llvm是基于llvm进行编写的一个开源项目(https://github.com/obfuscator-llvm/obfuscator),它的作用是对前端语言生成的中间代码进行混淆,目前在市场上,一些加固厂商(比如360加固宝、梆梆加固)会使用改进的O-llvm对它们so文件中的一些关键函数采用O-llvm混淆,增加逆向的难度。因此,掌握O-llvm的实现过程,是很有必要...
本次源码分析的版本为Obfuscator-llvm-3.6.1,目前O-llvm包含有三个pass,分别是BogusControlFlow、Flattening 和 Instruction Substitution。它们是O-llvm实现混淆功能的核心,具体实现位于llvm-3.6.1/lib/Transforms/Obfuscation/目录下。下面就对这三个pass进行详细的分析。 2. Pass1:BogusControlFlow BogusControlFlow的...
本次源码分析的版本为Obfuscator-llvm-3.6.1,目前O-llvm包含有三个pass,分别是BogusControlFlow、Flattening 和 Instruction Substitution。它们是O-llvm实现混淆功能的核心,具体实现位于llvm-3.6.1/lib/Transforms/Obfuscation/目录下。下面就对这三个pass进行详细的分析。 2. Pass1:BogusControlFlow BogusControlFlow的...
目前最新版的是4.0的,下载地址是 https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0,也可以用 git 下载。 安装cmake OSX 下没有 cmake,需要安装,不然是不能编译 obfuscator-llvm 的。下载地址是:http://www.cmake.org/download,我下的版本是3.4.3。下载完成之后,进入到解压之后目录下,输入以下命...
下面是 Windows 10 系统中搭建 obfuscator llvm 6.0 步骤,适配的是 Android NDK 17.2.4988734。 大致步骤是先准备环境,下载源码,编译源码,集成到 Android NDK 中,最后在项目中使用。 最后在 Mac10.15.5 系统中也搭建成功了。 准备环境 确保gcc g++ 环境 由于是在windows上安装的(系统是Windows 10),因为没有gcc...
在逆向分析中,Obfuscator-llvm是一个备受关注的工具,它通过混淆前端语言生成的中间代码来增强SO文件的安全性。本文主要讲解了Obfuscator-llvm的三个核心pass——BogusControlFlow、Flattening和Instruction Substitution,它们在O-llvm-3.6.1版本中的实现。BogusControlFlow通过添加虚假控制流和垃圾指令来混淆函数...
Ubuntu 16.04 LTS是一种Linux操作系统,它是Ubuntu操作系统的一个长期支持版本。编译obfuscator-llvm是指将obfuscator-llvm项目的源代码转换为可执行文件的过程。 obfuscator-llvm是一个基于LLVM的源代码混淆器,它可以通过对源代码进行变换和重组来增加代码的复杂性,从而增加逆向工程的难度。它可以用于保护软件的知识产权和...
obfuscator-llvm 是一个开源的代码混淆编译器,能够使编译出来的文件添加垃圾代码和各种跳转流程,给逆向分析者增加难度。 二、编译 (1) 下载 目前最新版的是4.0的,下载地址是: https://github.com/obfuscator-llvm/obfuscator/tree/llvm-4.0,也可以用 git 下载。 (2) 安装 cmake OSX 下没有 cmake,需要安装,不...
1.2 如果1.1报GitHub 443端口错误,可以通过https://github.com/heroims/obfuscator/archive/refs/heads/llvm-8.0.zip下载。 2.编译 2.1 新建build目录(mkdir build) 2.2 进入build目录(cd build) 2.3 cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_INCLUDE_TESTS=OFF ../obfuscat...
Building obfuscator-llvm with VS 2019 as default generator #159 openedMar 30, 2021bywanitaqing 1 Makefile:171 Error 2 when using make -j7 #157 openedNov 3, 2020byxaperret 8 about dylib #156 openedOct 28, 2020bysongguoguo321 llvm-9.0在Xcode12上出现错误 ...