iOS 應(yīng)用重簽名

本文我們將重簽名一個(gè)App,實(shí)現(xiàn)將他人的App安裝到自己手機(jī)上,然后進(jìn)行部分的調(diào)試工作。

需要準(zhǔn)備的資料:

1、安裝PP助手Mac版本。

2、一臺(tái)iPhone手機(jī)。

3、Xcode工具。

1、拔掉連接在電腦上的手機(jī),打開(kāi)PP助手,下載微信越獄包。

下載微信越獄包

2、等到下載完成我們到下載的位置會(huì)看到一個(gè)類(lèi)似于微信-7.0.5(越獄應(yīng)用).ipa的包。

3、右鍵打開(kāi)下載好的微信-7.0.5(越獄應(yīng)用).ipa包,如果您的系統(tǒng)為macOS Catalina(10.15)版本可能會(huì)無(wú)法打開(kāi),我們可以打開(kāi)終端,實(shí)用unzip解壓,然后就能看到微信的包了。

命令行解壓
解壓完成后

3.1、然后我們查看WeChat包內(nèi)容,查看是否有WeChat可執(zhí)行文件。

可執(zhí)行文件

3.2、由于后續(xù)我們要對(duì)微信的包進(jìn)行重簽名,但是插件以及Watch的包我們是無(wú)法進(jìn)行重簽名的,所以我們先刪除了插件以及Watch

插件
Watch

將這兩個(gè)文件刪除。

4、查看一下證書(shū)是否生成成功,個(gè)人證書(shū)就夠用了(我這是最新版的Xcode 11.1,可能界面會(huì)有所差異)。

證書(shū)界面

5、電腦連接上真機(jī),選擇真機(jī),然后將項(xiàng)目運(yùn)行到真機(jī)上面(這一步是為了先將我們的證書(shū)放到真機(jī)上面,為后續(xù)的安裝微信做準(zhǔn)備)。

自主選擇真機(jī)

如果您是最新版的Xcode(但是手機(jī)卻不是iOS 13),運(yùn)行到手機(jī)上可能會(huì)黑屏,這是由于SceneDelegate導(dǎo)致的,這里提供一個(gè)解決辦法,在AppDelegate頭文件里面添加一個(gè)window即可。

解決黑屏問(wèn)題

6、查看一下自己運(yùn)行后的包內(nèi)容,打開(kāi)終端,cd到包的路徑。

查看方式
查看指令
這個(gè)就是我們的簽名證書(shū)

然后我們?cè)俅未_認(rèn)一下證書(shū),查看下電腦上我們所有的支持的證書(shū)

所有證書(shū)

確實(shí)是有我們所想的證書(shū),復(fù)制一下這個(gè)證書(shū)放到備忘錄或者其他地方備用(后續(xù)簽名要用,避免麻煩)。

7、對(duì)Frameworks里面的庫(kù)進(jìn)行重簽名

7.1、打開(kāi)WeChat的包,找到里面的Frameworks,使用終端cd到這個(gè)目錄,我們看到它有這些framework。

包含的framework

7.2、對(duì)framework一個(gè)個(gè)的重簽名

重復(fù)調(diào)用Codesign –fs “證書(shū)串” ?文件名,對(duì)Framework一個(gè)個(gè)的進(jìn)行重簽名(后期會(huì)通過(guò)shell腳本做)。

紅框?yàn)樯弦徊秸业降淖C書(shū)名字

8、對(duì)WeChat文件添加可執(zhí)行權(quán)限(一般會(huì)有可執(zhí)行權(quán)限,加一下保險(xiǎn))。

cd 到上一個(gè)目錄,然后使用chmod +x 為WeChat添加執(zhí)行權(quán)限

添加權(quán)限執(zhí)行

9、微信包里面是沒(méi)有描述文件的,我們需要將我們自己寫(xiě)的工程的描述文件添加到微信包里面,使iPhone認(rèn)為微信是我們自己開(kāi)發(fā)的App,按照第七步找到我們的App包,顯示包內(nèi)容,將下圖的文件復(fù)制到微信的包里面。

自己的描述文件
添加到微信包里

10、修改微信的BundleID

找到微信包里的info文件,修改BundleID為我們自己工程的BundleID。

修改BundleID

11、查看一下我們剛剛得到那個(gè)描述文件

查看命令
查看結(jié)果

????????我們找到查看后的這一部分,其中的dict內(nèi)容是我們要用于對(duì)app重簽名使用的東西,復(fù)制一份備用。

????????在Xcode中創(chuàng)建一個(gè)plist文件,隨便起個(gè)名字就好,右鍵Open As -> Source Code,然后將上面的內(nèi)容復(fù)制進(jìn)去。

步驟
最終結(jié)果

不要復(fù)制多了。

11.2、最好將微信的包和上面生成的文件放到一個(gè)目錄里面,方便后續(xù)操作。

放一起

然后對(duì)微信的包進(jìn)行重簽名:

codesign -fs “證書(shū)串” --no-strict --entitlements=權(quán)限文件.plist APP包

重簽名微信包

12、將微信包安裝到手機(jī)上

步驟一
步驟二

將處理好的微信包拖到上圖2的位置,過(guò)一會(huì)就會(huì)提示是否替換原來(lái)的app,選擇替換,手機(jī)上就會(huì)顯示出來(lái)安裝好的微信了。

安裝完成

信用一下證書(shū),我們就可以正常打開(kāi)我們自己安裝的微信了。

13、選擇debug依附調(diào)試安裝的微信

依附

最終結(jié)果圖示

最終結(jié)果

其中我們可以看到按鈕的Anction,后續(xù)就可以通過(guò)hook技術(shù)對(duì)注冊(cè)或者其他的部分做自己想做的事了。

補(bǔ)充說(shuō)明:

其中的Action為一個(gè)字典,這是Xcode11之后的變更,po地址,然后再po字典的value就好了。

po地址

總結(jié)

? ? ? ? 整個(gè)篇幅下來(lái)實(shí)際上感覺(jué)還是比較麻煩,有個(gè)小細(xì)節(jié)出錯(cuò)可能會(huì)導(dǎo)致不能重簽名不成功,還有兩種相對(duì)簡(jiǎn)單的方式去去除一些比較麻煩的操作,一個(gè)是shell腳本,一個(gè)是直接替換,后續(xù)再更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 在逆向過(guò)程中,當(dāng)我們對(duì)IPA包發(fā)生改動(dòng)時(shí),就需要對(duì)IPA包進(jìn)行重新簽名,才可以重新安裝到我們的iOS設(shè)備中。...
    jackss閱讀 1,011評(píng)論 0 0
  • 一、越獄版應(yīng)用重簽名(正版的需要砸殼,這個(gè)以后介紹) 應(yīng)用重簽名需要以下幾個(gè)步驟: 刪除插件和帶有插件的.app包...
    綠葉竹林閱讀 1,582評(píng)論 0 1
  • 終端命令(相關(guān)的一些指令) ?$security find-identity -v -p codesigning列...
    Devil_Chen閱讀 23,894評(píng)論 1 16
  • 網(wǎng)上關(guān)于簽名的腳本有很多,我找了個(gè)本人覺(jué)得比較好用的腳步iOS_resign_scripts,下載腳步里面有三個(gè)腳...
    涵元閱讀 7,147評(píng)論 16 19
  • 日子在閉關(guān)中煎熬,一個(gè)獨(dú)居的半百女人用自己獨(dú)特的方式走過(guò)一關(guān)又一關(guān),微信朋友圈大家都曬著美食,珠寶,雞湯的...
    湘江橘閱讀 357評(píng)論 0 1

友情鏈接更多精彩內(nèi)容