美文网首页
OLLVM代码混淆移植与使用(续)

OLLVM代码混淆移植与使用(续)

作者: heroims | 来源:发表于2021-11-26 01:47 被阅读0次

现状

随着时间时间推移,类似库都基本不维护了,毕竟LLVM新版本改动多还好说,再多只要看看关键位置就大差不差知道怎么改怎么兼容,最难的就是编译,每次编译调试不知不觉没干啥就能耗人一天,另外就是以前的人现在都不知道还在不在业内,回归正题,其实修改的地方并不多,下面我就整理了一下关键位置,主要就是类型和调用顺序变了一下,了解以后去修改类似的项目也是手到擒来。

关键修改

9.0以后的修改

这里类型写法更加标准一步一步转

image.png
这里是9以后不在调用这个方法了,导致fla不生效,也可以在Flattening.cpp里面修改添加
image.png

10.0以后的修改

首先Obfuscation/CMakeLists.txtadd_llvm_libraryadd_llvm_component_library

这里是LoadInst初始化多加了个类型参数,类似地方全改一遍

image.png
image.png
这里传入类型修改一下
image.png
再然后CryptoUtils.h里有一些宏定义是非常短的名称代表方法,这里再全局里容易有歧义,可以批量移到CryptoUtils.cpp里,因为只有这个类再用,其他地方也没有用这些短名称的宏方法
image.png
其他地方和原来一样不变。

11.0以后的修改

这里开始严格区分一元运算符和二元运算符了


image.png
image.png

XCode12 以后

首先编译要多加几个项目,根据自己需要可以多填几个,LLVM-10以后llvm目录向内放了一层

cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_CREATE_XCODE_TOOLCHAIN=ON -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" ../obfuscator/llvm
make -j7
sudo make install-xcode-toolchain
mv /usr/local/Toolchains  /Library/Developer/

然后在Build Settings里找到C++ Language DialectC++ Standard Library使用默认是为了直接走编译链构建的版本,如果你还加了其他的也需要注意一下别的确保都走你编译的版本

build3.png

Android Studio4.x以后

NDK都改为了默认CMake项目,直接复制Android/sdk/ndk/xx.x.xxxxxx文件夹修改一下名称,替换bin和lib64

在build.gradle里添加个人修改的版本

android {
    ndkVersion "major.minor.build" // e.g.,  ndkVersion "21.3.6528147"
}
WX20211228-021611@2x.png

相关文章

  • OLLVM代码混淆移植与使用(续)

    现状 随着时间时间推移,类似库都基本不维护了,毕竟LLVM新版本改动多还好说,再多只要看看关键位置就大差不差知道怎...

  • OLLVM代码混淆移植与使用

    简介 OLLVM(Obfuscator-LLVM)是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个项目...

  • OLLVM代码混淆移植与使用(再续)

    关键修改 Legacy PM模式不生效 现在由于默认是NEW PM所以经常有人邮件我移植很完美编译也成功,就是没效...

  • OLLVM 快速学习

    近来,ollvm在国内移动安全,尤其是安全加固上的使用越来越广泛,ollvm的混淆和反混淆也被视为比较高等的知识之...

  • ollvm编译中遇到的问题

    ollvm的作用是对c/c++代码进行混淆。本文主要记录ollvm的编译步骤以及遇到的编译问题的解决。 根据该项目...

  • Android NDK混淆

    项目原因研究Android的So库代码混淆,增加IDA工具查看的复杂度。简单接触了ollvm 混淆组件。网上查看了...

  • 跟着铁头干混淆2 ubuntu20.04编译ollvm

    跟着铁头干混淆2 ubuntu20.04编译ollvm 写这篇文章之前,我安装了一波ollvm环境,中间遇到了很多...

  • APP常用的安全技巧

    代码中使用混淆,不要使用默认AB混淆,可以使用空白混淆 混淆配置中去除:-keepattributes Sourc...

  • 混淆工具插件-OLLVM

    需要用到的工具cmake 下载好软件,用命令执行.https://cmake.org/download/[htt...

  • 缩减apk的体积

    1.使用Progruard Proguard是Android很早就使用的代码混淆工具,除了用于混淆代码提高安全性以...

网友评论

      本文标题:OLLVM代码混淆移植与使用(续)

      本文链接:https://www.haomeiwen.com/subject/lpktxrtx.html