Sometimes you want to find strings in your IPAs, but not open every single file to do so. Using other search methods have been super unreliable for me, so I made a python script that allows you to exactly do that, search whatever string you are looking for, recursively, in the whole IPA files files and subfolder.
The script is a lot more extensive than I want to describe, so feel free to just try it.
Usage:
usage: ipa-string-search.py [-h] [-s SEARCH] [-c] [-e] [-o OUTPUT] [-f {json,txt,csv}] [--min-length MIN_LENGTH]
[--max-length MAX_LENGTH] [-i]
ipa_path
IPA String Scanner - Search and extract strings from iOS apps
positional arguments:
ipa_path Path to extracted IPA directory
options:
-h, --help show this help message and exit
-s, --search SEARCH Search for specific string
-c, --case-sensitive Perform case-sensitive search (default: case-insensitive)
-e, --export-all Export all found strings
-o, --output OUTPUT Output file path (default: strings_output.json)
-f, --format {json,txt,csv}
Output format (default: json)
--min-length MIN_LENGTH
Minimum string length (default: 4)
--max-length MAX_LENGTH
Maximum string length (default: 1000)
-i, --interesting Find interesting strings (API keys, URLs, etc.)
Examples:
# Search for specific string (case-insensitive by default)
python ipa_scanner.py /path/to/extracted/ipa -s "api_key"
# Case-sensitive search
python ipa_scanner.py /path/to/extracted/ipa -s "ViP" -c
# Export all strings to JSON
python ipa_scanner.py /path/to/extracted/ipa -e -o strings.json
# Export all strings to CSV with custom length
python ipa_scanner.py /path/to/extracted/ipa -e -o strings.csv -f csv --min-length 10
# Find interesting strings (API keys, URLs, etc.)
python ipa_scanner.py /path/to/extracted/ipa -i
# Search in Unity games
python ipa_scanner.py /path/to/extracted/unity_app -s "PlayerPrefs"
Code:
[Hidden Content]
Supports also UnityFrameworks, UnityAssets, SQLite Databases, Mach-O Binary files and many more...