Quill
How It Works
⚠️ Authorized Testing Only
This tool interacts with live systems and must only be used for testing that has been explicitly authorized by the asset owner. Unauthorized use of this tool to probe, scan, exploit, or otherwise interact with systems you do not have written permission to test is illegal under computer fraud and abuse laws (CFAA, CMA, and international equivalents). pr0t31n does not condone or recommend any unauthorized use. Always obtain a signed Rules of Engagement (RoE) or Statement of Work (SoW) before beginning any assessment.
Quill performs mobile application security analysis for both iOS (IPA) and Android (APK) packages. The tool unpacks the application archive and conducts static analysis across multiple security dimensions: manifest/plist inspection, permission analysis, cryptographic implementation review, hardcoded secret detection, insecure storage patterns, network security configuration, and third-party library vulnerability assessment.
For Android APKs, Quill uses apktool to decompile the application resources and jadx to decompile Dalvik bytecode back to Java source for code-level analysis. For iOS IPAs, it extracts the application bundle and parses Info.plist and entitlements to assess security configuration. Both platforms undergo string extraction for URLs, API keys, and credential patterns embedded in the binary or resources.
Optionally, Quill supports Frida-based dynamic analysis when a device or emulator is available, hooking into runtime functions to observe cryptographic operations, certificate pinning behaviour, and data storage calls. When run under Crucible (CRUCIBLE_MANAGED=1), it emits structured protocol tokens for live progress and finding delivery. The tool supports checkpoint/resume for long-running analyses.
Phase Pipeline
- Phase 1 — Application Extraction
- Phase 2 — Binary Analysis
- Phase 3 — Network Traffic Analysis
- Phase 4 — Data Storage Audit
- Phase 5 — Findings Generation
Security
CLI tool. Processes IPA files locally. No network access during analysis.
Features
Analysis
Dynamic Analysis
Output
Security
Static Analysis
Testing
Use Cases
Mobile Application Penetration Test
Comprehensive security assessment of a mobile application as part of an authorised penetration test, covering OWASP Mobile Top 10 categories.
Pre-Release Security Review
Analyse a mobile application build before release to identify hardcoded secrets, insecure configurations, and vulnerable third-party libraries.
Medical Device Companion App Assessment
Evaluate the security of companion mobile applications for medical devices, checking for insecure data handling and communication patterns.
IoT Device Mobile Interface Review
Assess the mobile control application for IoT and hardware devices to identify API endpoint exposure, authentication weaknesses, and insecure local storage.
CLI Reference
Command Examples
Analyze IPA
Run full iOS application security analysis.
Third-Party Tool Invocations
Commands and flags used when this tool invokes third-party dependencies during operation.
Finding Nomenclature
Quill findings use the QL-NNN catalogue ID prefix. Findings map to OWASP Mobile Top 10 categories where applicable (e.g., M1: Improper Platform Usage, M5: Insufficient Cryptography, M9: Reverse Engineering). Risk levels reflect the exploitability and impact: CRITICAL for hardcoded credentials or disabled certificate pinning, HIGH for insecure data storage of sensitive information, MEDIUM for excessive permissions, and LOW/INFO for informational configuration observations.
Action Items
Quill generates action items for findings requiring runtime testing — e.g., "Test jailbreak detection bypass", "Verify certificate pinning can be bypassed with Frida/objection", "Check if debug entitlement enables runtime injection".
Output Files
| File | Format | Description |
|---|---|---|
meta.json |
JSON | Tool identity and engagement metadata |
findings.json |
JSON | Universal findings array v1.1 |
findings.csv |
CSV | CSV mirror of findings |
summary.json |
JSON | Aggregated statistics |
scan.log |
TXT | Human-readable timestamped log |
scan.log.json |
JSONL | Machine-readable JSON log events |
errors.log |
TXT | ERROR-level entries only |
checkpoint.json |
JSON | Resumable scan checkpoint |
Invocation Methods
| Method | Usage |
|---|---|
| CLI — Direct |
cd /opt/pr0t31n/Quill && python3 quill.py [OPTIONS]
Run directly with command-line arguments. |
| Crucible-Managed |
Launched and managed by Crucible (port 5100). Crucible handles start/stop/pause, log streaming, findings aggregation, and status tracking. |
Integration
Used By
- Crucible (manages)
Third-Party Dependencies & Credits
| Tool / Library | Developer | Type | Link |
|---|---|---|---|
| strings (binutils) | GNU Project / Free Software Foundation | system | https://www.gnu.org/software/binutils/ |
| codesign (macOS) | Apple | system | https://developer.apple.com/ |
Metadata
| Name | Quill |
| Category | Analysis |
| Version | 1.2.2 |
| Install Path | /opt/pr0t31n/Quill |
| Main File | quill.py |
| GitHub | https://github.com/pr0t31n/Quill.git |