Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android動態逆向分析工具ZjDroid--脫殼神器

Android動態逆向分析工具ZjDroid--脫殼神器

編輯:關於Android編程

 

前提條件:

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}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved