溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS中如何跟蹤函數調用

發布時間:2021-08-06 09:27:56 來源:億速云 閱讀:153 作者:小新 欄目:移動開發

這篇文章主要介紹了iOS中如何跟蹤函數調用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

跟蹤函數調用,什么意思呢,舉個例子,如果想做一個微信自動搶紅包的插件,就需要寫這么一個功能,當紅包來了的時候,自動觸發微信的搶紅包函數。好,那咱就先找到這個函數。

映射端口

$ sh usb.sh
Forwarding local port 10001 to remote port 22
Incoming connection to 10001

另起一終端登錄

$ sh login.sh

找到微信安裝路徑

ps -A|grep mobile
 8636 ??   0:35.91 /var/mobile/Containers/Bundle/Application/EB02DC6D-EBE5-4BE8-92CE-B9ABE75B3C3E/WeChat.app/WeChat

順便查看一下微信的 Bundle Id,創建Tweak的時候會用到

通過 cycript 注入 微信

~ root# cycript -p WeChat

執行命令查看info 信息,查找 CFBundleIdentifier 獲取 Bundle Id

cy# [[NSBundle mainBundle] infoDictionary].toString()
CFBundleIdentifier = "com.tencent.xin";

現在脫殼,(因為是從App Store上下載的)

 ~ root# DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/mobile/Containers/Bundle/Application/EB02DC6D-EBE5-4BE8-92CE-B9ABE75B3C3E/WeChat.app/WeChat

脫殼成功,退出登錄手機狀態

exit

將文件拷貝出來

 $ scp -P 10001 root@localhost:/var/root/WeChat.decrypted Wechat

查看是否脫殼成功

 $ otool -l Wechat | grep cryptid
  cryptid 0

導出微信頭文件

$ class-dump -H Wechat -o WechatHeaders

然后來到微信有紅包的聊天界面,通過Reveal 查看當前界面的Controller 是BaseMsgContentViewController

然后找到剛剛導出的 BaseMsgContentViewController.h 文件打開,我去,有五百多個函數.怎么辦,怎么知道那個是咱要用的函數?

有一個辦法,那就是創建一個Tweak工程,Tweak.xm 文件修改成如下內容

%hook BaseMsgContentViewController
- (void)touchesBegan_TableView:(id)arg1 withEvent:(id)arg2
{
 NSLog(@"%@",NSStringFromSelector(_cmd));
 %orig;
}
...
%end

上面三個點代表那五百多個函數。很恐怖吧。

重點來啦,logify.pl腳本,是安裝theos的時候自帶的,該腳本用來注入NSLog來打印方法的入參和出參。(就是在所有的方法里面加 log)

位置在

/theos/bin/logify.pl

這是替身,真實路徑在

/theos/vendor/logos/bin/logify.pl

在終端執行命令

$ logify.pl BaseMsgContentViewController.h > Tweak.xm

ps: 能夠執行logify.pl 命令是因為在 .bash_profile 文件中添加了

export THEOS=~/theos
export PATH=$THEOS/bin:$PATH$

查看剛剛生成Tweak.xm 文件

iOS中如何跟蹤函數調用

注意紅框的位置

  • %log 是調 unix 的系統日志打印服務

  • %orig 是調用原始方法的代碼

  • HBLogDebug 是打印出返回值

這樣多方便,不需要一個個去寫了。用新生成的Tweak.xm 文件替換 Tweak工程生成的Tweak.xm文件

新建一個工程,在終端輸入

```

nic.pl

感謝你能夠認真閱讀完這篇文章,希望小編分享的“iOS中如何跟蹤函數調用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女