dumpdecrypted 砸殼記

準(zhǔn)備

首先你要有一臺(tái)越獄機(jī),純屬?gòu)U話!其次確認(rèn)越獄機(jī)上的 SSH、SCP、Cycript 工具可用,接下來就可以開啟奇妙的砸殼之旅了!

將砸殼進(jìn)行到底

編譯簽名 dumpdecrypted

  1. 下載 dumpdecripted 源碼
    MYMacBook:Desktop jiaxw$ git clone git@github.com:stefanesser/dumpdecrypted.git
    
  2. cd 到 dumpdecripted 目錄,輸入 make 直接編譯
    MYMacBook:Desktop jiaxw$ cd dumpdecrypted/
    MYMacBook:dumpdecrypted jiaxw$ make
    
    友情提示:許多資料說 Xcode SDK 版本要與越獄手機(jī) iOS SDK 版本一致。筆者測(cè)試,不一致編譯的 dumpdecripted.dylib 也可用。如不能使用,請(qǐng)下載與 iOS 系統(tǒng)版本對(duì)應(yīng)的 Xcode,并修改 Makefile 中的 SDK 路徑,重新編譯。修改后的 Makefile 如下:
    GCC_BIN=`xcrun --sdk iphoneos --find gcc`
    GCC_UNIVERSAL=$(GCC_BASE) -arch armv7 -arch armv7s -arch arm64
    SDK=/the root path of your Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk
    
  3. 為編譯生成的 dumpdecrypted.dylib 簽名
    曾記得在 iOS 9 砸殼時(shí),dumpdecrypted.dylib 沒簽名也可用。在 iOS 10時(shí),提示以下錯(cuò)誤:
    dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found.  Did find:
    dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
    
    1. 輸入下面命令,獲取開發(fā)者賬號(hào)信息
      MYMacBook:dumpdecrypted jiaxw$ security find-identity -v -p codesigning
      1) 58E55DB5A7A35CE9ECF6601FE6C6166FDBB7555C "iPhone Developer: xxxxxx@163.com (xxxxxxxxxx)"
      
    2. 使用 codesigndumpdecrypted.dylib 簽名
      MYMacBook:dumpdecrypted jiaxw$ codesign --force --verify --verbose --sign "iPhone Developer: iPhone Developer: xxxxxx@163.com (xxxxxxxxxx)" dumpdecrypted.dylib
      dumpdecrypted.dylib: signed Mach-O universal (armv7 armv7s arm64) [dumpdecrypted]
      

砸殼

  1. 使用 scp 工具,將簽名后的 dumpdecrypted.dylib 傳輸?shù)皆姜z手機(jī)
    MYMacBook:dumpdecrypted jiaxw$ scp dumpdecrypted.dylib root@192.168.31.87:~/
    
  2. 使用 ssh 登錄連接到越獄手機(jī)
    MYMacBook:dumpdecrypted jiaxw$ ssh root@192.168.31.87
    
  3. 啟動(dòng)要砸殼的 App,以微信為例,查找其安裝路徑,后面砸殼時(shí)要輸入此路徑。如若不知道啟動(dòng) App 的進(jìn)程名,輸入 ps -e 即可
    iPhone6s:~ root# ps -e | grep WeChat
    4308 ??         0:00.58 /var/containers/Bundle/Application/6F92D215-8F9B-470E-93DB-10EFA9D72455/WeChat.app/WeChat
    
  4. 將 cycript 注入微信進(jìn)程,獲取微信沙盒 Documents 路徑
    iPhone6s:~ root# cycript -p WeChat
    cy# [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
    #"file:///var/mobile/Containers/Data/Application/3B83C7FD-3D73-4FEF-B33E-51CE76685E53/Documents/"
    
  5. 輸入 Control+D,退出 cycript
  6. cd 到上面獲取的 Documents 目錄
    root# cd /var/mobile/Containers/Data/Application/3B83C7FD-3D73-4FEF-B33E-51CE76685E53/Documents/
    
  7. dumpdecrypted.dylib 拷貝到 Documents 目錄
    cp ~/dumpdecrypted.dylib ./
    
  8. 萬事俱備,只待砸殼,執(zhí)行下面命令
    root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/6F92D215-8F9B-470E-93DB-10EFA9D72455/WeChat.app/WeChat
    
  9. 上述命令運(yùn)行完畢后,輸入 ls 查看當(dāng)前目錄文件,WeChat.decrypted 即為砸殼后的二進(jìn)制文件

總結(jié)

本文主要記述了使用 dumpdecrypted 砸殼過程。除了 dumpdecrypted,常用的砸殼工具,還有大名鼎鼎的 ClutchAloneMonkey大神的 frida-ios-dump。其中 Clutch 簡(jiǎn)單易用,但不甚穩(wěn)定,對(duì)一些較大的 App 砸殼時(shí)常失敗,比如微信。frida-ios-dump 穩(wěn)定可靠,操作極其方便,砸殼后直接將 ipa 文件傳輸電腦端,但環(huán)境配置起來比較復(fù)雜,手機(jī)端需要安裝frida-server,有三十多兆,占用不少系統(tǒng)盤資源,一些低端機(jī)比較吃緊。dumpdecrypted 使用也很穩(wěn)定,不需要復(fù)雜的環(huán)境配置,但 dumpdecrypted 砸殼后只能獲取解密的二進(jìn)制執(zhí)行文件,復(fù)制一份原有 app 包,用解密后的二進(jìn)制文件替換原有文件,可以獲取完整解密 app包??傊?code>dumpdecrypted 操作起來相較其他兩款砸殼工具復(fù)雜很多,但在這復(fù)雜的過程中我們能學(xué)到更多東西!

最后編輯于
?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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