iOS Commands Cheatsheet
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
| Task | Command(s) |
|---|---|
| Rootless Jailbreaks | The 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 Jailbreaks | The root filesystem is remounted as read-write. The root user home directory is at the normal location /var/root |
| Corellium | There are no changes to the filesystem in a Corellium virtual device. |
Device Information
| Task | Command(s) |
|---|---|
| Get UUID of the device | idevice_id -l |
| Get UUID of the device (macOS) | ioreg -p IOUSB -l | grep "USB Serial" |
| Get device information | ideviceinfo 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 device | idevicescreenshot |
| Get log messages from device | idevicesyslog idevicesyslog | grep searchterm |
Static Analysis
| Task | Command(s) |
|---|---|
| Obtain App Information | appinfo bundle-id objection -g AppName run env |
| Static Analysis Information | MachOAnalyzer bundle-id |
| Get Executable Name | plutil -extract CFBundleExecutable raw Info.plist |
| List App Permissions | plutil -p Info.plist | grep Description |
| List Libraries & Frameworks | otool -L binary-name |
| Print Binary Load Commands | otool -l binary-name |
| Check if binary is encrypted | otool -l binary-name | grep -A 4 LC_ENC |
| Check for Stack Protection | otool -Iv binary-name | grep __stack_chk |
| Check if PIE is enabled | otool -hv binary-name |
| Check if ARC is in use | otool -Iv binary-name | grep -iw _objc_autorelease |
| Binary Protections | objection -g AppName run ios info binary |
| Dump Classes/Methods | otool -oV binary-namerabin2 -cc binary-name |
| Check if binary is a FAT file | lipo -info binary-namerabin2 -A binary-name |
| Extract architecture from FAT file | lipo -thin arm64 -o appname.arm64 binary-namerabin2 -x binary-name |
| Extract App Entitlements | getentitlements bundle-idrabin2 -T binary-nameextract_mobileprovision binary-name |
| Executable Details | rabin2 -I binary-name |
Data Storage
| Task | Command(s) |
|---|---|
| Dump Keyboard Cache | keyboardcachedumpstrings /var/mobile/Library/Keyboard/en-dynamic.lm/*.dat |
| Dump Data Protection Values | dataprotection bundle-idfrida -U -l ios-data-protection.js -f AppName |
| Dump Keychain | objection -g AppName run ios keychain dumpobjection -g AppName run ios keychain dump --json output.jsonfrida -U -l dumpkeychain.js -f AppName |
| Get Cookies | objection -g AppName run ios cookies getcd DATA-DIR/Library/Cookies> cookieParser Cookies.binarycookies |
| Get log entries | idevicesyslog | grep app-name |
| Binary Strings | strings -n 6 binary-namerabin2 -zz binary-name |
| Memory Dump (on device) | memdump pid |
| Memory Dump (Objection) | objection -g AppName explore> memory dump all destination-file |
| Memory Search (Objection) | objection -g AppName explore |
| Memory Dump (Fridump) | python3 fridump.py -U -o output-dir -s AppName |
| Display a Property List (PLIST) File | On-Device: plutil filename.plistmacOS/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 Extensions | find DATA-DIR -iname *.xml |
| Common File Extensions | txt, xml, db, sqlite, sqlite3, json, html, js, cer, pem, |
SQLite3 Commands
| Task | Command(s) |
|---|---|
| Common SQLite3 File Extensions | .db, .sqlite, .sqlite3, .data |
| Open Database | sqlite3 database-name |
| Close Database | > .exit |
| List Tables | > .tables |
| Show DB Schema | > .schema |
| Select All Data from a Table | > SELECT * FROM tablename; |
| Select Specific Data Examples | > SELECT user,password FROM tablename; |
| Attach a Database | > ATTACH DATABASE database-name AS database-name; |
| Databse Optimization | > VACUUM |
Database -wal File | Write ahead log - stores data before it is pushed to the main database file |
Database -shm File | Shared memory - stores data that is shared across database connections |
Dynamic Analysis
| Task | Command(s) |
|---|---|
| HTTP Caching | cd DATA-DIR/Library/Caches/$bundle_id/ |
| Monitoring Cryptography (Objection) | objection -g AppName explore |
| File System Monitoring (fsmon) | fsmon -P binary-name |
| Check for Local Server on Device | netstat -an | grep -w LISTEN |
| Create a Full Backup | idevicebackup2 backup --full ./output-directory |
| Bypass Jailbreak Detection (Objection) | objection -g AppName explore |
| Bypass SSL Pinning (Objection) | objection -g AppName explore |
| Print NSUserDefaults Data (Objection) | objection -g AppName explore |
| Monitor Pasteboard (Objection) | objection -g AppName explore |
| Get NSURLCredentialStorage (Objection) | objection -g AppName explore |