忽然翻到之前的笔记, 一块备份上来吧
0x1 准备工作
0x2 配置环境
解压cmake : tar -zxvf [camke安装包]
卸载本机的旧版gcc, 安装5.5以上版本的gcc
1
2
3先卸载本机的旧版gcc:
sudo apt-get remove gcc
sudo apt-get remove gcc-xx(xx为版本号)设置软件源: launchpad , 找到自己想要的软件, 点进去就有命令设置源
最后再sudo apt-get gcc-6 g++-6 就开始安装了
把gcc环境变量指向gcc6
1
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
就可以用gcc -v查看是否安装成功啦
0x3 编译Armariris
clone项目
1
git clone https://github.com/GoSSIP-SJTU/Armariris
新建build文件夹, cd进去, 执行命令, 然后等待编译完成
1
cmake -DCMAKE_BUILD_TYPE:String=Release ../Armariris
0x4 替换NDK编译链
- 把之前编译好的build里的”bin”, “lib”文件夹拷贝覆盖到ndk包里的/toolchains/llvm/prebuilt/linux-[xxx]/里
0x5 使用ollvm编译链编译so
- 新建jni文件夹(名称一定要是jni), 新建三个文件
1 | 1) 你需要编译的.cpp文件 |
- cd至jni文件夹, 执行ndk包里的ndk_build
1 | ps: 你可能会遇到这个错误: clang++:error:unknown argument:'-nostdlib++' |
0x6 混淆效果
混淆前IDA流程视图:
混淆后IDA流程视图:
IDA伪代码视图:
0x7 最后
流水式的笔记, 可能会有纰漏和错误, 欢迎留言或加V指正