閑談
drizzleDumper隻能整體脫一代數字殼,原理是DEX整體脫殼,一代殼市面上較少見。
二代數字殼可能是分段式Dex,據說frida和Xposed能脫,Xposed的環境搭建條件苛刻,似乎要真機、root、Android低版本,不知道是不是真的,反正我是怕了,先Frida走一波。(frida是一款基于python + javascript 的hook架構,可運作在android、ios、linux、windows等各平台,主要使用動态二進制插樁技術。)
前期準備工作:
1.下載下傳脫殼腳本github項目:
https://github.com/smartdone/Frida-Scripts/tree/master/unpack
2.本地搭建Frida環境:
pip install frida
pip install frida-tools
3.下載下傳frida-server(注意确認模拟器/手機的架構是ARM還是x86,是32位還是64位):
https://github.com/frida/frida/releases
把frida-server檔案用push指令從電腦傳輸到手機或者模拟器任意目錄下,并賦予777權限(chmod 777)。
4.打開端口轉發:
adb forward tcp:27042 tcp:27042
5.打開兩個cmd視窗,一個先把伺服器端運作起來
./frida-server
脫殼時執行的工作:
1.ADB連接配接模拟器
adb connect 127.0.0.1:{模拟器端口号}
2.測試frida運作是否正常(frida-ps: 用于列出程序的一個指令行工具)
frida-ps -U
3.模拟器打開待脫殼app(如果是手機需要root)
4.執行脫殼腳本
frida -R -f {app包名} -l unpack.js (用app包名替換{app包名})
5.用pull指令導出/data/data/{app包名}/files/{數字}.dex(從記憶體中dump的dex會放到files目錄下面的十六進制數字命名的dex檔案中,emm.dex不是哈)
其他小TIP:
1.檢視模拟器和手機的架構的方法:
https://blog.csdn.net/jiguangcanhen/article/details/42120245
2.擷取App包名的指令:
adb shell dumpsys activity |find "mFocusedActivity"
3.想到再補充
參考文章:
https://www.jianshu.com/p/646032f34d57——window上搭建frida環境
https://blog.csdn.net/whklhhhh/article/details/81519219——【奈沙夜影】180802 安卓-脫殼相關
https://baijiahao.baidu.com/s?id=1608313750146067893&wfr=spider&for=pc——詳解Hook架構frida,讓你在逆向工作中效率成倍提升!