____ __ ____ __
/ /\ \__ ______ _____/ /________ _/ _/___ _________ ___ _____/ /_
/ / / / / / / __ `/ __ / ___/ __ `// // __ \/ ___/ __ \/ _ \/ ___/ __/
/ /_/ / /_/ / /_/ / /_/ / / / /_/ // // / / (__ ) /_/ / __/ /__/ /_
\___\\_\__,_/\__,_/\__,_/_/ \__,_/___/_/ /_/____/ .___/\___/\___/\__/
/_/
QuadraInspect is an Android framework that integrates AndroPass, APKUtil, RMS and MobFS, providing a powerful tool for analyzing the security of Android applications. AndroPass is a tool that focuses on analyzing the security of Android applications' authentication and authorization mechanisms, while APKUtil is a tool that extracts valuable information from an APK file. Lastly, MobFS and RMS facilitates the analysis of an application's filesystem by mounting its storage in a virtual environment.
By combining these three tools, QuadraInspect provides a comprehensive approach to vulnerability analysis of Android applications. This framework can be used by developers, security researchers, and penetration testers to assess the security of their own or third-party applications. QuadraInspect provides a unified interface for all three tools, making it easier to use and reducing the time required to conduct comprehensive vulnerability analysis. Ultimately, this framework aims to increase the security of Android applications and protect users' sensitive data from potential threats.
- Windows, Linux or Mac
- NodeJs installed
- Python 3.10 or above installed
- OpenSSL-3 installed
- Wkhtmltopdf installed
- Additional things based on the addins
QuadraInspect is packaged as a standard Python project and is managed with the
uv package manager.
The fastest path — installs uv, all Python dependencies, and every
integrated tool and add-on in a single command:
git clone https://github.com/morpheuslord/QuadraInspect
cd QuadraInspect
./install.sh # Linux / macOS (use sudo where tools require it)On Windows, run install.bat from the cloned directory. Pass --deps-only to
install just the Python dependencies and skip the tools.
The step-by-step instructions below do the same thing manually.
curl -LsSf https://astral.sh/uv/install.sh | sh(See the uv installation guide for Windows and alternative methods.)
git clone https://github.com/morpheuslord/QuadraInspect
cd QuadraInspect
uv syncuv sync creates an isolated virtual environment and installs QuadraInspect from
the locked dependency set (uv.lock). The bundled analysis scripts pull a few
extra libraries; install them with:
uv sync --extra toolsuv run quadrainspect # interactive (frame) modeYou can also run it as a module or via the legacy entry point:
uv run python -m quadrainspect
uv run python main.pyOn Linux/macOS some integrated tools require elevated privileges; run the command with
sudowhere needed.
Once QuadraInspect loads, run:
QuadraInspect Main>> START install_tools
To install the integrated tools and every optional add-on in one step, use:
QuadraInspect Main>> START full_install
The tools are downloaded to the tools directory and each tool's own setup steps
run automatically.
Add-ins are optional, community-contributed tools. They are declared as AddOn
objects in quadrainspect/tools/addins.py, so contributing a new one is a matter
of adding a single entry with its dependencies and an install callable — no
switch/match statement to edit.
- The framework (and its add-ins) can be updated using the
update addinsor theupdate-addinscommands, which perform agit pullon the checkout. - As of now the available add-ins are APKEditor and Backdoor-APK. Install
them with the
START addinscommand; both require a Java runtime environment.
Each module has a help function so that the commands and the descriptions are detailed and can be altered for operation.
- In linux and Mac you need to run it as a
sudouser - In Windows only the installation can be done as a
Adminrest all can be done as a normal user
These are the key points that must be addressed for smooth working:
- The APK file or target must be declared before starting any attack
- The Attacks are separate entities combined via this framework doing research on how to use them is recommended.
- The APK file can be either declared either using
argsor usingSET targetwithing the tool. - The target APK file must be placed in the
targetfolder as all the tool searches for the target file with that folder.
There are 2 modes:
|
└─> F mode
└─> A mode
The f mode is a mode where you get the active interface for using the interactive variation of the framework with the prompt, etc.
F mode is the normal mode and can be used easily
A mode or argumentative mode takes the input via arguments and runs the commands without any intervention by the user this is limited to the main menu in the future i am planning to extend this feature to even the incorporated codes.
uv run quadrainspect --target <APK_file> --mode argm --command install_tools/tools_name/apkleaks/mobfs/rms/apkleaksthe main menu of the entire tool has these options and commands:
Frame mode:
| Command | Description |
|---|---|
SET target |
SET the name of the targetfile |
START install_tools |
If not installed this will install the tools |
START full_install |
Install all tools and add-ons at once |
LIST tools_name |
List out the Tools Integrated |
START apkleaks |
Use APKLeaks tool |
START mobfs |
Use MOBfs for dynamic and static analysis |
START andropass |
Use AndroPass APK analizer |
START addins |
Starts the Extra tools installer |
update addins |
Updates the extra tools installer |
help |
Display help menu |
SHOW banner |
Display banner |
quit |
Quit the program |
Args mode:
| Command | Description |
|---|---|
install_tools |
If not installed this will install the tools |
full-install |
Install all tools and add-ons at once |
tools_name |
List out the Tools Integrated |
apkleaks |
Use APKLeaks tool |
mobfs |
Use MOBfs for dynamic and static analysis |
andropass |
Use AndroPass APK analizer |
addins |
Starts the Extra tools installer |
addins |
Updates the extra tools installer |
help |
Display help menu |
banner |
Display banner |
As mentioned above the target must be set before any tool is used.
The APKLeaks menu is also really straight forward and only a few things to consider:
- The options
SET outputandSET json-outtakes file names not the actual files it creates an output in theresultdirectory. - The
SET patternoption takes a name of a json pattern file. The JSON file must be located in thepatterndirectory
| OPTION | SET Value |
|---|---|
SET output |
Output for the scan data file name |
SET arguments |
Additional Disassembly arguments |
SET json-out |
JSON output file name |
SET pattern |
The pre-searching pattern for secrets |
help |
Displays help menu |
return |
Return to main menu |
quit |
Quit the tool |
Mobfs is pretty straight forward only the port number must be taken care of which is by default on port 5000 you just need to start the program and connect to it on 127.0.0.1:5000 over your browser.
AndroPass is also really straight forward it just takes the file as input and does its job without any other inputs.
QuadraInspect follows a modular, object-oriented architecture. The framework core
lives in the quadrainspect package and each integrated tool is a self-contained
class.
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
Key design points:
- Command registry (arbitration): user input is dispatched through a
CommandRegistryof first-classCommandobjects instead of large duplicatedmatch/switchblocks. Help tables are generated from the same registry, so they can never drift out of sync with the commands. - Single menu source of truth: frame (interactive) and argument modes are both
driven by one list of
MenuEntryobjects inapp.py. - Safe subprocess handling: every external command runs through
CommandRunneras an argument list (shell=False), so user-supplied values such as target file names can never be interpreted by a shell. - Typed errors: operational failures raise subclasses of
QuadraInspectErrorand are reported cleanly by the REPL instead of crashing it.
- Create a class in
quadrainspect/tools/extendingOneShotTool(single action) orInteractiveTool(its own sub-menu). Useself.runner,self.sessionandself.platformfrom the sharedToolContext. - Export it from
quadrainspect/tools/__init__.py. - Add one
MenuEntryfor it inQuadraInspect._build_menu(app.py). That single entry registers the tool in both frame and argument modes and in the help output. - If the tool needs to be downloaded, add its repository to
Installer.
If wanted you could do your upgrades and add them to this repository for more people to use, growing this tool.
Still under development
Anyone can contribute. I want this tool to be useful for as many people as possible. If anyone wants to contribute please feel free to. One way you can contribute is by adding your tools or tools you feel like can add value to the code and the complete framework.

