ZjDroid

ZjDroid

Android app dynamic reverse tool based on 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}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章