ZjDroid下载、安装、使用教程

ZjDroid下载、安装、使用教程
ZjDroid下载、安装、使用教程

简介

ZjDroid是基于Xposed Framewrok的动态逆向分析模块。原本是百度安全实验室开发的一款脱壳神器。源代码原本是共享在github上的,现在不知道什么原因,已经取消了共享。

功能介绍

逆向分析者可以通过ZjDroid完成以下工作:

DEX文件的内存dump

基于Dalvik关键指针的内存BackSmali,有效破解加固

应用敏感API的动态监控

指定内存区域数据dump

获取应用加载DEX信息。

获取指定DEX文件加载类信息。

dump Dalvik java堆信息。

在目标进程动态运行lua脚本。

ZjDroid下载、安装

首先需要一部已经root的了安卓手机。

然后通过Xposed installer(https://www.360docs.net/doc/034901790.html,/latest.apk)安装Xposed Framework;安装的过程中,安装完Xposed后,可能会提醒你手机不支持,这个时候您需要安装一个补丁,这个补丁的下载地址是:https://www.360docs.net/doc/034901790.html,/download/123/

安装ZjDroid模块,由于GitHub上已经没有了,所以提供下载链接:

https://www.360docs.net/doc/034901790.html,/download/121/

安装完ZjDroid以后,在Xposed的模块选项上勾选ZjDroid即可使用。

使用

开启一个命令行,输入命令:adb shell logcat-szjdroid-shell-{packagename}

用于查看Zjdroid的命令行输出。

然后再开启一个命令行,用于给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_dexfile","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代码。

使用场景:

a.可以动态调用解密函数,完成解密。

b.可以动态触发特定逻辑。

adb shell am broadcast -a com.zjdroid.invoke --ei target pid --es cmd '{"action":"invoke","filepath":"****"}'

luajava相关使用方法:https://www.360docs.net/doc/034901790.html,/luajava/

9、敏感API调用监控

相关主题
相关文档
最新文档