Skip to content

🧲 采集器层(collecter 包)

com.android.reverse.collecter 是 ZjDroid 的核心数据采集层,承担 DEX 信息收集、内存 dump、Java 堆快照、native hook 检测和 Lua 脚本执行五大能力,是连接 hook 层与命令处理层的枢纽。

📋 包职责

collecter 包的职责可以概括为三个方向:

方向说明
脱壳采集Hook Dalvik 底层方法,捕获所有 DEX 的 mCookie,实现内存 DEX dump 与 backsmali
内存分析按地址 dump 任意内存段(MemDump)或导出 Java 堆快照(HeapDump)
扩展执行在目标进程内运行 Lua 脚本,检测 native hook,提供动态分析脚本化能力

ModuleContext 作为全局单例贯穿整个包,为其他采集器提供 ClassLoader、API 级别、包名等基础上下文。

🗂️ 类清单

类名简述文档
ModuleContext模块全局上下文单例,持有目标应用元信息,注册指令接收 Receiver查看
DexFileInfo单个 DEX 的值对象,封装路径、mCookie、ClassLoader查看
DexFileInfoCollecterDEX 采集核心,hook openDexFileNative 等,提供 dump/backsmali 接口查看
HeapDumpJava 堆快照工具,封装 Debug.dumpHprofData,输出 HPROF 文件查看
MemDump原始内存区域 dump,通过 JNI 读取任意虚拟地址段查看
LuaScriptInvoker在目标进程嵌入 Lua 运行时,执行字符串/文件脚本查看
NativeHookCollecter比对 PLT/GOT 快照,检测 native 层 hook 行为查看

🗺️ 在项目中的位置

com.android.reverse
├── mod/          ← Xposed 入口、广播接收
├── hook/         ← hook 框架适配层
├── collecter/    ← 本包:数据采集层 ★
├── request/      ← 命令处理层(CommandHandler)
├── smali/        ← backsmali 反编译实现
└── util/         ← 工具层(NativeFunction、RefInvoke、Logger…)

🔗 包内关系图

依赖核心

几乎所有采集器都依赖 NativeFunction——它是连接 Java 层与 libdvmnative.so 的 JNI 桥,提供 DEX dump、内存读取、syslink 快照等底层能力。

脱壳主链路

外部 adb 广播 → CommandBroadcastReceiverDumpDexCommandHandlerDexFileInfoCollecter.dumpDexFile()NativeFunction.dumpDexFileByCookie()libdvmnative.so → 原始 DEX 字节写入文件。

基于 MIT 协议发布 · 本文档仅用于安全研究与教学目的