All Projects → richinfante → Iphonebackuptools

richinfante / Iphonebackuptools

Licence: mit
iOS Backup Data Extraction

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Iphonebackuptools

Panda
Platform for Architecture-Neutral Dynamic Analysis
Stars: ✭ 1,993 (+1130.25%)
Mutual labels:  reverse-engineering
Cmd
Command line tools for database operation written by Go, moved to https://gitea.com/xorm/cmd
Stars: ✭ 154 (-4.94%)
Mutual labels:  reverse-engineering
Rbasefind
A firmware base address search tool.
Stars: ✭ 159 (-1.85%)
Mutual labels:  reverse-engineering
Mixplaintext
可对 Xcode 项目工程所有的 objective-c 文件内包含的明文进行加密混淆,提高逆向分析难度。
Stars: ✭ 152 (-6.17%)
Mutual labels:  reverse-engineering
Jupiter
A Windows virtual memory editing library with support for pattern scanning.
Stars: ✭ 156 (-3.7%)
Mutual labels:  reverse-engineering
Apktool
A tool for reverse engineering Android apk files
Stars: ✭ 12,978 (+7911.11%)
Mutual labels:  reverse-engineering
Validity90
Reverse engineering of Validity/Synaptics 138a:0090, 138a:0094, 138a:0097, 06cb:0081, 06cb:009a fingerprint readers protocol
Stars: ✭ 1,807 (+1015.43%)
Mutual labels:  reverse-engineering
Androidlibrary
Android library to reveal or obfuscate strings and assets at runtime
Stars: ✭ 162 (+0%)
Mutual labels:  reverse-engineering
Edb Debugger
edb is a cross-platform AArch32/x86/x86-64 debugger.
Stars: ✭ 2,019 (+1146.3%)
Mutual labels:  reverse-engineering
Uddbg
A gdb like debugger that provide a runtime env to unicorn emulator and additionals features!
Stars: ✭ 159 (-1.85%)
Mutual labels:  reverse-engineering
Apkleaks
Scanning APK file for URIs, endpoints & secrets.
Stars: ✭ 2,707 (+1570.99%)
Mutual labels:  reverse-engineering
Gymnasticon
Make obsolete and/or proprietary exercise bikes work with popular cycling training apps like Zwift, TrainerRoad, Rouvy and more.
Stars: ✭ 155 (-4.32%)
Mutual labels:  reverse-engineering
Binja Retdec
Binary Ninja plugin to decompile binaries using RetDec API
Stars: ✭ 158 (-2.47%)
Mutual labels:  reverse-engineering
Rattle
evm binary static analysis
Stars: ✭ 152 (-6.17%)
Mutual labels:  reverse-engineering
Pikachu Volleyball P2p Online
Pikachu Volleyball peer-to-peer online via WebRTC data channels
Stars: ✭ 160 (-1.23%)
Mutual labels:  reverse-engineering
Legu unpacker 2019
Scripts to unpack APK protected by Legu
Stars: ✭ 150 (-7.41%)
Mutual labels:  reverse-engineering
Degate
Open source software for chip reverse engineering.
Stars: ✭ 156 (-3.7%)
Mutual labels:  reverse-engineering
Anno1800 Mod Loader
The one and only mod loader for Anno 1800, supports loading of unpacked RDA files, XML merging and Python mods.
Stars: ✭ 161 (-0.62%)
Mutual labels:  reverse-engineering
Frida Ios Dump
pull decrypted ipa from jailbreak device
Stars: ✭ 2,223 (+1272.22%)
Mutual labels:  reverse-engineering
Js Reverse
JS逆向研究
Stars: ✭ 159 (-1.85%)
Mutual labels:  reverse-engineering

iPhone backup tools

Build Status npm license

Are you storing unencrypted iPhone backups on your personal computer? With very little effort, we can dump all the saved messages from the backup, as well as notes, photo locations, and other data.

Check out my recently updated post about my work on backups here: Reverse Engineering the iOS Backup

This tool is also still fairly experimental, so use at your own risk! Even though the tool opens the backup files as read-only, you should still make a copy of your backups before using this if they are important.

Currently works on macOS, not tested extensively on windows but should function properly. Please flag any issues!

Documentation

This readme is intended to be an overview of features. Please read the wiki for more up-to-date and in-depth examples, and examples of how to make and use reports.

iOS Support

iOS Support depends on the individual reporting types and which files are specifically present inside of the backup. When a report type is not supported, an error message is outputted to the terminal. Some reports, will output an error message if files that are required are not present in the backup.

Reports List

the full report list is available on the wiki

Installing (as a module)

npm i ibackuptool --save

You can then import the module to run reports and get javascript objects as results:

const bt = require('ibackuptool')

// Call the backups.list report.
bt.run('backups.list')
  .then(backups => {
    // Gives you a list of backups.
    console.log(backups)
  })

Installing (as a global command line tool)

Prerequisites: nodejs and npm. It's highly recommended using nvm to install node/npm, as it makes it easier to install globally.

# Install directly from NPM
npm i -g ibackuptool

If you do not have permission to install globally, you can try something like this to change your NPM prefix and add it into your $PATH.

CLI Quickstart

# List all the backups on the system
ibackuptool -l 

# I'm using "0c1bc52c50016933679b0980ccff3680e5831162" as a placeholder.
# The list of backups contains the different UDIDs in the first column.
UDID="0c1bc52c50016933679b0980ccff3680e5831162"

# Run ibackuptool --help to get a list of reports that are available
ibackuptool -b $UDID --report '$TYPE'

Terminal Permissions (macOS)

If you receive an error when trying to list backups, then it is possible Terminal does not have permission to access the folder where backups are stored. Read the error message for the location, otherwise try to just list the backups manually:

# List all backups manually (macOS)
ls "/Users/$(whoami)/Library/Application Support/MobileSync/Backup"

You will see ls: Operation not permitted and know that Terminal does not have permission. Fix by allowing Terminal in Full Disk Access under Security & Privacy. First, close Terminal, and then:

System Preferences -> Security & Privacy -> Privacy -> Full Disk Access -> + -> tick Terminal

Restart Terminal and try again.

Multiple-Reporting

You can also provide a comma separated list of reports to generate. Additionally, there is a special all report type which will run all available reports. This is best paired with the -o option for saving to disk and the -f option for selecting a format such as CSV, or JSON.

# Run all phone reports and wifi report.
ibackuptool -b $UDID --report 'phone.*,system.wifi'

# Report all possible
ibackuptool -b $UDID --report all

Reporting formats

iBackupTool now supports multiple kinds of data export, which can be selected using the -f flag.

  • table - Selected data columns in an ascii table
  • json - Selected data columns for display (same data as table)
  • csv - CSV file containing selected columns (same data as table)

Additionally, there are more comprehensive export functions that will export ALL the data collected, and keep original formatting and columns:

  • raw-csv - Full-data CSV export from each of the tables.
  • raw, raw-json - Full-data JSON export from each of the tables. This output can be quite large.

Joined Reports

Additionally, for the json and raw-json types, there's a --join-reports flag which will merge all of the data into a single JSON file, where the top level object has a key for each report type that is selected.

# Generate both wifi and calls reports, joined as JSON
ibackuptool -b $UDID -r systme.wifi,phone.calls -f json --join-reports

Output to disk

the -o <path> (--output <path>option specifies a folder to export reports to. If the directory does not exist, it will be created. For joined JSON reports, a single json file is exported instead of multiple files in a directory.

# Export wifi, calls, voicemail as CSV files to disk in a folder named "exported/"
ibackuptool -b $UDID --report system.wifi,phone.calls,phone.voicemail -f csv -o exported

Extracting files

the --extract <path> parameter paired with the backup.files report will extract all files in a backup.

To limit which files are extracted, pass one or more filters via --filter <filter>. Each filter must match for the file to be included.

Regular expression filters can be passed by --regex-filter <filter>.

# Export all JPEG photos onto "~/Desktop/Photos"
ibackuptool -b $UDID -r backup.files --extract ~/Desktop/Photos --filter DCIM --regex-filter '\.(jpg|JPG|jpeg|JPEG)$'

Running Tests

first, install tap

next, run npm test.

Important!

You should make a backup of the backups you look at using this tool, even though they are opened as read-only, you should still do that do you don't accidentally do something to lose data.

Contributing

See Contributing.md

TODO

See Roadmap

Legal

Copyright © 2017-2019 Richard Infante.

Available under the MIT License.

DISCLAIMER: This tool enables the extraction of personal information from iPhone backups located on a computer drive. The tool is for testing purposes and should ONLY be used on iPhone backups where the owner's consent has been given. Do not use this tool for illegal purposes, ever.

The project contributors and Richard Infante will not be held responsible in the event any criminal charges be brought against any individuals misusing this tool and/or the information contained within, to break the law.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].