1. 程式人生 > >iOS逆向必備絕技之ipa重簽名

iOS逆向必備絕技之ipa重簽名

2018開篇,這回要講的是iOS重簽名,網上重簽名的工具太多了,我試用了一下,都還挺好使。但是,你不知道,我是個喜歡裝逼的人嗎?用工具怎麼夠酷呢?對,裝逼得用終端。接下來的操作都是在終端中進行,開始你的裝逼之旅吧!

一、重簽名準備工作:

  • 找到開發者證書和配置檔案:

列出所有開發者證書檔案:

security find-identity -p codesigning -v

  • 找一個開發環境配置檔案生成entitlements.plist檔案,後面簽名要用到:

security cms -D -i XX.mobileprovision  > profile.
plist /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist cat entitlements.plist
  • 把準備好的開發環境配置檔案複製到XX.app資料夾下:

cp XX.mobileprovision Payload/XX.app/embedded.mobileprovision

  • 修改包Info.plist中的Bundle Identifier與配置檔案中的Bundle Identifier保持一致:

/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier com.XX.XX" Payload/XX.app/Info.plist

  • 移除之前的簽名資料夾:

rm -rf Payload/XX.app/_CodeSignature

二、iOS重簽名:

  • 重簽名framework:

/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist /Payload/XX.app/Frameworks/JSONModel.framework

  • 重簽名app執行檔案:

/usr/bin/codesign --force --sign 84A4B9F1F902462CC33D01E9FF72C1BA04A97653 --entitlements entitlements.plist Payload/XX.app/XX

  • 檢視app簽名信息:

codesign -vv -d Payload/XX.app

注意:重簽名有順序,先把framework和dylib簽名,最後再簽名:XX.app/XX,順序弄錯了,就算簽名成功也可能會安裝失敗!

三、除錯和打包:

ios-deploy -d -b Payload/XX.app

出現如下success字樣,就證明成功了!

過程中如果遇到錯誤提示:“Error 0xe8000067: There was an internal API error. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)”

錯誤原因:可能存在有framework或者dylib未簽名的情況。

解決方案:把app資料夾下面的framework全部簽名。

  • 打包(package):

zip -qry ppdest.ipa Payload

rm -rf Payload/

四、iOS重簽名工具介紹:

五、參考資料地址: