【Android逆向】制作Fart脱壳机,完成对NCSearch的脱壳操作
1. 我的手机是Pixel 1 ,下载fart对应的镜像
镜像位置具体参考大佬博客 https://www.anquanke.com/post/id/201896
2 执行 adb reboot bootloader
——重启手机到fastboot模式, 直接重启手机到fastboot模式,不用关机后再按组合键
3 执行 sh flash-all.sh
, 发现报错
/usr/lib/android-sdk/platform-tools/mke2fs failed with status 1
fastboot: error: Cannot generate image for userdata
参考博客 : https://blog.csdn.net/cheriyou_/article/details/109722008 的内容解决
1.打开终端执行which fastboot (eg: /usr/bin/fastboot)
2.打开fastboot所在目录 (cd /usr/bin)
3.检查目录下是否存在make_f2fs文件、mke2fs文件、lib64文件夹(文件夹下含libc++.so文件)
4.不存在从platform-tools中拷贝过去 , platform-tools的下载网址: https://developer.android.com/studio/releases/platform-tools
sudo cp make_f2fs /usr/bin
sudo cp mke2fs /usr/bin
sudo cp -r lib64 /usr/bin
5. 赋予权限
sudo chmod 777 make_f2fs
sudo chmod 777 mke2fs
sudo chmod -R 777 lib64
4. 手机刷入后正常开机,安装好apk,赋予apk写sdcard权限
5. 前往 sdcard/fart 目录寻找 目标apk包名目录,找到dump下来的dex文件和主动调用产生的.bin文件,bin就是函数方法内容(smali)
6. 有时还是会哟与一些nop方法,需要我们去手动填充,需要让他们和dex文件合并起来
这里使用 https://github.com/luoyesiqiu/DexRepair
来进行填充
举例:
java -jar ../../DexRepair/output/DexRepair.jar 8732432_dexfile_execute.dex 8732432_ins_4095.bin
会生成: 8732432_dexfile_execute_repair.dex
再次打开jadx ,发现之前的空函数被填充完毕