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

2021-07-27 14:43:18 字數 2586 閱讀 3078

先上幾個教程:

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

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

#【第乙個瓶頸】ios9.3後,cycript 由於許可權問題無法hook 程序

*** _syscall(connect(socket, reinterpret_cast(&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

# 將 wechat.decrypted 檔案複製到本地。但後來發現,mac端的 class-dump 是64位的,和ipod不適配,故無法成功將標頭檔案dump出來。於是決定在ipod上進行 class-dump

scp wechat.decrypted [email protected]:~/desktop

# 使用 class -dump 把頭檔案暴露出來

class-dump -s -s -h ./wechat.decrypted -o ./header6.3-arm64

# 將 ipod 上的標頭檔案複製到電腦本地(電腦需要先開啟遠端登入)

scp -r header6.3-arm64 [email protected]:~/desktop/wechat

# 安裝 iosopendev

參考:《在xcode7下安裝iosopendev,並使用iosopendev模板編譯ios9鉤子》(  )、《iosopendev安裝》(  )

安裝 iosopendev 時,我根據教程先裝了 macport, 裝完後 還不能直接執行 sudo port -v selfupdate 指令更新 macport,而要先配置環境變數。詳見此處第2.5條 (  )。

安裝 xcode command line tools

# 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: 

make: *** [before-all] error 1

(按說明,到 theos 目錄執行 git submodule update --init --recursive 指令就好)

➜ wxopenredbag make package install

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

該方法方法名以"."開頭,顯然有問題。把"."刪除後即可成功 install)

# 反彙編工具 hooper 檢視偏移量

用 hooper 開啟之前砸殼後獲得的 wechat.decrypted 檔案,並在左側框搜尋 addmessagenode 方法

注意:1、要把 wechat 檔案拖入hooker 中來開啟,若使用 hooker 的 file -> open 來開啟則會開啟失敗!

2、開啟時會讓你選擇armv7或者arm64,這需要根據你越獄手機的cpu型別來選,一定要和你的手機一致!

iOS逆向動態除錯

1.拷貝越獄手機 developer usr bin目錄下的debugserver到mac電腦,在mac端輸入 scp p 2222 root localhost developer usr bin debugserver debugserver 2.對debugserver進行 ios11可以不用...

iOS 逆向開發 配置Theos

1.指定theos 的安裝路徑,export theos opt theos gapyear gap sudo git clone recursive git theos 4.配置cydiasubstrate 5.配置dpkg deb 這是我花最長時間配置的一步。先從 github download...

iOS逆向教程之動態除錯詳解

前言 有時候想更了解別人app的呼叫流程,就需要在app執行的時候進行動態除錯。動態除錯指的是將程式執行起來,通過下斷點 列印等方式,檢視引數 返回值 函式呼叫程式設計客棧流程等。下面話不多說了,來隨著小編一起看看詳細的介紹吧 xcode的動態除錯原理 首先了解一下 xcode 編譯和偵錯程式的發展...