iOS逆向開發(fā)-砸殼

我們知道AppStore的APP都是經過Store加密的,我們想要對其進行一些逆向破解,必須先砸掉這層殼,主要介紹一下怎樣用dumpdecrypted砸殼。

  1. 下載并編譯
    從這里下載壓縮包,然后解壓,會得到 dumpdecrypted-master 文件夾,用終端命令行進入該文件夾執(zhí)行make命令進行編譯:
    編譯
    然后會得到我們需要的 dumpdecrypted.dylib 庫文件。
    這里有些坑,但是我沒踩到,如果遇到編譯過程中有問題的童鞋,可以看看這個他踩的坑。
  2. 準備
    接下來我們要找到要砸的App,然后把動態(tài)庫加進去,為我們最后砸殼做好充分準備。這里我以微信示例。
    首先我們要知道兩個路徑:
    一個是微信App可執(zhí)行文件的存放路徑,否則我們砸什么呢。
    一個是微信App的沙盒路徑,我們需要把動態(tài)庫放置到沙盒路徑下才能保證動態(tài)庫能正常運行。
  • 尋找可執(zhí)行文件路徑
    首先把你的微信先跑起來,切到前臺
    然后用ssh登陸到你的手機上
    ssh root@yourPhoneIP
    執(zhí)行ps命令,查看當前跑著的進程(如果你的iphone執(zhí)行不了ps命令,去cydia安裝adv-cmds軟件包就好了)
    ps -e
    然后在眾多進程中找到我們要找的微信,顯示的就是他的可執(zhí)行文件路徑,記下來

    微信

  • 用Cycript尋找沙盒
    Cycript不多介紹,第一次用的話可以從這里看一下基本用法。
    執(zhí)行命令行
    cycript -p WeChat
    cy#[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0]
    #"file:///var/mobile/Containers/Data/Application/CAD8A685-F1F3-42D8-AB7E-FF18767D7A30/Documents/"
    就找到了微信的沙盒目錄。記錄下來。

  • 把動態(tài)庫放到沙盒Document目錄下
    現在dumpdecrypted.dylib還在我們的電腦上,我們需要把他移到微信沙盒Document下。
    新打開一個終端并且cd到dumpdecrypted.dylib所在的目錄下,執(zhí)行命令行:
    scp dumpdecrypted.dylib root@yourPhoneIP:/var/mobile/Containers/Data/Application/CAD8A685-F1F3-42D8-AB7E-FF18767D7A30/Documents/dumpdecrypted.dylib
    后面的路徑就是你之前查到的沙盒路徑,別無腦把我這里的復制上去了。
    當然你也可以用PP助手這些工具軟件直接把dumpdecrypted.dylib拖到微信的沙盒里。

  1. 砸砸砸
    回到之前ssh在你iphone上的終端,先"ctrl + D"退出cycript, cd到微信的沙盒Document下:
    cd /var/mobile/Containers/Data/Application/CAD8A685-F1F3-42D8-AB7E-FF18767D7A30/Documents/
    執(zhí)行砸殼,目標路徑就是之前查到的微信可執(zhí)行文件路徑:
    DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/5F7F9D80-7EF9-4DEE-82B1-51D028E2752B/WeChat.app/WeChat
    當看到 WeChat.decrypted ,大功告成!


    砸殼

    之后隨便用PP助手之類的工具,直接從微信沙盒把WeChat.decrypted拿出來,就可以用于之后的class-dump之類的了。

     class-dump -H 需要導出的框架路徑 -o 導出的頭文件存放路徑    
    

Tip:關于 dumpdecrypted.dylib 要放在沙盒Document目錄下。 如果不放在沙盒下執(zhí)行,會直接報錯如下:
dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found. Did find:
dumpdecrypted.dylib: stat() failed with errno=1
Trace/BPT trap: 5
來自http://bbs.iosre.com/的一段話:

我們都知道,StoreApp對沙盒以外的絕大多數目錄沒有寫權限。dumpdecrypted.dylib要寫一個decrypted文件,但它是運行在StoreApp中的,與StoreApp的權限相同,那么它的寫操作就必須發(fā)生在StoreApp擁有寫權限的路徑下才能成功。StoreApp一定是能寫入其Documents目錄的,因此我們在Documents目錄下使用dumpdecrypted.dylib時,保證它能在當前目錄下寫一個decrypted文件,這就是把dumpdecrypted.dylib拷貝到Documents目錄下操作的原因。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 前言 本人小白一個,帶著興趣學習反編譯,什么都是爬博客新學習,寫此博客只為方便記憶,當然如果能給讀者帶來收獲那就更...
    孔凡伍閱讀 1,258評論 0 0
  • 逆向工具集的安裝和使用 iOS 逆向工程的工具分類 檢查工具如:Reveal(界面分析工具)、tcpdump(抓包...
    Yochi閱讀 6,132評論 1 5
  • 首先得準備一部已經越獄過的iPhone,并且安裝好OpenSSH和cycript插件 步驟: 下載 https:/...
    gmfx閱讀 1,159評論 1 1
  • 文章砸殼使用到了ssh連接手機,Cycript注入進程查看應用的一些路勁,以及越獄的手機,所以在開始對應用進行砸殼...
    James_Gong閱讀 6,730評論 0 3
  • 文字是奇妙的,它可以有形,也可以無形。 它可以開心,也可以不開心。它源于生活,又高于生活。 在生活中,常常遇到詞不...
    小小毅閱讀 851評論 2 1

友情鏈接更多精彩內容