diff --git a/.gitignore b/.gitignore index 46b3c91..4d653a3 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ develop-eggs lib lib64 __pycache__ +.venv # Installer logs pip-log.txt diff --git a/README.md b/README.md index 1d1327c..8cb9697 100644 --- a/README.md +++ b/README.md @@ -3,28 +3,66 @@ iosfu iOS forensics utility +## Local environment setup -## Libs +1. Create a local python2 environment and install requirements: -- MBDB - Todo -- Global PLIST - Todo +``` +virtualenv -p python2 .venv +source .venv/bin/activate +pip install -r requirements.txt +``` -## Plugin syntax +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`. -See iosfu.plugin.device_info.plugin:DeviceInfoPlugin +3. Run the interface using `iosfu_gui`: +``` +./iosfu_gui +``` -## GUI syntax +Server should be listening in http://127.0.0.1:5000/ and you should see a backup selector in the top right corner. -See iosfu.plugin.device_info.gui +## How it works +This application is mainly composed by plugins that render GUI elements. -## Documentation +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. +The plugins should be self served, with all the logic related to the work they do inside its package. -On the works. +For a basic example, take a look [at the device info plugin](iosfu/plugin/device_info) +- `gui.py` contains the GUI information +- `plugin.py` contains the plugin logic, masked in a *pseudo magic method* called `__do__`. -## GUI on the works +## GUI example -![gui](http://cdn.fmartingr.com/github/iosfu/poc1.png) +[![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. +``` diff --git a/images/poc1.png b/images/poc1.png new file mode 100644 index 0000000..bea32aa Binary files /dev/null and b/images/poc1.png differ