NDK加载 LLVM Pass 方案
2023-5-23
| 2023-8-8
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
Aug 8, 2023 11:36 AM
本文基于 ndk r25c (25.2.9519653)

获取ndk r25c

直接下载

使用sdkmanager安装

坑:archlinux 需要 sudo archlinux-java set java-8-openjdk

查看clang信息

内容:

下载未精简的clang

notion image
然后去Google的 prebuilt clang仓库找到 r450784d1 相关的分支并打开:
notion image
点开最新的一个commit,进入
然后点击tgz下载这一份clang
notion image
然后基于这一份clang直接编译llvm动态库插件就可以直接用ndk加载了
解压

编译使用pass实例

  1. 下载代码
  1. 修改 CMakeLists.txt,在project()后加上
这个时候cmake ..会报错
这个时候去注释掉clang/lib64/cmake/llvm/LLVMExports.cmake 下面这一段代码
notion image
然后
notion image
build.sh:
编译后:
notion image
差不多鸟~

当我们来到macOS上

由于Google编译macOS工具链的系统版本太低,加载so的时候会报错
解决办法:
使用下载的clang替换掉ndk里面的clang
找不到头文件是macOS的问题,修改 build.sh
后重新编译,成功混淆
notion image

参考

 
  • LLVM
  • 开发
  • ARM64 OLLVM反混淆之虚假控制流ChatGPT Plus 开通指南
    • Giscus
    目录