iOS逆向之手動重簽名App


iOS逆向之手動重簽名App

准備工作

  • 非越獄的iPhone手機
  • 用PP助手下載: 微信6.6.5(越獄應用)

步驟

  1. 解壓微信-6.6.5(越獄應用).ipa,直接用系統的解壓工具就可以,ipa實際上就是zip包;

  2. 找到Payload文件夾下的Wechat.app

  3. 在終端中查看微信6.6.5(越獄應用)的簽名信息
    $codesign -vv -d WeChat.app
    image.png
    看圖中紅框之中的信息,可以知道該應用是沒有簽名信息的,用Xcode是安裝不了的。

  4. 查看本機所有證書(重簽名要用到)
    $security find-identity -v -p codesigning
    image.png

  5. 查看可執行文件的加密信息,在WeChat.app顯示包內容的路徑下使用終端,可以看到越獄應用是沒有加密的(cypptid 0)
    $otool -l WeChat | grep crypt
    image.png

6.對微信6.6.5(越獄應用)進行簽名

微信需要注意的地方: WeChat.app文件夾內Plugins文件夾里的文件簽名不了,直接刪除,Watch文件也一樣不能簽名,直接刪除
以上是微信需要注意的地方,其他app可能有這些文件夾也可能沒有,有的話也需要刪除

重簽名:

  1. 干掉插件Plugins文件夾里面的內容
  2. Watch 直接干掉
  3. 對 Frameworks 進行簽名(每個framework都要簽名)
    $codesign -fs "iPhone Developer: WinJayQ (6ZBFDG73L)" mars.framework

$codesign -fs "證書" 需要簽名的文件
iPhone Developer: WinJayQ (6ZBFDG73L)是你的開發證書

  1. 給可執行文件執行權限: chmod +x WeChat
  2. 拷貝描述文件

怎么獲取描述文件
新建一個工程001--Demo,選擇開發者賬號,選擇真機,編譯成功,然后在001--Demo.app右擊show in finder
image.png

顯示包內容
image.png
可以看到embedded.mobileprovision描述文件,將此描述文件拷貝到WeChat.app文件夾中

  1. 修改info.plist 的Bundle ID

將001--Demo的Bundle ID拷貝過來,替換info.plist的com.tencent.xin

  1. 生成plist的權限文件

在WeChat.app文件夾下,已經有了描述文件,查看並找到權限信息:
security cms -D -i embedded.mobileprovision
image.png
上圖就是權限信息,將其拷貝,生成一個plist文件,隨便取名,比如en.plist,將en.plist文件放入與WeChat.app同級的目錄下
image.png

  1. 簽名整個APP(cd到WeChat.app上一級目錄Payload)
    $codesign -fs "iPhone Developer: WinJayQ (6ZBFDG73L)" --no-strict --entitlements=en.plist WeChat.app
    en.plist就是權限文件
  2. 簽名成功后,就可以打包為WeChat.ipa(其實就是一個zip)
    $zip -ry WeChat.ipa Payload
  3. 通過Xcode->Window->Devices and Simulators就可以安裝了。

至此,你的手機就安裝好重簽名之后的微信,加上正版的微信,你的手機上就有兩個微信了。同理,安裝7,8個微信都不在話下。
image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM