簽名前言:
1.獲取ipa包的渠道
a.助手下載,各種助手滑凉;例:PP助手(非加密的)
b.從越獄手機(jī)里面拷貝!(加密和非加密都有)
c.iTurns下載,要求iTurns版本 12.6.3以下耕捞,可以下載ipa包(官方包,加密了的)
iOS包烫幕,簽名俺抽,核心利用的工具是 codesign,利用Xcode簽名较曼,其實(shí)核心也是用的codesign磷斧。
手里有一個(gè)微信-6.7.3(越獄應(yīng)用) 的壓縮包(密碼:02xc),
一:解壓這個(gè)壓縮包:
二:打開命令行工具,CD到關(guān)鍵目錄:
三:根據(jù)不同命令,查看.app文件:
我們利用codesign弛饭,查看一下該包的信息:
$ codesign -d WeChat.app 查看可執(zhí)行文件路徑;
$ codesign -d -v WeChat.app 查看更詳細(xì)的信息;
$codesign -d -vv WeChat.app 查看更詳細(xì)的信息,包含簽名信息冕末;
附:相關(guān)命令合集
$security find-identity -v -p codesigning 列出鑰匙串里可簽名的證書
$Codesign –fs “證書串” 文件名 強(qiáng)制替換簽名
$Chmod +x 可執(zhí)行文件 給文件添加權(quán)限
$security cms -D -i ../embedded.mobileprovision 查看描述文件
$codesign -fs “證書串” --no-strict --entitlements=權(quán)限文件.plist APP包
$Zip –ry 輸出文件 輸入文件 將輸入文件壓縮為輸出文件
如何重新簽名
一。需要我們自己的證書
$security find-identity -v -p codesigning 查看我們鑰匙串里面的證書
二孩哑。cd到包目錄下 $cd WeChat.app
三栓霜。顯示包內(nèi)容,看看目錄結(jié)構(gòu)
四横蜒。利用otool查看核心文件,并在桌面生成詳情文件123.txt胳蛮,$otool -l Wechat > ~/Desktop/123.txt
東西太多,我們只看核心的東西丛晌。
因?yàn)槲覀兊膲嚎s包是破解包仅炊,所以加密是0,正版的包澎蛛,加密ID是1
也可以通過(guò)$otool -l Wechat | grep crypt 篩選關(guān)鍵詞
解答:通過(guò)$file Wechat
因?yàn)榘瑑煞N架構(gòu),也叫胖二進(jìn)制文件谋逻,可以拆分呆馁。
簽名關(guān)鍵:
一:干掉不能簽名的東西
二:需要簽名的列表:
1:Frameworks
a.Frameworks文件里面的所有文件
b.CD到Frameworks文件夾下面,
c.之前通過(guò)命令:security find-identity -v -p codesigning 獲取到的本地列表毁兆,取一個(gè)可用的證書浙滤,
我們這里取了圖片上的例子:
d.利用命令:$codesign -fs "上一條命令獲取的字符串" ConfSDK.framework
(例子:上一條命令獲取的字符串:" iPhone Distribution: Shenzhen Tencent Network Technology Co., Ltd. (F8RSBY6WWW) ”)
簽名成功。依次簽Frameworks文件夾里面的所有文件
ConfSDK.framework
GPUImage.framework
mars.framework
....
2:描述文件
問(wèn)題气堕,描述文件哪里來(lái):打開Xcode纺腊,我們簽名的證書對(duì)應(yīng)的項(xiàng)目最好。
a.拷貝簽名對(duì)應(yīng)的描述文件:
拿到這個(gè)描述文件茎芭,拷貝到
b.修改需要簽名文件夾里面的Info.plist文件揖膜,將之前Xcode里面的BundleID替換到Info.plist文件對(duì)應(yīng)的地方:
c.描述文件里面,有一個(gè)重要的字典梅桩,需要我們拷貝出來(lái):
1.命令行壹粟,CD到下圖路徑(描述文件的地址,也就是Frameworks文件夾同級(jí))
2.$ security cms -D -i embedded.mobileprovision 查看描述文件
<key>Entitlements</key>
<dict>
<key>application-identifier</key>
<string>F8RSBY62RW.com.szlz.zhangshangCF</string>
<key>keychain-access-groups</key>
<array>
<string>F8RSBY62RW.*</string>
</array>
<key>get-task-allow</key>
<true/>
<key>com.apple.developer.team-identifier</key>
<string>F8RSBY62RW</string>
</dict>
3.新建一個(gè)plist文件宿百,上述字典的plist文件煮寡,可以通過(guò)Xcode創(chuàng)建,文件名必須是entitlements.plist
這個(gè)entitlements.plist是重要文件,我們就是用它來(lái)簽名整個(gè)app包犀呼,
4.重簽名來(lái)了。
a. cd到entitlements.plist和WeChat.app 同在目錄薇组;
b. $codesign -fs "獲取的證書字符串" --no-strict --entitlements=entitlements.plist WeChat.app
c.驗(yàn)證:$codesign -d -vv WeChat.app
d.WeChat.app轉(zhuǎn)換成ipa文件,app文件無(wú)法直接安裝到手機(jī)律胀,我們手機(jī)安裝需要的是ipa,先將entitlements.plist 文件和.app拆分宋光,
通過(guò)命令$ zip -ry WeChat.ipa Payload
ipa包到手貌矿。任務(wù)完成!