国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS逆向:微信逆向及動態庫開發過程中的坑

2019-11-06 09:41:42
字體:
來源:轉載
供稿:網友

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

先上幾個教程:

移動App入侵與逆向破解技術-iOS篇

給微信加 hook 嘗試記錄

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

 

然而,真正開始學習后,發現做逆向的人本來就不多,而且由于法律法規問題,導致很多教程都含糊其辭、較為淺顯。而隨著 iOS 系統的更新,安全性也越來越強,以往教程中的不少逆向工具,都失效或者改變了使用方法。

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

 

#【第一個瓶頸】ios9.3 后,cycript 由于權限問題無法 hook 進程

*** _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

 

# bundlemobile 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 指令,執行完后,在本目錄下得到 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 文件復制到本地。但后來發現,mac端的 class-dump 是64位的,和iPod不適配,故無法成功將頭文件dump出來。于是決定在iPod上進行 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 上的頭文件復制到電腦本地(電腦需要先開啟遠程登錄)scp -r header6.3-arm64 liqiyu@172.18.67.185:~/Desktop/wechat

 

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

 

# 查看指定頁面 ui 層級結構UIApp.keyWindow.recursiveDescription().toString()

 

# make package install 坑

動態庫寫完后,需要進行package install。運行發現報錯。? 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 methodmake[3]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/Tweak.xm.b8bea91d.o] Error 22make[2]: *** [/Users/liqiyu/Work/Hackor/myCode/WeChat/wxopenredbag/.theos/obj/debug/armV7/WXOpenRedBag.dylib] Error 2make[1]: *** [internal-library-all_] Error 2make: *** [WXOpenRedBag.all.tweak.variables] Error 2(文件中,有倆方法是自動生成的,如:- (void).cxx_destruct { %log; %orig; }該方法方法名以"."開頭,顯然有問題。把"."刪除后即可成功 install)

 

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

 

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

 

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尚志市| 衢州市| 剑河县| 德阳市| 宜昌市| 景德镇市| 大英县| 临泉县| 西华县| 抚远县| 巴林右旗| 阿图什市| 亳州市| 华宁县| 怀远县| 天等县| 金乡县| 喀什市| 阿鲁科尔沁旗| 隆尧县| 海门市| 沙坪坝区| 班戈县| 临高县| 陈巴尔虎旗| 揭阳市| 炉霍县| 漯河市| 阜南县| 高碑店市| 昌都县| 富裕县| 米脂县| 宜黄县| 永川市| 大荔县| 吴忠市| 武功县| 类乌齐县| 黔西县| 西峡县|