____ __ ____ __
/ /\ \__ ______ _____/ /________ _/ _/___ _________ ___ _____/ /_
/ / / / / / / __ `/ __ / ___/ __ `// // __ \/ ___/ __ \/ _ \/ ___/ __/
/ /_/ / /_/ / /_/ / /_/ / / / /_/ // // / / (__ ) /_/ / __/ /__/ /_
\___\\_\__,_/\__,_/\__,_/_/ \__,_/___/_/ /_/____/ .___/\___/\___/\__/
/_/
QuadraInspect 是一个集成了 AndroPass、APKUtil、RMS 和 MobFS 的 Android 框架,为分析 Android 应用程序的安全性提供了强大的工具。AndroPass 专注于分析 Android 应用程序的身份验证和授权机制的安全性,而 APKUtil 则是一个从 APK 文件中提取有价值信息的工具。最后,MobFS 和 RMS 通过在虚拟环境中挂载应用程序的存储来促进对其文件系统的分析。
通过结合这三个工具,QuadraInspect 为 Android 应用程序的漏洞分析提供了全面的方法。该框架可供开发者、安全研究人员和渗透测试人员使用,以评估他们自己或第三方应用程序的安全性。QuadraInspect 为所有三个工具提供了统一的界面,使其更易于使用,并减少了进行全面漏洞分析所需的时间。最终,该框架旨在提高 Android 应用程序的安全性,并保护用户的敏感数据免受潜在威胁。
QuadraInspect 打包为一个标准的 Python 项目,并使用
uv 包管理器进行管理。
最快的方式——通过一条命令安装 uv、所有 Python 依赖项,以及每个
集成工具和附加组件:
git clone https://github.com/morpheuslord/QuadraInspect
cd QuadraInspect
./install.sh # Linux / macOS (use sudo where tools require it)
在 Windows 上,从克隆的目录中运行 install.bat。传入 --deps-only 可
仅安装 Python 依赖项并跳过工具。
下面的分步说明手动执行相同的操作。
curl -LsSf https://astral.sh/uv/install.sh | sh
(有关 Windows 和其他方法,请参阅 uv 安装指南。)
git clone https://github.com/morpheuslord/QuadraInspect
cd QuadraInspect
uv sync
uv sync 会创建一个隔离的虚拟环境,并从锁定的依赖集(uv.lock)安装
QuadraInspect。捆绑的分析脚本会拉取一些额外的库;使用以下命令安装它们:
uv sync --extra tools
uv run quadrainspect # interactive (frame) mode
你也可以将其作为模块或通过旧版入口点运行:
uv run python -m quadrainspect
uv run python main.py
在 Linux/macOS 上,某些集成工具需要提升权限;在需要时使用
sudo运行命令。
QuadraInspect 加载后,运行:
QuadraInspect Main>> START install_tools
要一步安装集成工具以及所有可选附加组件,请使用:
QuadraInspect Main>> START full_install
这些工具会被下载到 tools 目录,并且每个工具自身的设置步骤
会自动运行。
附加组件是可选的、由社区贡献的工具。它们在
quadrainspect/tools/addins.py 中被声明为 AddOn 对象,因此贡献一个新组件只需
添加一个包含其依赖项和安装可调用对象的条目——无需编辑
switch/match 语句。
update addins 或
update-addins 命令进行更新,这些命令会在检出目录上执行 git pull。START addins 命令安装它们;两者都需要 Java 运行时环境。每个模块都有一个帮助功能,以便命令和描述详细,并可根据操作进行调整。
sudo 用户身份运行它Admin 身份完成,其余所有操作都可以以普通用户身份完成以下是必须解决以实现顺利运行的关键点:
args 声明,也可以在工具内使用 SET target 声明。target 文件夹中,因为所有工具都会在该文件夹中搜索目标文件。有 2 种模式:
|
└─> F mode
└─> A mode
f 模式是一种模式,在该模式下你可以获得活动界面,以使用框架的交互式变体,包括提示符等。

F 模式是普通模式,可以轻松使用
A 模式或参数模式通过参数接收输入并运行命令,无需用户任何干预,这目前仅限于主菜单,未来我计划将此功能扩展到甚至包含的代码中。
uv run quadrainspect --target <APK_file> --mode argm --command install_tools/tools_name/apkleaks/mobfs/rms/apkleaks

整个工具的主菜单具有以下选项和命令:
Frame mode:
| 命令 | 描述 |
|---|---|
SET target | 设置目标文件的名称 |
START install_tools | 如果未安装,这将安装工具 |
START full_install | 一次性安装所有工具和附加组件 |
LIST tools_name | 列出集成的工具 |
START apkleaks | 使用 APKLeaks 工具 |
START mobfs | 使用 MOBfs 进行动态和静态分析 |
START andropass | 使用 AndroPass APK 分析器 |
START addins | 启动额外工具安装程序 |
update addins | 更新额外工具安装程序 |
help | 显示帮助菜单 |
SHOW banner | 显示横幅 |
quit | 退出程序 |
Args mode:
| 命令 | 描述 |
|---|---|
install_tools | 如果未安装,这将安装工具 |
full-install | 一次性安装所有工具和附加组件 |
tools_name | 列出集成的工具 |
apkleaks | 使用 APKLeaks 工具 |
mobfs | 使用 MOBfs 进行动态和静态分析 |
andropass | 使用 AndroPass APK 分析器 |
addins | 启动额外工具安装程序 |
addins | 更新额外工具安装程序 |
help | 显示帮助菜单 |
banner | 显示横幅 |
如上所述,在使用任何工具之前必须设置目标。
APKLeaks 菜单也非常直观,只有几件事需要考虑:
SET output 和 SET json-out 选项接受文件名,而不是实际文件,它会在 result 目录中创建输出。SET pattern 选项接受一个 json 模式文件的名称。该 JSON 文件必须位于 pattern 目录中| 选项 | 设置值 |
|---|---|
SET output | 扫描数据文件名输出 |
SET arguments | 额外的反汇编参数 |
SET json-out | JSON 输出文件名 |
SET pattern | 用于秘密的预搜索模式 |
help | 显示帮助菜单 |
return | 返回主菜单 |
quit | 退出工具 |
Mobfs 非常直观,只需注意端口号,默认端口为 5000,你只需启动程序并通过浏览器连接到 127.0.0.1:5000 即可。
AndroPass 也非常直观,它只需将文件作为输入并完成其工作,无需任何其他输入。
QuadraInspect 遵循模块化、面向对象的架构。框架核心
位于 quadrainspect 包中,每个集成工具都是一个自包含的
类。
quadrainspect/
├── cli.py # argument parsing / process entry point
├── app.py # orchestrator + shared frame/argument menu spec
├── shell.py # interactive REPL base class
├── registry.py # command registry (dispatch + auto-generated help)
├── runner.py # centralised subprocess execution (no shell injection)
├── platform.py # OS abstraction
├── session.py # workspace layout + runtime state (target, paths)
├── console.py # shared console, logging, banner
├── net.py # dependency-free downloads
├── exceptions.py # typed error hierarchy
└── tools/ # one class per integrated tool
├── base.py # Tool / OneShotTool / InteractiveTool + ToolContext
├── apkleaks.py, apkeditor.py, andropass.py, backdoor.py,
├── mobfs.py, rms.py, installer.py, addins.py, updater.py
关键设计要点:
Command 对象组成的
CommandRegistry 进行分发,而不是大量重复的
match/switch 块。帮助表由同一个注册表生成,因此
它们永远不会与命令不同步。app.py 中的一个 MenuEntry 对象列表驱动。CommandRunner 作为参数列表(shell=False)运行,因此用户提供的值
(如目标文件名)永远不会被 shell 解释。QuadraInspectError 的子类,并由 REPL 干净地报告,而不是使其崩溃。quadrainspect/tools/ 中创建一个类,继承 OneShotTool(单一
操作)或 InteractiveTool(其自己的子菜单)。使用共享 ToolContext 中的 self.runner、
self.session 和 self.platform。quadrainspect/tools/__init__.py 中导出它。QuadraInspect._build_menu(app.py)中为它添加一个 MenuEntry。这
单个条目会在框架和参数两种模式以及
帮助输出中注册该工具。Installer。如果需要,你可以进行升级并将其添加到本仓库,以供更多 人使用,从而发展这个工具。
仍在开发中
任何人都可以贡献。我希望这个工具能对尽可能多的人有用。如果有人想贡献,请随时贡献。你可以贡献的一种方式是添加你的工具或你认为可以为代码和整个框架增加价值的工具。