乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      iOS逆向:微信逆向及動態(tài)庫開發(fā)過程中的坑

       最初九月雪 2017-04-13

       最近對 iOS 逆向很感興趣,想學(xué)習(xí)下如何通過逆向app、分析源碼、注入動態(tài)庫的方式來給別人的軟件增加些酷炫的功能。決定拿微信練手。

      先上幾個教程:

      移動App入侵與逆向破解技術(shù)-iOS篇

      給微信加 hook 嘗試記錄

      一步一步實現(xiàn)iOS微信自動搶紅包(非越獄)

       

      然而,真正開始學(xué)習(xí)后,發(fā)現(xiàn)做逆向的人本來就不多,而且由于法律法規(guī)問題,導(dǎo)致很多教程都含糊其辭、較為淺顯。而隨著 iOS 系統(tǒng)的更新,安全性也越來越強(qiáng),以往教程中的不少逆向工具,都失效或者改變了使用方法。

      教程中已有的步驟,本文不再累述;僅記錄我踩過的一些坑。

       

      #【第一個瓶頸】ios9.3 后,cycript 由于權(quán)限問題無法 hook 進(jìn)程

      *** _syscall(connect(socket, reinterpret_cast<sockaddr *>(&address), sizeof(address))):../Handler.cpp(169):CYHandleSocket [errno=1]
      *** _assert(system(inject.str().c_str()) == 0):../Inject.cpp(119):InjectLibrary

      解決 --》 使用一部 iOS 8.1.1 的 iPod 來 hook

       

      # bundle
      mobile 4021 0.9 9.8 722448 50360 ?? Ss 12:50PM 0:11.31 /var/mobile/Containers/Bundle/Application/EF82C83B-6CCA-4274-8313-AA15C8B8D042/WeChat.app/WeChat

       

      # Data
      @"/var/mobile/Containers/Data/Application/0E291049-58E9-41E8-B38F-B01C7C5B6645/Documents"

       

      # dylid_insert 指令,執(zhí)行完后,在本目錄下得到 WeChat.decrypted 文件。
      DYLD_INSERT_LIBRARIES=/var/mobile/Containers/Data/Application/0E291049-58E9-41E8-B38F-B01C7C5B6645/Documents/dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/EF82C83B-6CCA-4274-8313-AA15C8B8D042/WeChat.app/WeChat

       

      # 將 WeChat.decrypted 文件復(fù)制到本地。但后來發(fā)現(xiàn),mac端的 class-dump 是64位的,和iPod不適配,故無法成功將頭文件dump出來。于是決定在iPod上進(jìn)行 class-dump。
      scp WeChat.decrypted liqiyu@172.18.67.185:~/Desktop

       

      # 使用 class -dump 把頭文件暴露出來
      class-dump -s -S -H ./WeChat.decrypted -o ./header6.3-arm64

       

      # 將 ipod 上的頭文件復(fù)制到電腦本地(電腦需要先開啟遠(yuǎn)程登錄)
      scp -r header6.3-arm64 liqiyu@172.18.67.185:~/Desktop/wechat

       

      # 安裝 iosOpenDev
      參考:《在xcode7下安裝iOSOpendev,并使用iOSOpendev模板編譯iOS9鉤子》( http://bbs./t/xcode7-iosopendev-iosopendev-ios9/1963 )、《iOSOpenDev安裝》( http://www.jianshu.com/p/29580725707a )
      安裝 iOSOpenDev 時,我根據(jù)教程先裝了 MacPort, 裝完后 還不能直接執(zhí)行 sudo port -v selfupdate 指令更新 MacPort,而要先配置環(huán)境變量。詳見此處第2.5條 ( https://guide./#installing.shell )。
      安裝 Xcode Command Line Tools

       

      # 查看指定頁面 ui 層級結(jié)構(gòu)
      UIApp.keyWindow.recursiveDescription().toString()

       

      # make package install 坑

      動態(tài)庫寫完后,需要進(jìn)行package install。運行發(fā)現(xiàn)報錯。
      wxopenredbag make package install
      ==> Error: The vendor/include and/or vendor/lib directories are missing. Please run `git submodule update --init --recursive` in your Theos directory. More information: https://github.com/theos/theos/wiki/Installation.
      make: *** [before-all] Error 1
      (按說明,到 theos 目錄運行 git submodule update --init --recursive 指令就好)

      wxopenredbag make package install
      > Making all for tweak WXOpenRedBag…
      ==> Preprocessing Tweak.xm…
      Tweak.xm:2: error: %orig does not make sense outside a method
      make[3]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/Tweak.xm.b8bea91d.o] Error 22
      make[2]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/WXOpenRedBag.dylib] Error 2
      make[1]: *** [internal-library-all_] Error 2
      make: *** [WXOpenRedBag.all.tweak.variables] Error 2
      (文件中,有倆方法是自動生成的,如:
      - (void).cxx_destruct { %log; %orig; }
      該方法方法名以"."開頭,顯然有問題。把"."刪除后即可成功 install)

       

      # 連接xcode打開越獄機(jī)器控制臺,查看 logify 輸出
      打開Xcode->Window->Device→你的設(shè)備,下面有Log顯示,但未找到微信logify輸出

       

      # 反匯編工具 hooper 查看偏移量
      用 hooper 打開之前砸殼后獲得的 WeChat.decrypted 文件,并在左側(cè)框搜索 addMessageNode 方法
      注意:
      1、要把 WeChat 文件拖入 hooker 中來打開,若使用 hooker 的 File -> open 來打開則會打開失??!
      2、打開時會讓你選擇armv7或者arm64,這需要根據(jù)你越獄手機(jī)的cpu類型來選,一定要和你的手機(jī)一致!

       

      # 通過lldb遠(yuǎn)程調(diào)試iOS App
      參考:
      http://www.cnblogs.com/csutanyu/p/3653252.html
      ./debugserver *:微信的pid -a WeChat
      另開一個終端,輸入3條指令:
      lldb
      platform select remote-ios
      process connect connect://192.168.2.101:微信的pid
      然后輸入指令獲取進(jìn)程基地址:
      image list -o -f
      輸入:
      br s -a '0x000c5000+0x01657fb4'

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多