美文网首页iOS 逆向
iOS逆向实战一:实现按下home键截屏,如何使用hook的对象

iOS逆向实战一:实现按下home键截屏,如何使用hook的对象

作者: 某非著名程序员 | 来源:发表于2019-06-30 21:41 被阅读123次
    按下home实现截屏.gif

    系统iOS9.3.2,与书中作者的的案例有些出入。但思路相同。一个简单的案例带你入门

    1.class-dump -H SpringBoard -o 路径
    2.书中SBScreenShotter不存在,只有SBScreenshotManager。SBScreenshotManager是不是之前的SBScreenShotter,在头文件中找到saveScreenshots方法。在cycript -p SpringBoard验证,SBScreenshotManager就是之前的SBScreenShotter。
    saveScreenshots.png
    3.如何调用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.效果图中闪光颜色也被改变了,是因为勾住了SBScreenFlash的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

    结论:

    1.对于新手来说,最难的是如何调用对象里的属性和方法,我google许久也没有一个好的办法,也没有找到官方文档。例如自己init一个对象,用runtime去获取对象都没有生效。这个方法来自于书中后面的案例,简单又好使。如果遇到困难,好几天都没有解决,还是先保留,也许后面就自然而然的解决了。

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


    修改零钱1.png
    修改零钱2.png

    3.微信改零钱功能是中看不中用的,也就自己高兴,当然银行app的余额也同理。我们应该做些实用性的功能:如蚂蚁森林自动收取好友能量,钉钉改个位置定时打个卡(不要让老板知道就好)。

    4.当然如果是自己分析,定位自己想要的类名和函数是最难的,想要深入,最好还是学习汇编。

    5.有任何问题欢迎留言交流。

    本文案例来自于《iOS应用逆向工程 第2版》

    iOS逆向实战一:实现按下home键截屏,如何使用hook的对象属性
    iOS逆向实战二:微信聊天界面实现飘气球效果
    iOS逆向实战三:修改微信钱包零钱
    iOS逆向实战四:去优酷广告

    相关文章

      网友评论

        本文标题:iOS逆向实战一:实现按下home键截屏,如何使用hook的对象

        本文链接:https://www.haomeiwen.com/subject/vfadcctx.html