iOS逆向?qū)崙?zhàn)一:實(shí)現(xiàn)按下home鍵截屏,如何使用hook的對象屬性

按下home實(shí)現(xiàn)截屏.gif

系統(tǒng)iOS9.3.2,與書中作者的的案例有些出入。但思路相同。一個(gè)簡單的案例帶你入門

1.class-dump -H SpringBoard -o 路徑
2.書中SBScreenShotter不存在,只有SBScreenshotManager。SBScreenshotManager是不是之前的SBScreenShotter,在頭文件中找到saveScreenshots方法。在cycript -p SpringBoard驗(yàn)證,SBScreenshotManager就是之前的SBScreenShotter。
saveScreenshots.png
3.如何調(diào)用SBScreenshotManager中的saveScreenshots方法?
書中的方法.png

方法名都改了,SBScreenshotManager中也沒有sharedInstance。在按書中的寫法必然不能生效。

只需要聲明相同的方法和屬性:
@interface SBScreenshotManager:NSObject
- (void)saveScreenshots;
@end
@interface SpringBoard
- (void)hookMethod;
@property(readonly, nonatomic) SBScreenshotManager *screenshotManager;
@end

勾住SpringBoard _menuButtonDown方法
%hook
- (void)_menuButtonDown:(id)down{
NSLog(@"You've pressed home button.");
SBScreenshotManager * screenshotManager = [self screenshotManager];
[screenshotManager saveScreenshots];
%orig;
}
%end

4.效果圖中閃光顏色也被改變了,是因?yàn)楣醋×薙BScreenFlash的flashColor方法。

%hook SBScreenFlash
- (void)flashColor:(id)arg1 withCompletion:(id)arg2{
NSLog(@"iOSRE:flashColor: %s,%@,",object_getClassName(arg1),arg1);
CGFloat red = (arc4random() % 256) / 255.0;
CGFloat green = (arc4random() % 256) / 255.0;
CGFloat blue = (arc4random() % 256) / 255.0;
UIColor *c = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
%orig(c, arg2);
}
%end

結(jié)論:

1.對于新手來說,最難的是如何調(diào)用對象里的屬性和方法,我google許久也沒有一個(gè)好的辦法,也沒有找到官方文檔。例如自己init一個(gè)對象,用runtime去獲取對象都沒有生效。這個(gè)方法來自于書中后面的案例,簡單又好使。如果遇到困難,好幾天都沒有解決,還是先保留,也許后面就自然而然的解決了。

2.哈哈,微信的零錢也可以更改,不過只能看不能用。


修改零錢1.png

修改零錢2.png

3.微信改零錢功能是中看不中用的,也就自己高興,當(dāng)然銀行app的余額也同理。我們應(yīng)該做些實(shí)用性的功能:如螞蟻森林自動收取好友能量,釘釘改個(gè)位置定時(shí)打個(gè)卡(不要讓老板知道就好)。

4.當(dāng)然如果是自己分析,定位自己想要的類名和函數(shù)是最難的,想要深入,最好還是學(xué)習(xí)匯編。

5.有任何問題歡迎留言交流。

本文案例來自于《iOS應(yīng)用逆向工程 第2版》

iOS逆向?qū)崙?zhàn)一:實(shí)現(xiàn)按下home鍵截屏,如何使用hook的對象屬性
iOS逆向?qū)崙?zhàn)二:微信聊天界面實(shí)現(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輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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