Win10 VisualStudio 2022编译ollvm 13.x

VisualStudio配置

1,正常配置C++桌面环境
2,在单个组件中选择用于Windows得C++ Cmake工具
在这里插入图片描述

下载OLLVM13.x

https://github.com/heroims/obfuscator/tree/llvm-13.x
解压后进入文件夹,命令行输入
cmake -G “Visual Studio 17 2022” -DLLVM_ENABLE_PROJECTS=“clang” -DCMAKE_BUILD_TYPE=Release -DLLVM_INCLUDE_TESTS=OFF -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF ./llvm

编译

在文件夹右键 使用VS 2022打开项目
找到llvm项目, 双击LLVM.sln ,打开项目直接编译即可
在这里插入图片描述
编译完成后 在Release/bin文件夹下就生成了clang.exe
将编译好的 clang、clang-format、clang++ 这三个文件复制到 AndroidStudio使用的NDK目录 …/toolchains/llvm/prebuilt/darwin-x86_64/bin文件夹下,存在同名文件需要替换掉。 (替换之前别忘了备份原文件哦)
需要注意对应的clang版本 需要找比较接近的ndk版本, clang 13.0.1 接近的ndk版本是 23.2.8568313 (clang 版本是12.0.9)
如果报错 找不到lib/clang
1、修改D:\androidSdk\ndk\23.2.8568313\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang 下 文件夹版本将12.0.9 修改为13.0.1
在这里插入图片描述
2、复制lib64 目录下的clang 到 lib 目录下。

混淆

添加混淆指令
. -mllvm -fla:控制流扁平化
. -mllvm -sub:指令替换
. -mllvm -bcf:虚假控制流程
. -mllvm -sobf: 字符串加密

把参数加入到 CMakeLists.txt 里面
#设置llvm release模式混淆编译

set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mllvm -sub -mllvm -sobf -mllvm -fla ")

set(CMAKE_CXX_FLAGS_RELEASE “${CMAKE_CXX_FLAGS_RELEASE} -mllvm -sub -mllvm -sobf -mllvm -fla”)

#设置llvm debug模式混淆编译

set(CMAKE_C_FLAGS_DEBUG “${CMAKE_C_FLAGS_DEBUG} -mllvm -sub -mllvm -sobf -mllvm -fla” )

set(CMAKE_CXX_FLAGS_DEBUG “${CMAKE_CXX_FLAGS_DEBUG} -mllvm -sub -mllvm -sobf -mllvm -fla” )

对指定函数混淆,放在指定函数前面
__attribute((annotate(“bcf”)))
__attribute((annotate(“fla”)))
__attribute((annotate(“sub”)))
__attribute((annotate(“split”)))
__attribute((annotate(“sobf”)))

效果

整体混淆效果:代码较少的情况下效果不是很明显。
在这里插入图片描述
单独对函数进行混淆,效果很明显。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Android逆向小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值