Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MobileSentry πŸ“±πŸ”’

Mobile Application Security Testing Framework β€” A comprehensive toolkit for Android (APK) and iOS (IPA) application security analysis, static/dynamic analysis, traffic interception, and automated OWASP Mobile Top 10 checks with bypass techniques.

βœ… Status: Alpha β€” All 9 phases complete.


Features

Phase 1 β€” APK Analyzer βœ…

  • APK Decompilation β€” Decompile APKs via apktool with directory tree visualization
  • Manifest Analysis β€” Extract package name, version, SDK levels, debuggable flag, allowBackup, network security config, signing info
  • Permission Analysis β€” List all declared permissions classified by severity (dangerous/normal/signature/custom) with counts
  • Component Enumeration β€” Activities, services, receivers, and content providers with export status and intent-filter detection
  • Security Misconfiguration Checks β€” 8 automated checks:
    • Debuggable flag detection
    • Backup enabled vulnerability
    • Missing network security config
    • Low minSdkVersion targeting
    • Unnecessarily exported components
    • Excessive permission requests
    • Sensitive permission combinations (Camera+Mic, Location+Background, etc.)
  • Hardcoded Secrets Detection β€” 23 regex patterns scanning decompiled source for:
    • AWS keys, GitHub tokens, Slack tokens, JWT tokens
    • Firebase URLs, Google API keys
    • Passwords, connection strings, private keys
    • OAuth secrets, API keys, and more
  • Statistics β€” File counts, DEX classes, native code detection, obfuscation detection, analysis timing
  • JSON Export β€” Full structured report for integration with other tools
  • Rich Terminal Output β€” Color-coded severity badges, formatted tables, panels, and progress spinners

Completed Phases

Phase Module Status
1 APK Analyzer βœ… Complete
2 IPA Analyzer βœ… Complete
3 Static Analysis Engine (OWASP Mobile Top 10) βœ… Complete
4 SSL Pinning Bypass (Frida) βœ… Complete
5 Root/Jailbreak Detection Bypass (Frida) βœ… Complete
6 Traffic Interception (MITM, HAR analysis, TLS) βœ… Complete
7 Dynamic Analysis βœ… Complete
8 Code Obfuscation Detection βœ… Complete
9 Report Generation βœ… Complete

Installation

⚠️ Note for Kali Linux / Debian 12+: System-wide pip install is blocked to protect the OS. Always use a virtual environment as shown below.

Python Package

# Clone the repository
git clone https://github.com/Yash-Patil-1/mobilesentry.git
cd mobilesentry

# Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate

# Install MobileSentry (recommended)
pip install -e .

# Or install with extra dependencies
pip install -e ".[analyze]"    # For APK analysis (androguard)
pip install -e ".[all]"        # All extras

# Verify it works
mobilesentry --help

πŸ’‘ Tip: Add mobilesentry/venv/bin to your PATH or create an alias so you can run mobilesentry from anywhere.

System Dependencies

APK Analyzer requires:

  • apktool β€” For APK decompilation (secrets scanning)
  • Java Runtime β€” Required by apktool

IPA Analyzer requires:

  • plutil β€” macOS utility for plist conversion (or handled gracefully)
  • unzip β€” For IPA extraction (ZIP archive)
  • file β€” For Mach-O binary detection
  • otool β€” Optional, for encryption detection (macOS only)
# Ubuntu/Debian
sudo apt install apktool default-jre unzip file

# macOS
brew install apktool

Usage

Frida β€” SSL Pinning Bypass Script Generation

# List all available bypass techniques
mobilesentry frida list

# List only Android techniques
mobilesentry frida list android

# List only iOS techniques
mobilesentry frida list ios

# Generate all SSL bypass scripts (both platforms)
mobilesentry frida generate

# Generate only Android scripts
mobilesentry frida generate android

# Generate only iOS scripts
mobilesentry frida generate ios

# Specify custom output directory
mobilesentry frida generate all --output ./my_frida_scripts

Generated scripts are organized by platform:

frida_scripts/
β”œβ”€β”€ android/
β”‚   β”œβ”€β”€ ssl_universal_android.js       # 🌟 Best β€” hooks SSLContext, OkHttp, WebView, TrustKit
β”‚   β”œβ”€β”€ ssl_okhttp_android.js           # 🎯 Targeted β€” OkHttp3/4 CertificatePinner
β”‚   β”œβ”€β”€ ssl_trustmanager_android.js     # βœ… Good β€” Custom TrustManager injection
β”‚   β”œβ”€β”€ ssl_webview_android.js          # 🎯 Targeted β€” WebView SSL error bypass
β”‚   β”œβ”€β”€ ssl_flutter_android.js          # βœ… Good β€” Flutter SSL bypass (Dart + native)
β”‚   └── ssl_xamarin_android.js          # 🎯 Targeted β€” Xamarin.Android SSL bypass
└── ios/
    β”œβ”€β”€ ssl_universal_ios.js            # 🌟 Best β€” NSURLSession, AFNetworking, TrustKit
    β”œβ”€β”€ ssl_afnetworking_ios.js         # 🎯 Targeted β€” AFSecurityPolicy bypass
    β”œβ”€β”€ ssl_alamofire_ios.js            # 🎯 Targeted β€” Alamofire ServerTrustManager
    β”œβ”€β”€ ssl_trustkit_ios.js             # 🎯 Targeted β€” TrustKit library bypass
    β”œβ”€β”€ ssl_flutter_ios.js              # βœ… Good β€” Flutter iOS SSL bypass
    └── ssl_nsurlsession_ios.js         # βœ… Good β€” Pure NSURLSession/NSURLConnection

Quick usage with Frida:

# Attach to a running Android app
frida -U com.target.app -l frida_scripts/android/ssl_universal_android.js

# Spawn and inject into Android app
frida -U -f com.target.app -l frida_scripts/android/ssl_universal_android.js --no-pause

# Spawn and inject into iOS app
frida -U -f com.target.app -l frida_scripts/ios/ssl_universal_ios.js

Frida β€” Root/Jailbreak Detection Bypass Script Generation

# List all available root/jailbreak bypass techniques
mobilesentry frida root-bypass list

# List only Android techniques
mobilesentry frida root-bypass list android

# List only iOS techniques
mobilesentry frida root-bypass list ios

# Generate all root/jailbreak bypass scripts (both platforms)
mobilesentry frida root-bypass generate

# Generate only Android root bypass scripts
mobilesentry frida root-bypass generate android

# Generate only iOS jailbreak bypass scripts
mobilesentry frida root-bypass generate ios

# Specify custom output directory
mobilesentry frida root-bypass generate all --output ./my_bypass_scripts

Generated scripts are organized by platform:

bypass_scripts/
β”œβ”€β”€ android/
β”‚   β”œβ”€β”€ root_universal_android.js       # 🌟 Best β€” Hooks File.exists, Runtime.exec, System.getProperty, Build.TAGS,
β”‚   β”‚                                      ProcessBuilder, native access/stat, RootBeer, Superuser, Magisk
β”‚   β”œβ”€β”€ root_magisk_android.js           # 🎯 Targeted β€” Magisk-specific bypass (paths, env, mounts, Zygisk)
β”‚   β”œβ”€β”€ root_rootbeer_android.js         # 🎯 Targeted β€” RootBeer library bypass (all methods + native lib)
β”‚   └── root_safetynet_android.js        # 🎯 Targeted β€” SafetyNet/Play Integrity API bypass
└── ios/
    β”œβ”€β”€ root_universal_ios.js            # 🌟 Best β€” Hooks NSFileManager, stat/access/open, fork/system, dlopen,
    β”‚                                      canOpenURL, sysctl, proc_info, sandbox, NSTask
    β”œβ”€β”€ root_cydia_ios.js                # 🎯 Targeted β€” Cydia/Substrate app & library detection bypass
    β”œβ”€β”€ root_liberty_ios.js              # 🎯 Targeted β€” Libhooker/rootless jailbreak bypass (Dopamine, Xina)
    └── root_rootful_ios.js              # 🎯 Targeted β€” Rootful jailbreak bypass (unc0ver, checkra1n)

Quick usage with Frida:

# Attach to a running Android app
frida -U com.target.app -l bypass_scripts/android/root_universal_android.js

# Spawn and inject into iOS app
frida -U -f com.target.app -l bypass_scripts/ios/root_universal_ios.js

Frida β€” Runtime Monitoring Script Generation & Trace Analysis (Dynamic Analysis)

# List all available runtime monitoring techniques
mobilesentry frida dynamic list

# List only Android techniques
mobilesentry frida dynamic list android

# List only iOS techniques
mobilesentry frida dynamic list ios

# Generate all runtime monitor scripts (both platforms)
mobilesentry frida dynamic generate

# Generate only Android monitor scripts
mobilesentry frida dynamic generate android

# Generate only iOS monitor scripts
mobilesentry frida dynamic generate ios

# Specify custom output directory
mobilesentry frida dynamic generate all --output ./my_monitor_scripts

# Analyze a captured trace file
mobilesentry frida dynamic trace trace.json

Generated scripts are organized by platform:

monitor_scripts/
β”œβ”€β”€ android/
β”‚   β”œβ”€β”€ monitor_universal_android.js       # 🌟 Best β€” method calls, file I/O, crypto, DB, network, permissions
β”‚   β”œβ”€β”€ monitor_method_tracer_android.js   # βœ… Good β€” lightweight sensitive API tracing (Telephony, Accounts, Location, Camera, WebView)
β”‚   β”œβ”€β”€ monitor_crypto_android.js          # 🎯 Targeted β€” Cipher, KeyGenerator, MessageDigest, KeyStore, Signature
β”‚   β”œβ”€β”€ monitor_database_android.js        # 🎯 Targeted β€” SQLiteDatabase, Room, ContentResolver queries
β”‚   β”œβ”€β”€ monitor_file_io_android.js         # 🎯 Targeted β€” File, RandomAccessFile, Context directories, FileObserver
β”‚   └── monitor_network_android.js         # 🎯 Targeted β€” HttpURLConnection, OkHttp, WebSocket, DownloadManager
└── ios/
    β”œβ”€β”€ monitor_universal_ios.js           # 🌟 Best β€” NSFileManager, NSUserDefaults, Keychain, NSURLSession, CLLocation
    └── monitor_method_tracer_ios.js       # βœ… Good β€” UIDevice, UIApplication, AVCaptureDevice, CNContactStore, WKWebView, CommonCrypto

Quick usage with Frida:

# Attach to a running Android app and capture trace output
frida -U com.target.app -l monitor_scripts/android/monitor_universal_android.js 2>&1 | tee trace.json

# Spawn and inject into app
frida -U -f com.target.app -l monitor_scripts/android/monitor_universal_android.js --no-pause 2>&1 | tee trace.json

# Analyze the captured trace
mobilesentry frida dynamic trace trace.json

The DynamicAnalyzer produces a comprehensive report including:

  • Event type breakdown (method_calls, file_io, crypto, db_query, network, permission)
  • Top methods called with call counts
  • Behavioral security findings (crypto volume, sensitive files, SQL injection risks, HTTP requests)
  • Sensitive API usage inventory
  • Call graph visualization (nodes and edges)

Code Obfuscation Detection

# List all available obfuscation detection techniques (Android + iOS)
mobilesentry obfuscation list

# Analyze an APK for obfuscation
mobilesentry obfuscation analyze app.apk

# Analyze an IPA for obfuscation
mobilesentry obfuscation analyze app.ipa

# Export results as JSON
mobilesentry obfuscation analyze app.apk --json

Obfuscation detection techniques by platform:

Android (8 techniques):

Technique Severity Description
ProGuard/R8 🟑 Medium Standard class/method/field renaming, minification, mapping.txt checks
DexGuard πŸ”΄ High Commercial obfuscation β€” string encryption, class encryption, anti-tampering
String Encryption πŸ”΄ High XOR/AES-based string decryption, char[] building, decryption helpers
Reflection Hiding πŸ”΄ High Class.forName(), Method.invoke(), DexClassLoader for dynamic dispatch
Obfuscator-LLVM πŸ”΄ Critical Native (.so) code obfuscation β€” CF flattening, bogus control flow, instruction substitution
Packer/DEX Protection πŸ”΄ Critical UPX packing, DEX encryption, DexClassLoader payloads, anti-debugging
Resource Obfuscation πŸ”΅ Low Shortened/randomized resource names and IDs
Arithmetic Obfuscation 🟑 Medium Constant encoding via expressions, XOR chains

iOS (6 techniques):

Technique Severity Description
Symbol Obfuscation πŸ”΄ High Random short function/class symbol names preventing disassembly
ObjC Metadata Obfuscation πŸ”΄ High Obfuscated class names, selectors, protocol metadata
String Encryption (iOS) πŸ”΄ High Encrypted cstrings, character-by-character decryption in ARM64
OLLVM (iOS) πŸ”΄ Critical LLVM-level CF flattening, bogus CF, instruction substitution
Control Flow Flattening πŸ”΄ High Switch-dispatch pattern flattening of function CFG
Anti-Hooking/Anti-Debug 🟑 Medium ptrace(), sysctl(), dladdr() debugger/hooking detection

Traffic Interception β€” MITM Proxy Setup & Analysis

# Generate all mitmproxy addon scripts (full, minimal, auth)
mobilesentry traffic setup

# Generate only the full-featured addon with device setup guide
mobilesentry traffic setup full --guide

# Generate auth-focused addon
mobilesentry traffic setup auth

# Custom output directory
mobilesentry traffic setup all --output ./my_mitmproxy

Generated addons are organized by type:

mitmproxy_config/
β”œβ”€β”€ mobilesentry_addon.py             # 🌟 Full β€” Real-time security analysis + HAR capture
β”œβ”€β”€ mobilesentry_minimal_addon.py     # πŸ“¦ Minimal β€” Lightweight HAR capture only
β”œβ”€β”€ mobilesentry_auth_addon.py        # πŸ”‘ Auth β€” OAuth/OIDC/token focused capture
└── DEVICE_SETUP.md                   # πŸ“‹ Device configuration guide

Intercept traffic:

# Start mitmproxy with the full addon
mitmproxy -s mitmproxy_config/mobilesentry_addon.py

# Or headless capture with mitmdump
mitmdump -s mitmproxy_config/mobilesentry_addon.py

# Configure device proxy to <HOST_IP>:8080
# Install CA certificate: open http://mitm.it on device

Traffic Analysis β€” HAR File Security Analysis

# Analyze a captured HAR file for security issues
mobilesentry traffic analyze capture.har

Analysis checks include:

  • HTTPS vs HTTP ratio
  • Missing security headers (HSTS, CSP, XFO, etc.)
  • Cookie security attributes (Secure, HttpOnly, SameSite)
  • Authentication header types (Bearer, Basic, API keys)
  • Sensitive data exposure in URLs and response bodies
  • TLS version and cipher analysis
  • Weak cipher detection (RC4, DES, 3DES, etc.)

TLS Certificate Analysis

# Analyze TLS certificates from captured traffic
mobilesentry traffic certs capture.har

Certificate analysis checks:

  • Expiry dates and days until expiration
  • Self-signed certificate detection
  • Wildcard certificate detection
  • Deprecated TLS versions (SSLv3, TLSv1.0, TLSv1.1)
  • Weak cipher suite detection
  • Certificate chain length

Full APK Analysis

mobilesentry apk analyze app.apk

Analysis with JSON Export

mobilesentry apk analyze app.apk --json

Quick APK Info

mobilesentry apk info app.apk

Decompile APK Only

mobilesentry apk decompile app.apk

Scan for Hardcoded Secrets

mobilesentry apk secrets app.apk

IPA Analysis

# Full IPA analysis
mobilesentry ipa analyze app.ipa

# Quick IPA info
mobilesentry ipa info app.ipa

# Extract IPA to .app bundle
mobilesentry ipa decompile app.ipa

# Scan for hardcoded secrets
mobilesentry ipa secrets app.ipa

Unified Report Generation

Combine results from multiple analyzers into a single HTML, JSON, or Markdown report.

# Generate an HTML report from an APK analysis JSON file
mobilesentry report --apk ./mobilesentry_output/com.example_analysis.json --format html

# Combine APK + OWASP + obfuscation results
mobilesentry report --apk ./output/com.example_analysis.json --owasp ./output/com.example_owasp.json --obfuscation ./output/com.example_obfuscation.json

# Generate a JSON report (for CI/tooling integration)
mobilesentry report --apk ./result.json --format json

# Generate a Markdown report (for documentation)
mobilesentry report --apk ./result.json --format md --output ./REPORT.md

The generated HTML report includes:

  • Executive summary with risk score (0–100)
  • Severity distribution bar chart
  • All findings sorted by severity (critical β†’ info)
  • Detailed APK metadata section
  • Detailed IPA metadata section
  • OWASP category breakdown
  • Obfuscation detection results
  • Dynamic analysis summary
  • Traffic analysis overview
  • Dark theme, responsive layout, collapsible sections

Help

mobilesentry --help
mobilesentry apk --help
mobilesentry ipa --help

Example Output

APK Metadata

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    APK Metadata                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Package              β”‚ com.example.app              β”‚
β”‚ Version              β”‚ 2.1.0 (42)                   β”‚
β”‚ Min SDK              β”‚ 26                            β”‚
β”‚ Target SDK           β”‚ 34                            β”‚
β”‚ Size                 β”‚ 12.4 MB                       β”‚
β”‚ Debuggable           β”‚ βœ… No                         β”‚
β”‚ Allow Backup         β”‚ ⚠️ Enabled                    β”‚
β”‚ Network Security     β”‚ ⚠️ Missing                    β”‚
β”‚ Signed               β”‚ βœ… Yes                        β”‚
β”‚ Signature            β”‚ APK Signature Scheme v2       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Permission Analysis

Permissions are color-coded by severity:

  • πŸ”΄ DANGEROUS β€” Sensitive data access (Camera, Location, SMS, etc.)
  • 🟠 SIGNATURE β€” System-level permissions
  • πŸ”΅ UNKNOWN β€” Custom or undocumented permissions
  • βœ… NORMAL β€” Low-risk permissions (Internet, Network, etc.)

Security Issues

Each issue is displayed in a bordered panel with:

  • Severity badge (CRITICAL/HIGH/MEDIUM/LOW)
  • Description explaining the vulnerability
  • Actionable recommendation

Secrets Detection

Hardcoded secrets are displayed in a table with severity, type, truncated value, file path, and line number.


Architecture

mobilesentry/
β”œβ”€β”€ mobilesentry/
β”‚   β”œβ”€β”€ __init__.py          # Package metadata
β”‚   β”œβ”€β”€ __main__.py          # Python -m entry point
β”‚   β”œβ”€β”€ cli.py               # CLI with argparse + Rich formatting
β”‚   β”œβ”€β”€ apk_analyzer.py      # Android APK analysis engine
β”‚   β”œβ”€β”€ ipa_analyzer.py      # iOS IPA analysis engine
β”‚   β”œβ”€β”€ static_analyzer.py   # OWASP Mobile Top 10 static analysis
β”‚   β”œβ”€β”€ ssl_pinning.py       # Frida SSL pinning bypass script generation
β”‚   β”œβ”€β”€ root_bypass.py       # Frida root/jailbreak detection bypass script generation
β”‚   β”œβ”€β”€ traffic_intercept.py   # MITM proxy setup, HAR analysis, TLS cert analysis
β”‚   β”œβ”€β”€ dynamic_analyzer.py    # Runtime monitoring script gen + trace analysis
β”‚   β”œβ”€β”€ obfuscation_detect.py  # Code obfuscation detection (ProGuard, OLLVM, packers, etc.)
β”‚   └── config.py              # Configuration constants
β”œβ”€β”€ pyproject.toml           # Package config + ruff rules
β”œβ”€β”€ README.md
└── LICENSE

APK Analysis Pipeline

APK File
    β”‚
    β–Ό
androguard (APK loading)
    β”‚
    β”œβ”€β”€ Parse AXML Manifest ──► Package, Version, SDK, Permissions, Components
    β”‚
    β”œβ”€β”€ Security Checks ──► Debuggable, Backup, Exported Components, Permissions
    β”‚
    β–Ό
apktool (Decompilation)
    β”‚
    └── Source Scanning ──► 23 regex patterns for hardcoded secrets
    β”‚
    β–Ό
JSON + Rich Terminal Output

IPA Analysis Pipeline

IPA File
    β”‚
    β–Ό
unzip (Extraction)
    β”‚
    β”œβ”€β”€ Parse Info.plist ──► Bundle ID, Version, Min OS, SDK, Permissions
    β”‚
    β”œβ”€β”€ Find .app Bundle ──► Frameworks, Entitlements, Binary
    β”‚
    β”œβ”€β”€ Binary Analysis ──► Architectures, PIE, ARC, Stack Canary, Encryption
    β”‚
    β”œβ”€β”€ SDK Detection ──► 65+ known frameworks matched
    β”‚
    β”œβ”€β”€ Security Checks ──► ATS, File Sharing, Permissions, Entitlements
    β”‚
    └── Source Scanning ──► 23 regex patterns for hardcoded secrets
    β”‚
    β–Ό
JSON + Rich Terminal Output

Security Checks

APK Security Checks

Check Description Severity
Debuggable App android:debuggable="true" allows debugger attachment πŸ”΄ High
Backup Enabled android:allowBackup="true" allows ADB data exfiltration 🟑 Medium
Missing Network Config No networkSecurityConfig = platform default cleartext policy πŸ”΅ Low
Low minSdkVersion Targets outdated API levels lacking security features 🟑 Medium
Exported Components Components accessible from other apps without permission 🟑 Medium
Excessive Permissions 10+ dangerous permissions requested 🟑 Medium
Sensitive Combos Camera+Mic, Location+Background, etc. πŸ”΅ Low

IPA Security Checks

Check Description Severity
ATS Disabled NSAllowsArbitraryLoads enables cleartext HTTP πŸ”΄ High
Insecure HTTP Exceptions Specific domains allowed to load over HTTP 🟑 Medium
File Sharing Enabled UIFileSharingEnabled exposes Documents via USB 🟑 Medium
Missing PIE Binary not position-independent (ROP vulnerable) πŸ”΄ High
Missing ARC No Automatic Reference Counting (memory bugs) 🟑 Medium
Missing Stack Canary No stack overflow protection πŸ”΄ High
Missing Encryption Binary not FairPlay encrypted (easier to RE) 🟑 Medium
Risky Entitlements Debugger attach, library injection, unsigned exec πŸ”΄ High
Excessive Permissions 5+ high-risk permissions (camera, mic, location, etc.) 🟑 Medium

License

MIT License β€” see LICENSE

Author

Yash Patil β€” Cybersecurity Analyst | Penetration Tester

About

Comprehensive mobile security testing framework: APK/IPA analysis, static analysis (OWASP Mobile Top 10), Frida SSL pinning bypass, root/jailbreak detection bypass, runtime monitoring, traffic interception, obfuscation detection, and professional reporting.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages