2013-11-18 14:18:37 +00:00
|
|
|
iosfu
|
|
|
|
=====
|
|
|
|
|
|
|
|
iOS forensics utility
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
## Local environment setup
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
1. Create a local python2 environment and install requirements:
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
```
|
|
|
|
virtualenv -p python2 .venv
|
|
|
|
source .venv/bin/activate
|
|
|
|
pip install -r requirements.txt
|
|
|
|
```
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
2. Create a `_backups` folder on the project path and place there your iOS backups
|
|
|
|
> You can override this by editing the `BACKUPS_PATH` variable in `iosfu/conf.py`.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
3. Run the interface using `iosfu_gui`:
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
```
|
|
|
|
./iosfu_gui
|
|
|
|
```
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
Server should be listening in http://127.0.0.1:5000/ and you should see a backup selector in the top right corner.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
## How it works
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
This application is mainly composed by plugins that render GUI elements.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
The plugin contains the logic of what it should do, and in a `gui` module the UI is defined via Panels and Sections.
|
|
|
|
- Sections are the navigation elements rendered on the header of the site.
|
|
|
|
- Panels are the content for the plugin.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
The plugins should be self served, with all the logic related to the work they do inside its package.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
For a basic example, take a look [at the device info plugin](iosfu/plugin/device_info)
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
- `gui.py` contains the GUI information
|
|
|
|
- `plugin.py` contains the plugin logic, masked in a *pseudo magic method* called `__do__`.
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
## GUI example
|
2014-01-02 21:38:42 +00:00
|
|
|
|
2018-05-08 06:32:36 +00:00
|
|
|
[![images/poc1.png](images/poc1.png)](images/poc1.png)
|
|
|
|
|
|
|
|
## Disclaimer
|
|
|
|
|
|
|
|
> ⚠️ Keep in mind that this is an old project I did for research purposes and its not maintained.
|
|
|
|
|
|
|
|
The usual disclaimer:
|
|
|
|
|
|
|
|
```
|
|
|
|
NO WARRANTY
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY.
|
|
|
|
IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
|
|
|
|
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
|
|
FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
|
|
|
PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
|
|
|
|
NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
|
|
|
|
|
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW THE AUTHOR WILL BE LIABLE TO YOU FOR DAMAGES,
|
|
|
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
|
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
|
|
|
|
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE
|
|
|
|
OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF THE AUTHOR HAS BEEN ADVISED
|
|
|
|
OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
|
|
```
|