逆向的時候發現app加了殼, 比如愛加密加固,梆梆加固,或者360之類的 分析個半天,頭都禿了還是脫不了怎么辦?這個時候除了回收站, 還可以用youpk。
大家好,我是王鐵頭 一個乙方安全公司搬磚的菜雞
持續更新移動安全,iot安全,編譯原理相關原創視頻文章
視頻演示:https://space.bilibili.com/430241559
主流脫殼機對比
下面是我整理的一份常用的脫殼機的對比
實戰演示
梆梆脫殼實戰
這里在網上找了梆梆2020 加固過的樣本。
apk加殼前代碼
這里加殼前的代碼比較簡單 只有一個類MainActivity MainActivity 里只有簡單的add 和 sub方法。可以看到方法里面的代碼也比較簡單,返回相加相減的值。
梆梆加殼后
這里可以看到 加殼后 MainActivity 這個類已經看不到了 全是梆梆加固的相關類方法
這里 比較厲害的大佬可能直接硬鋼逆向了,分析so層,然后一步步dumpdex。
另一些跟我一樣懶得大佬,可以直接上工具了。用脫殼機,真香!!!!
好,上youpk.
youpk
youpk相關介紹:https://bbs.pediy.com/thread-259854.htm
youpk github : https://github.com/Youlor/Youpk
youpk 實戰脫殼梆梆樣本
-
第一步:往配置文件 /data/local/tmp/unpacker.config 寫入要脫殼的包名。
這里脫殼機會讀取文件內容執行脫殼這里樣本的包名是 com.example.test_shell
往配置文件寫入包名 如下圖
具體命令如下
sailfish:/ # cd /data/local/tmp
sailfish:/data/local/tmp #
sailfish:/data/local/tmp # echo 'com.example.test_shell' > unpacker.config
sailfish:/data/local/tmp #
sailfish:/data/local/tmp # cat unpacker.config
com.example.test_shell
2)第二步:啟動app
這里測試機已經安裝了測試app 點擊圖標啟動
3)第三步:進入脫出dex的目錄 一般為 /data/data/包名/unpacker/dex 獲取脫殼后的dex
這里目錄為
/data/data/com.example.test_shell/unpacker/dex
進入目錄 取出dex 如下圖 這里可以看到dex有兩個,脫殼機會把外殼dex和真正的dex都脫下來,后續打開一個一個辨別就可以了
小竅門:帶有base.apk這種dex的一般都是外殼dex
好的 成功脫殼。
此刻日志里也看到輸出了 unpack end的字樣
這里,有些加殼后的apk是沒有日志的,因為hook了打印日志的函數,所以看不到,不過不影響脫殼機脫殼
把拖出來的dex反編譯看下 坐下對比
這里可以看到完美dump出dex。
注意 這里只是dump出dex, 還原了三代殼的方法抽取
對於后續四代殼五代殼的 dexvmp sovmp並無相關處理。
愛加密脫殼實戰
這里愛加密殼找的是網上的一個例子 這里並未找到加固前的樣本
愛加密加固后樣本
愛加密加固后反編譯代碼:
運行后界面
按照上面辦法脫殼后的dex
這里相關步驟照搬一遍上面的 也就是寫入配置文件的包名改一下,基本沒啥不同
dump后的dex如下圖
這里可以看到 dex里面 之前被抽取的方法 已經成功回填
視頻演示:[https://space.bilibili.com/430241559]
相關代碼資料下載 關注公眾號 [移動安全王鐵頭] 回復關鍵字 shell
持續更新移動安全,iot安全,編譯原理相關原創視頻文章