IPAchecker - Python Package
IPA Encryption Checker uses the ipachecker Python package for analyzing IPA files
Credits to norep on Discord for the original analysis script
Installation
Install the package using pip (requires Python 3.8 or newer):
Installation Command
pip install ipachecker
Basic Usage
Once installed, you can use the ipachecker command to analyze IPA files:
Basic Commands
# Analyze a local IPA file
ipachecker /path/app.ipa
# Download and analyze from URL
ipachecker https://example.com/app.ipa
# Analyze and rename to obscura format
ipachecker app.ipa --rename
# Analyze multiple files and rename them
ipachecker app1.ipa app2.ipa app3.ipa --rename
# Export results to JSON
ipachecker app.ipa --json --output results.json
# Batch analyze all IPAs in a folder
ipachecker --batch-analysis /path/to/folder
# Batch analyze and rename all files
ipachecker --batch-analysis /path/to/folder --rename
# Batch analyze from URL/path list file
ipachecker --batch-analysis list.txt
# Download, keep, and rename the file
ipachecker https://example.com/app.ipa --dont-delete --rename
Command Line Options
-h, --help- Show help message-o, --output <file>- Save results to specified JSON file-j, --json- Output results as JSON to stdout-q, --quiet- Only print errors and results-d, --debug- Print all logs for troubleshooting--dont-delete- Don't delete downloaded files after analysis--rename- Rename IPA files to obscura filename format after analysis NEW--batch-analysis- Enable batch analysis mode for multiple files
Features
- Encryption Detection - Determines if an IPA file is encrypted or decrypted
- Metadata Extraction - Reads app information from Info.plist
- Architecture Analysis - Identifies app architecture (32-bit, 64-bit, Universal)
- Batch Processing - Analyze multiple IPA files from folders or lists
- Remote Downloads - Download and analyze IPA files directly from URLs
- File Renaming - Automatically rename IPA files to standardized obscura format NEW
- JSON Export - Export analysis results to JSON format
- Obscura Filename - Creates standardized filenames in iOSObscura format
- MD5 Hash - Generates file hash for verification
File Renaming Feature NEW
The --rename flag automatically renames analyzed IPA files to the standardized Obscura filename format:
Rename Examples
# Rename format:
# {DisplayName}-({BundleID})-{AppVersion}-(iOS_{MinVersion})-{MD5Hash}.ipa
# Example: Rename a single file
ipachecker MyApp.ipa --rename
# Result: MyApp-(com.company.myapp)-1.2.3-(iOS_13.0)-abc123...ipa
# Batch rename all IPAs in a folder
ipachecker --batch-analysis /path/to/ipas --rename
# The rename feature:
# Only renames local files (not downloads unless --dont-delete used)
# Skips files already in obscura format
# Won't overwrite existing files
# Handles permission errors gracefully
# Works with both single and batch analysis
Example Output
Sample Output
┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Property ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Name │ Example │
│ Display Name │ Example │
│ Bundle Identifier │ com.example.app │
│ Version │ 1.0 │
│ Minimum iOS │ 2.0 │
│ Architecture │ 32-bit │
│ Encrypted │ YES │
│ Original Filename │ example_app.ipa │
│ MD5 Hash │ d41d8cd98f00b204e9800998ecf8427e │
│ File Size │ 67 bytes │
└───────────────────────┴────────────────────────────────────────────────────────────────┘
Obscura-format filename:
Example-(com.example.app)-1.0-(iOS_2.0)-d41d8cd98f00b204e9800998ecf8427e.ipa
JSON Output Format
When using --json flag, the output follows this structure:
JSON Structure
{
"appName": "Instagram",
"displayName": "Instagram",
"bundleId": "com.burbn.instagram",
"appVersion": "245.0",
"minIOS": "13.0",
"architecture": "64-bit",
"encrypted": true,
"obscuraFilename": "Instagram-(com.burbn.instagram)-245.0-(iOS_13.0)-d41d8cd98f00b204e9800998ecf8427e.ipa",
"originalFilename": "instagram.ipa",
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"fileSize": 125829120,
"filePath": "/path/to/instagram.ipa"
}
Note: In no way do we take any responsibility for any IPA files analyzed with this tool