Android動態逆向分析工具ZjDroid--脫殼神器,androidzjdroid--
項目地址:https://github.com/BaiduSecurityLabs/ZjDroid
前提條件:
1、Root手機一部
2、需要通過Xposed installer( http://dl.xposed.info/latest.apk)安裝Xposed Framework;
一、ZjDroid工具介紹
ZjDroid是基於Xposed Framewrok的動態逆向分析模組,逆向分析者可以通過ZjDroid完成以下工作:
1、DEX檔案的記憶體dump
2、基於Dalvik關鍵指標的記憶體BackSmali,有效破解加固應用
3、敏感API的動態監控
4、指定記憶體地區資料dump
5、擷取應用載入DEX資訊。
6、擷取指定DEX檔案載入類資訊。
7、dump Dalvik java堆資訊。
8、在目標進程動態運行lua指令碼。
二、ZjDroid相關命令
1、擷取APK當前載入DEX檔案資訊:
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dexinfo"}'
2、擷取指定DEX檔案包含可載入類名:
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_class","dexpath":"*****"}'
4、根據Dalvik相關記憶體指標動態反編譯指定DEX,並以檔案形式儲存。
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"backsmali","dexpath":"*****"}'
該方式可以脫殼目前大部分流行的加固防護。(由於手機效能問題,運行較忙)
例外情況:
由於ApkProtect特定防修改檢測,需要做如下修改即可解固該保護:
(1)在裝置上建立特定目錄(如/data/local)並 chmod 為777
(2)複製zjdroid.apk到該目錄,並修改檔案名稱為zjdroid.jar
(3) 修改/data/data/de.robv.android.xposed.installer/conf/modules.list 模組代碼檔案修改為"zjdroid.jar"
從啟裝置即可。
5、Dump指定DEX記憶體中的資料並儲存到檔案(資料為odex格式,可在pc上反編譯)。
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_dex","dexpath":"*****"}'
6、Dump指定記憶體空間地區資料到檔案
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_mem","start":1234567,"length":123}'
7、Dump Dalvik堆棧資訊到檔案,檔案可以通過java heap分析工具分析處理。
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"dump_heap"}'
8、運行時動態調用Lua指令碼
該功能可以通過Lua指令碼動態調用java代碼。
使用情境:
可以動態調用解密函數,完成解密。
可以動態觸發特定邏輯。
adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"invoke","filepath":"****"}'
luajava相關使用方法:
http://www.keplerproject.org/luajava/
8、敏感API調用監控
三、相關命令執行結果查看:
1、命令執行結果:
adb shell logcat -s zjdroid-shell-{package name}
2、敏感API調用監控輸出結果:
adb shell logcat -s zjdroid-apimonitor-{package name}
以下那些工具不是脫殼破解(逆向)常用的? A peid B od C ImportREC D LordPE E C32Asm F HDSI G PDF
我在學習 ,希望有好友。協助