天天看點

frida脫二代數字殼全流程

閑談

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,讓你在逆向工作中效率成倍提升!

繼續閱讀