基於Frida的脫殼工具


參考dstmath的frida-unpack https://github.com/dstmath/frida-unpack
xiaokanghub的Frida-Android-unpack https://github.com/xiaokanghub/Frida-Android-unpack
對腳本功能做了優化,適配了更多平台,加強了對於各安卓版本的通用性
目前測試過Android4.4(貌似frida對Android4.4兼容並不好) Android5.1 Android6.0 Android7.1

一、frida環境搭建

前面文檔有寫過

二、原理說明

利用frida hook libart.so中的OpenMemory或OpenCommon(Android N以后)方法,拿到內存中dex的地址,計算出dex文件的大小,從內存中將dex導出。

三、腳本用法

在手機上啟動frida server端 執行 frida -U -f com.xxx.xxx -l dumpDex.js --no-pause 脫殼后的dex保存在/data/data/應用包名/目錄下

四、適用環境

普通加固可以脫殼,對於類抽取等加固脫出的只是個空殼,需要做指令Dump以及Patch到脫出的Dex文件中

五、導出DEX文件


dex保存在/data/data/應用包名/目錄下
導出dex文件

C:\Users\Administrator>adb shell
shell@shamu:/ $ su
root@shamu:/ # cd /data/data/
              在data/data/目錄下   # 包名
root@shamu:/ # cd /data/data/com.wanda.kuaiyihua/
       在data/data/目錄下   # 包名
root@shamu:/data/data/com.wanda.kuaiyihua # ls
# 創建文件wanda
root@shamu:/data/data/com.wanda.kuaiyihua # mkdir /sdcard/Download/wanda
# 移動dex 到 wanda 目錄下
root@shamu:/data/data/com.wanda.kuaiyihua # mv *.dex /sdcard/Download/wanda

# 從wada文件中導出dex 到 本地目錄D:\wada 下
C:\Users\Administrator>adb pull /sdcard/Download/wanda D:\wada

adb查看app包名

adb shell dumpsys window w |findstr \/ |findstr name=

六、參考鏈接

https://www.frida.re/docs/home/

https://github.com/dstmath/frida-unpack

https://github.com/xiaokanghub/Frida-Android-unpack


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM