Skip to main content

iOS Testing Commands

This assumes my iOS tools from GitHub are installed in your $PATH. Any command below that is preceded with > means that it is a sub-command under the primary command above it.

Last Update: July 20, 2025


Jailbreak Information

TaskCommand(s)
Rootless JailbreaksThe root filesystem is read-only, rootless jailbreaks changes root to /var/jb.
The root user home directory will be at /var/jb/var/root.
Rootful JailbreaksThe root filesystem is remounted as read-write. The root user home directory
is at the normal location /var/root
CorelliumThere are no changes to the filesystem in a Corellium virtual device.

Device Information

TaskCommand(s)
Get UUID of the deviceidevice_id -l
Get UUID of the device (macOS)ioreg -p IOUSB -l | grep "USB Serial"
Get device informationideviceinfo
ideviceinfo -s
Install an application (macOS)ideviceinstaller -i filename.ipa
Install an application (Linux)Install ipainstaller from the package manager.
ideviceinstaller install filename.ipa
Install an application (On-Device)ipainstaller filename.ipa
Take a screenshot of the deviceidevicescreenshot
Get log messages from deviceidevicesyslog
idevicesyslog | grep searchterm

Static Analysis

TaskCommand(s)
Obtain App Informationappinfo bundle-id
objection -g AppName run env
Static Analysis InformationMachOAnalyzer bundle-id
Get Executable Nameplutil -extract CFBundleExecutable raw Info.plist
List App Permissionsplutil -p Info.plist | grep Description
List Libraries & Frameworksotool -L binary-name
Print Binary Load Commandsotool -l binary-name
Check if binary is encryptedotool -l binary-name | grep -A 4 LC_ENC
Check for Stack Protectionotool -Iv binary-name | grep __stack_chk
Check if PIE is enabledotool -hv binary-name
Check if ARC is in useotool -Iv binary-name | grep -iw _objc_autorelease
Binary Protectionsobjection -g AppName run ios info binary
Dump Classes/Methodsotool -oV binary-name
rabin2 -cc binary-name
Check if binary is a FAT filelipo -info binary-name
rabin2 -A binary-name
Extract architecture from FAT filelipo -thin arm64 -o appname.arm64 binary-name
rabin2 -x binary-name
Extract App Entitlementsgetentitlements bundle-id
rabin2 -T binary-name
extract_mobileprovision binary-name
Executable Detailsrabin2 -I binary-name

Data Storage

TaskCommand(s)
Dump Keyboard Cachekeyboardcachedump
strings /var/mobile/Library/Keyboard/en-dynamic.lm/*.dat
Dump Data Protection Valuesdataprotection bundle-id
frida -U -l ios-data-protection.js -f AppName
Dump Keychainobjection -g AppName run ios keychain dump
objection -g AppName run ios keychain dump --json output.json
frida -U -l dumpkeychain.js -f AppName
Get Cookiesobjection -g AppName run ios cookies get
cd DATA-DIR/Library/Cookies
> cookieParser Cookies.binarycookies
Get log entriesidevicesyslog | grep app-name
Binary Stringsstrings -n 6 binary-name
rabin2 -zz binary-name
Memory Dump (on device)memdump pid
Memory Dump (Objection)objection -g AppName explore
> memory dump all destination-file
> memory search search-string --string
> memory dump from_base hex-base size local-destination
Memory Search (Objection)objection -g AppName explore
> memory search search-string --string
> memory dump from_base hex-base size local-destination
Memory Dump (Fridump)python3 fridump.py -U -o output-dir -s AppName
Display a Property List (PLIST) FileOn-Device:  plutil filename.plist
macOS/Linux: plutil -p filename.plist
Convert PLIST (Any => XML)plutil -convert xml1 filename.plist
Convert PLIST (Any => Binary)plutil -convert binary1 filename.plist
Convert PLIST (Any => JSON)plutil -convert json filename.plist
Search for File Extensionsfind DATA-DIR -iname *.xml
Common File Extensionstxt, xml, db, sqlite, sqlite3, json, html, js, cer, pem,
cert, crt, pub, key, pfx, p12, pkcs7, realm*, cblite, cblite2

SQLite3 Commands

TaskCommand(s)
Common SQLite3 File Extensions.db, .sqlite, .sqlite3, .data
Open Databasesqlite3 database-name
Close Database> .exit
List Tables> .tables
Show DB Schema> .schema
> .schema tablename
Select All Data from a Table> SELECT * FROM tablename;
Select Specific Data Examples> SELECT user,password FROM tablename;
> SELECT * FROM tablename WHERE column-name like '%value%';
Attach a Database> ATTACH DATABASE database-name AS database-name;
Databse Optimization> VACUUM
Database -wal FileWrite ahead log - stores data before it is pushed to the main database file
Database -shm FileShared memory - stores data that is shared across database connections

Dynamic Analysis

TaskCommand(s)
HTTP Cachingcd DATA-DIR/Library/Caches/$bundle_id/
dumpCache Cache.db output.txt
Monitoring Cryptography (Objection)objection -g AppName explore
> ios monitor crypto
File System Monitoring (fsmon)fsmon -P binary-name
fsmon -p pid
fsmon /private/var/containers/Bundle/Application/UUID/AppName.app
fsmon /private/var/mobile/Containers/Data/Application/UUID
Check for Local Server on Devicenetstat -an | grep -w LISTEN
lsof -i :port-number
nmap -sS -sV -p- --open device-ip-address
Create a Full Backupidevicebackup2 backup --full ./output-directory
Bypass Jailbreak Detection (Objection)objection -g AppName explore
> ios jailbreak disable
Bypass SSL Pinning (Objection)objection -g AppName explore
> ios sslpinning disable
Print NSUserDefaults Data (Objection)objection -g AppName explore
> ios nsuserdefaults get
Monitor Pasteboard (Objection)objection -g AppName explore
> ios pasteboard monitor
Get NSURLCredentialStorage (Objection)objection -g AppName explore
> ios nsurlcredentialstorage dump