mcpField
D
DexSQL

DexSQL

本地服务
dexsql.lsposed.org开发工具2533 天前更新

关于 DexSQL

DexSQL 用 SQL 查询 Android APK 和 DEX 文件中的类、方法、字符串及调用引用,面向逆向分析人员和 AI Agent。它同时提供命令行和内置 MCP 服务,并在本地解析文件。

主要功能

  1. 01跨 APK 和 DEX 执行 SQL 查询
  2. 02检索类、方法、字符串和引用
  3. 03组合查询多个输入文件
  4. 04交互式查询与可复用脚本
  5. 05提取第三方许可证声明

适用场景

  1. 01查找引用特定字符串或 URL 的方法
  2. 02追踪直接及多跳调用者
  3. 03从 APK 检查相关 Smali
  4. 04对 DEX 文件重复执行分析查询

MCP 相关

内置 MCP 服务通过 stdio 将 AI 客户端连接到 DexSQL,并通过 MCP 资源提供模式和文档。APK 解析在本地进行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbdexsql.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

DexSQL

Featured on Made with REA

English | 简体中文

用于 Android 二进制文件的 SQL。

在 APK 和 DEX 文件中查询类、方法、字符串和调用引用。通过 MCP 将其连接到 AI Agent,也可以从命令行使用。

在线体验 · 文档 · 下载 · 安装技能 · 基准测试

为什么选择 DexSQL?

AI Agent 可以通过一条 SQL 查询,在多个 DEX 文件中组合签名、字符串和调用关系,并仅返回所需的结构化结果。查询可以生成、优化并保存到脚本中,以便重复使用。

DexSQL 可直接读取 DEX 并复用已加载的数据集,支持以低延迟和较小的内存占用重复查询。测量结果请参见基准测试。

内置的 MCP 服务可直接连接 Agent,无需 GUI。

flowchart LR
    A["AI client"] -->|stdio MCP| D["DexSQL"]
    D --> F["APK / DEX"]
    A -->|stdio MCP| P["JADX-MCP · Python"]
    P -->|HTTP| J["JADX GUI + plugin · JVM"]
    J --> F

与 AI Agent 配合使用

DexSQL 已列入官方 MCP Registry,名称为 org.lsposed/dexsql。支持从 Registry 安装服务的客户端可以直接添加它;Claude Desktop 则可以打开 Releases 中的 dexsql.mcpb bundle。该 bundle 支持 macOS、x86_64 Linux 和 x86_64 Windows;其他平台请使用技能或下方的手动设置方式。

使用 Skills CLI 安装设置技能:

npx skills add LSPosed/dexsql-release --skill install-dexsql

然后让你的 Agent 使用 install-dexsql 来安装 DexSQL 并配置其 MCP 连接。在 Codex 中,以 $install-dexsql 调用它。

该技能会从 Releases 下载兼容的二进制文件、验证其 SHA-256 校验和、添加 MCP 配置,并检查连接。它也可以使用本地可执行文件。上面的命令会安装该技能;实际设置由 Agent 在你调用它时执行。

手动设置 MCP

打开 Releases,选择与你的操作系统和 CPU 架构匹配的可执行文件或压缩包。查看所选版本的资源和说明,确认其可用性及系统要求。如有需要,请解压压缩包,然后在 Windows 上将可执行文件重命名为 dexsql.exe,在 macOS/Linux 上重命名为 dexsql。在 macOS/Linux 上,运行 chmod +x /path/to/dexsql。

从同一 Release 下载 LICENSE 和 LICENSE-AUXILIARY,并将它们与可执行文件放在一起,然后注册其绝对路径。Codex 配置如下:

codex mcp add dexsql -- /absolute/path/to/dexsql mcp

对于使用 mcpServers JSON 的客户端:

{
  "mcpServers": {
    "dexsql": {
      "command": "/absolute/path/to/dexsql",
      "args": ["mcp"]
    }
  }
}

在 Windows 上,请使用 dexsql.exe,并在 JSON 中转义反斜杠,例如 "D:\\Tools\\dexsql.exe"。如有需要,请重新加载客户端的 MCP 连接。客户端设置请参见 Codex MCP 文档。

连接后,可以尝试:

打开 /path/to/app.apk。查找引用此日志消息的方法,列出调用这些方法的调用方,并显示相关的 Smali。

该服务通过 MCP 资源提供其架构和文档。APK 解析在本地运行,不会修改输入文件。AI 客户端的设置决定哪些结果会发送给其模型。

性能

一次真实的 MCP 会话

某 AI Agent 通过 DexSQL MCP 服务分析了 Douyin 40.7.0(343 MiB,56 个 DEX 文件)。我们在 DexSQL 0.1.1 和另外六款工具上重放了其分析目标:rasc(ASC 的 Rust 实现)、DexDec、ddc、JADX API、garlic 和 droidsaw。

Douyin 40.7.0:七款工具,打开一次后完成 10 个分析目标,分为启动、查询和第三方工具调用,使用对数刻度。

打开 APK 一次并回答 10 个目标,DexSQL 用时 0.71 秒,rasc 用时 1.69 秒,DexDec 用时 16 秒,其他工具用时 75 至 449 秒。DexSQL 每次会话打开 APK 一次需 0.38 秒;rasc 无需打开,但每一步都会重新读取 APK,因此只有一个问题的会话中,rasc 完成得更快。有些工具未能显示所有预期证据;这些遗漏仍在审核中。有关每个目标、各工具的接口、方法和测试框架,请参阅重放报告。

QQ 上的固定查询

针对同一个 QQ 9.3.55 APK(约 372 MiB)运行八项查询:类和方法查找、字符串引用、直接调用者和两跳调用者查询,以及复合谓词。比较对象包括 JADX、zinja-coder 的 JADX-MCP、ASC、DexDec、ddc、garlic 和 droidsaw。

八款工具的进程启动、准备和首次类查找耗时。

启动时间包括进程启动、加载和准备,以及首次精确类查找;数值为三次运行的中位数。未清除操作系统文件缓存。

QQ 9.3.55:八款工具的类、方法名和字符串引用查询耗时。

查询耗时取三个已准备工作流中九次重复运行的中位数。garlic 每次调用都会重启 MCP;该耗时计入结果。droidsaw CLI 使用三次独立调用,每次都包括加载。每项查询都使用从零开始的线性图表。超过坐标轴上限的柱状条会被截断、以箭头标记,并标注实际耗时。**斜线柱状条表示查询未能在 60 秒内完成。**灰色条目说明了缺少比较数据的原因。

调用链和复合谓词

直接调用者和两跳调用者查询。

字符串与调用交集、四事实筛选和复杂集合查询。

直接调用者和两跳调用者查询分别返回 15 个和 16 个方法。每项复合查询返回一个方法。所有已完成并绘制的结果集均经过核验。JADX 原生适配器会直接读取元数据和 DEX 指令;它不会为了查找引用而反编译整个 APK。

类查找和所有已执行查询的进程树内存峰值。

内存数据通过 50 毫秒轮询间隔,在整个进程树范围内采集。浅色柱状条表示常见的加载并查找类工作流;深色柱状条表示各工具已执行的用例。RSS 总和可能会对共享页面重复计数。我们也记录了私有已提交内存和就绪时的内存占用。

在本次运行中,DexDec 的引用缓存使其重复调用者查询比 DexSQL 更快。droidsaw 的 MCP 因固定解析预算而拒绝输入,因此图表展示其 CLI 结果。有关首次查询和准备耗时、接口差异、SQL、结果哈希值和复现脚本,请参阅报告。

CLI

dexsql query --input app.apk --sql "SELECT DISTINCT method FROM method_strings WHERE value = 'https://api.example.com'"
dexsql query --input app.apk --interactive
dexsql extract licenses --output THIRD_PARTY_NOTICES
dexsql --help

重复使用 --input 可将多个文件一起查询。同一个可执行文件既提供 CLI,也提供 MCP 服务。

许可证

DexSQL 是 LSPosed 开发的闭源软件,采用 DexSQL Binary License 1.0 许可。根据其条款,个人和商业用途、集成及二进制再分发均免费。

公开的安装技能、基准测试材料和文档采用 MIT License 许可。

第三方材料保留其各自的许可证。运行 dexsql extract licenses 查看相关声明。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。