iOS逆向之手動重簽名App
準備工作
- 非越獄的iPhone手機
- 用PP助手下載下傳: 微信6.6.5(越獄應用)
步驟
- 解壓微信-6.6.5(越獄應用).ipa,直接用系統的解壓工具就可以,ipa實際上就是zip包;
- 找到Payload檔案夾下的Wechat.app
- 在終端中檢視微信6.6.5(越獄應用)的簽名資訊
看圖中紅框之中的資訊,可以知道該應用是沒有簽名資訊的,用Xcode是安裝不了的。$codesign -vv -d WeChat.app
- 檢視本機所有證書(重簽名要用到)
$security find-identity -v -p codesigning
- 檢視可執行檔案的加密資訊,在WeChat.app顯示包内容的路徑下使用終端,可以看到越獄應用是沒有加密的(cypptid 0)
$otool -l WeChat | grep crypt
6.對微信6.6.5(越獄應用)進行簽名
微信需要注意的地方: WeChat.app檔案夾内Plugins檔案夾裡的檔案簽名不了,直接删除,Watch檔案也一樣不能簽名,直接删除
以上是微信需要注意的地方,其他app可能有這些檔案夾也可能沒有,有的話也需要删除
重簽名:
- 幹掉插件Plugins檔案夾裡面的内容
- Watch 直接幹掉
-
對 Frameworks 進行簽名(每個framework都要簽名)
codesign -fs “iPhone Developer: WinJayQ (6ZBFDG73L)” mars.framework
$codesign -fs “證書” 需要簽名的檔案
iPhone Developer: WinJayQ (6ZBFDG73L)是你的開發證書
- 給可執行檔案執行權限: chmod +x WeChat
-
拷貝描述檔案
怎麼擷取描述檔案
建立一個工程001–Demo,選擇開發者賬号,選擇真機,編譯成功,然後在001–Demo.app右擊show in finder
顯示包内容
可以看到embedded.mobileprovision描述檔案,将此描述檔案拷貝到WeChat.app檔案夾中
6. 修改info.plist 的Bundle ID
将001–Demo的Bundle ID拷貝過來,替換info.plist的com.tencent.xin
7. 生成plist的權限檔案
在WeChat.app檔案夾下,已經有了描述檔案,檢視并找到權限資訊:
security cms -D -i embedded.mobileprovision
上圖就是權限資訊,将其拷貝,生成一個plist檔案,随便取名,比如en.plist,将en.plist檔案放入與WeChat.app同級的目錄下
-
簽名整個APP(cd到WeChat.app上一級目錄Payload)
$codesign -fs “iPhone Developer: WinJayQ (6ZBFDG73L)” –no-strict –entitlements=en.plist WeChat.app
en.plist就是權限檔案
- 簽名成功後,就可以打包為WeChat.ipa(其實就是一個zip)
$zip -ry WeChat.ipa Payload
- 通過Xcode->Window->Devices and Simulators就可以安裝了。
至此,你的手機就安裝好重簽名之後的微信,加上正版的微信,你的手機上就有兩個微信了。同理,安裝7,8個微信都不在話下。