天天看點

iOS逆向之手動重簽名AppiOS逆向之手動重簽名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

    iOS逆向之手動重簽名AppiOS逆向之手動重簽名App
    看圖中紅框之中的資訊,可以知道該應用是沒有簽名資訊的,用Xcode是安裝不了的。
  4. 檢視本機所有證書(重簽名要用到)

    $security find-identity -v -p codesigning

    iOS逆向之手動重簽名AppiOS逆向之手動重簽名App
  5. 檢視可執行檔案的加密資訊,在WeChat.app顯示包内容的路徑下使用終端,可以看到越獄應用是沒有加密的(cypptid 0)

    $otool -l WeChat | grep crypt

    iOS逆向之手動重簽名AppiOS逆向之手動重簽名App

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)是你的開發證書

  4. 給可執行檔案執行權限: chmod +x WeChat
  5. 拷貝描述檔案

    怎麼擷取描述檔案

    建立一個工程001–Demo,選擇開發者賬号,選擇真機,編譯成功,然後在001–Demo.app右擊show in finder

    iOS逆向之手動重簽名AppiOS逆向之手動重簽名App

顯示包内容

iOS逆向之手動重簽名AppiOS逆向之手動重簽名App

可以看到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

iOS逆向之手動重簽名AppiOS逆向之手動重簽名App

上圖就是權限資訊,将其拷貝,生成一個plist檔案,随便取名,比如en.plist,将en.plist檔案放入與WeChat.app同級的目錄下

iOS逆向之手動重簽名AppiOS逆向之手動重簽名App
  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個微信都不在話下。

iOS逆向之手動重簽名AppiOS逆向之手動重簽名App