1. 程式人生 > >使用​​IPAPatch免越獄除錯別人的APP

使用​​IPAPatch免越獄除錯別人的APP

現在大家都開始使用MonkeyDev來除錯別人的APP了,但是越牛逼的框架使用起來越繁瑣,畢竟功能跟易用性是呈反比的。但是對於簡單的滲透來說,用IPAPatch還是方便一些。

首先從github上下載IPAPatch,然後解壓縮,發現就是一個iOS的工程檔案,先看一下他的檔案結構:

├── Assets
│   ├── Dylibs
│   ├── Frameworks
│   │   └── RevealServer.framework
│   ├── Resources
│   └── app.ipa
├── IPAPatch
│   ├── IPAPatchBypassAntiDebugging.h
│ ├── IPAPatchBypassAntiDebugging.m │ ├── IPAPatchEntry.h │ ├── IPAPatchEntry.m │ ├── Info.plist │ └── Vendors │ └── fishhook ├── IPAPatch-DummyApp │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Info.plist │ ├── ProjectConfigurationWarning.cpp │ ├── ProjectConfigurationWarning.hpp
│ └── main.m ├── IPAPatch.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ └── xcuserdata │ └── xcuserdata │ └── youssef.xcuserdatad ├── LICENSE ├── README.md ├── Temp │ ├── Payload │ │ └── app-resign.app
│ └── __MACOSX │ └── Payload └── Tools ├── create_ipa.sh ├── options.plist ├── optool ├── patch.sh └── restore-symbol

我們可以看到,在Assets資料夾下,可以放入脫殼的app.ipa,這裡有兩點要注意,首先必須是脫殼的ipa,其次必須重新命名成app.ipa.

Assets資料夾下面的Frameworks資料夾裡,可以放入需要重新打包進APP的framework,這裡我放了RevealServer.framework,是為了用Reveal檢視他的UI結構。

重新打包之後生成的app放在了Temp->Payload資料夾下面。

然後用xcode開啟IPAPatch工程。

工程結構

其實我們需要用到的就是IPAPatchEntry.m檔案,我們主要的hook程式碼就寫在裡面。

在重新打包之前,我們要先改一下IPAPatch-DummyApp的bundleID和證書檔案:

這裡寫圖片描述

證書選擇個人證書就行,bundleID隨便改,只要不跟別人的衝突。

將已經砸殼過得app.ipa放入Assets資料夾中,然後連線上手機,執行一下。。

這個手機選擇也是有講究的,我試過iOS8-iOS11的未越獄手機,發現在iOS11.4.1上會安裝失敗,其他系統會成功,所以最好是找個iOS10或者iOS9的手機測試。

在安裝過程中,如果出現錯誤:
couldn’t be opened because you don’t have permission to view it. Even though i have placed my app decrypted with clutch and named it app.ipa

我的解決方法是進入options.plist檔案(Xcode裡面檔案搜一下),把裡面的RESTORE_SYMBOLS欄位改為NO,然後重新執行就好。