iOS逆向?qū)崙?zhàn)二:微信聊天界面實現(xiàn)飄氣球效果

實現(xiàn)效果.gif

這個效果在逆向中難度是最低的,適合新手練習(xí)。涉及一些基礎(chǔ)的知識,如如何讀取本地圖片,imageNamed可不行;如何調(diào)用oc文件,實現(xiàn)多文件操作,避免多個文件在一起顯得臃腫,另外動畫的實現(xiàn)可要花一些時間調(diào)試。

1.先找到聊天界面的Controller及view,了解其層級結(jié)構(gòu)

1.1打開Reveal

微信聊天界面

一眼就看到Y(jié)YTableView,從這里切入好了。

1.2 通過Cycript查找聊天界面的Contrller

查找聊天界面的Controller

ssh連接手機終端->cycript -p WeChat->查找YYTableView->通過nextResponder找到BaseMsgContentViewController

1.3通過setTitle方法來驗證下BaseMsgContentViewController是不是我們要的

setTitle

2.調(diào)用OC文件需要做哪些配置呢?

2.1 BalloonFlyView是動畫類,這個在XCode調(diào)好

2.2 如何調(diào)用BalloonFlyView類呢?

工程目錄下新建src文件夾,把BalloonFlyView放入該文件夾下

新建src文件夾

2.3Makefile配置src文件

找到Makefile->iOSREProject_FILES
.m文件改.xm,xm與oc中的.mm類似,這樣Tweak可引用到OC文件
*是通配符,及src下的所有.m文件都可以引用

配置FILES

2.4 引入頭文件并調(diào)用

#import "src/BalloonFlyView.h"
BalloonFlyView *vi = [[BalloonFlyView alloc] initWithFrame:CGRectZero];
[vi showAnimationInView:self.view];

2.5如何引用圖片?

1.圖片需要放在/Library/PreferenceLoader/Preferences/路徑

圖片資源路徑

2.可再項目中定義宏:#define CHFile(path) [NSString stringWithFormat:@"/Library/PreferenceLoader/Preferences/%@",path]
3.調(diào)用[UIImage imageWithContentsOfFile:CHFile(imageNamed)]

3.hook聊天界面方法,插入動畫

hook BaseMsgContentViewController

3.1在viewWillAppear設(shè)置背景,添加定時器調(diào)用動畫

設(shè)置背景添加定時器

3.2 在viewWillDisappear釋放定時器

釋放定時器

總結(jié):

1.沒有源碼的技術(shù)文章就是刷流氓,附上demo
2.文中flyTimer使用的是靜態(tài)全局變量,如何給hook的類添加屬性,請讀者思考。
3.如果方法在protocol,我們?nèi)绾蝖ook;如果是block回調(diào),我們怎么hook;請讀者再思考。
4.有任何問題可留意交流

iOS逆向?qū)崙?zhàn)一:實現(xiàn)按下home鍵截屏,如何使用hook的對象屬性
iOS逆向?qū)崙?zhàn)二:微信聊天界面實現(xiàn)飄氣球效果
iOS逆向?qū)崙?zhàn)三:修改微信錢包零錢
iOS逆向?qū)崙?zhàn)四:去優(yōu)酷廣告

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

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容