{"id":13530910,"url":"https://github.com/iSECPartners/Introspy-iOS","last_synced_at":"2025-04-01T19:30:49.577Z","repository":{"id":5696771,"uuid":"6907295","full_name":"iSECPartners/Introspy-iOS","owner":"iSECPartners","description":"Security profiling for blackbox iOS","archived":false,"fork":false,"pushed_at":"2016-10-26T19:03:16.000Z","size":1565,"stargazers_count":736,"open_issues_count":20,"forks_count":179,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-03-24T02:31:40.713Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://isecpartners.github.io/Introspy-iOS/","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iSECPartners.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-28T18:32:29.000Z","updated_at":"2025-03-12T12:33:02.000Z","dependencies_parsed_at":"2022-07-14T08:31:21.307Z","dependency_job_id":null,"html_url":"https://github.com/iSECPartners/Introspy-iOS","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iSECPartners%2FIntrospy-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iSECPartners%2FIntrospy-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iSECPartners%2FIntrospy-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iSECPartners%2FIntrospy-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iSECPartners","download_url":"https://codeload.github.com/iSECPartners/Introspy-iOS/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246700102,"owners_count":20819825,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T07:00:57.529Z","updated_at":"2025-04-01T19:30:46.383Z","avatar_url":"https://github.com/iSECPartners.png","language":"Objective-C","funding_links":[],"categories":["Dynamic Analysis","Objective-C","Awesome Mobile Application Penetration Testing  ![awesome](https://awesome.re/badge.svg)"],"sub_categories":["iOS Application Penetration Testing"],"readme":"Introspy-iOS\n============\n\nBlackbox tool to help understand what an iOS application is doing at runtime\nand assist in the identification of potential security issues.\n\nSee http://isecpartners.github.io/Introspy-iOS/ for a quick introduction.\n\n\nDescription\n-----------\n\nThis is the repository for the Introspy-iOS tracer.\n\nThe tracer can be installed on a jailbroken device to hook and log\nsecurity-sensitive iOS APIs called by applications running on the device. The\ntool records details of relevant API calls, including arguments and return\nvalues and persists them in a database.\nAdditionally, the calls are also sent to the Console for real-time analysis.\n\nThe database can then be fed to Introspy-Analyzer, a Python script to generate\nHTML reports containing the list of logged function calls as well as a list of\npotential vulnerabilities affecting the application. Introspy-Analyzer is hosted\non a separate repository:\nhttps://github.com/iSECPartners/Introspy-Analyzer\n\n\nInstallation\n------------\n\nUsers should first download the latest pre-compiled Debian package available\nin the release section of the project page at:\nhttps://github.com/integrity-sa/Introspy-iOS/releases or for older releases at \nhttps://github.com/iSECPartners/Introspy-iOS/releases\n\n### Dependencies\n\nThe tracer will only run on a jailbroken device. Using Cydia, make\nsure the following packages are installed:\n- dpkg\n- Cydia Substrate\n- PreferenceLoader\n- Applist\n\n### How to install\n\nDownload and copy the Debian package to the device; install it:\n\n    scp \u003cpackage.deb\u003e root@\u003cdevice_ip\u003e:~\n    ssh root@\u003cdevice_ip\u003e\n    dpkg -i \u003cpackage.deb\u003e\n\nRespring the device:\n\n    killall -HUP SpringBoard\n\nThere should be two new menus in the device's Settings. The Apps menu allows you\nto select which applications will be profiled while the Settings menu defines\nwhich API groups are being hooked.\n\nFinally, kill and restart the App you want to monitor.\n\n### How to uninstall\n\n    dpkg -r com.isecpartners.introspy\n\n\nGenerating HTML Reports\n-----------------------\n\nThe tracer will store data about API calls made by applications in a database\nstored on the device (actually one in each application's folder). This database\ncan be fed to a Python script call Introspy-Analyzer in order to generate HTML\nreports that make it a lot easier to review the data collected by the tracer.\nThe script will also analyze and flag dangerous API calls in order to facilitate\nthe process of identifying vulnerabilities within iOS applications.\n\nIntrospy-Analyzer is hosted on a separate repository:\nhttps://github.com/iSECPartners/Introspy-Analyzer\n\n\nBuilding Introspy-iOS\n---------------------\n\nMost users should just download and install the pre-compiled Debian package.\nHowever, if you want to modify the library's functionality you will have to\nbuild the Debian package yourself.\n\nThe build requires the Theos suite, available at https://github.com/theos/theos.\nFor general instructions on how to install Theos, see\nhttps://github.com/theos/theos/wiki/Installation.\n\nYou must also set the $THEOS variable in your environment, and export it so\nmake will see its value when you run it\n\n    export THEOS=/absolute/path/to/theos\n    export PATH=$THEOS/bin:$PATH\n\nThen, the package can be built using:\n\n    make package\n\nOnce you've successfully created the debian package, you can use Theos to\nautomatically install the package and re-spring the device by specifying the\ndevice's IP address in the THEOS_DEVICE_IP environment variable:\n\n    export THEOS_DEVICE_IP=192.168.1.127\n    make install\n\n\nLicense\n-------\n\nSee ./LICENSE.\n\nAuthors\n-------\n\n* Tom Daniels\n* Alban Diquet\n\nMaintainers\n-------\n\n* Herman Duarte\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FiSECPartners%2FIntrospy-iOS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FiSECPartners%2FIntrospy-iOS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FiSECPartners%2FIntrospy-iOS/lists"}