美文网首页iOS 逆向iOS 功能类
iOS逆向实战二:微信聊天界面实现飘气球效果

iOS逆向实战二:微信聊天界面实现飘气球效果

作者: 某非著名程序员 | 来源:发表于2019-07-06 20:17 被阅读85次
    实现效果.gif

    这个效果在逆向中难度是最低的,适合新手练习。涉及一些基础的知识,如如何读取本地图片,imageNamed可不行;如何调用oc文件,实现多文件操作,避免多个文件在一起显得臃肿,另外动画的实现可要花一些时间调试。

    1.先找到聊天界面的Controller及view,了解其层级结构

    1.1打开Reveal

    微信聊天界面

    一眼就看到YYTableView,从这里切入好了。

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

    查找聊天界面的Controller

    ssh连接手机终端->cycript -p WeChat->查找YYTableView->通过nextResponder找到BaseMsgContentViewController

    1.3通过setTitle方法来验证下BaseMsgContentViewController是不是我们要的

    setTitle

    2.调用OC文件需要做哪些配置呢?

    2.1 BalloonFlyView是动画类,这个在XCode调好

    2.2 如何调用BalloonFlyView类呢?

    工程目录下新建src文件夹,把BalloonFlyView放入该文件夹下

    新建src文件夹

    2.3Makefile配置src文件

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

    配置FILES

    2.4 引入头文件并调用

    #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.调用[UIImage imageWithContentsOfFile:CHFile(imageNamed)]

    3.hook聊天界面方法,插入动画

    hook BaseMsgContentViewController

    3.1在viewWillAppear设置背景,添加定时器调用动画

    设置背景添加定时器

    3.2 在viewWillDisappear释放定时器

    释放定时器

    总结:

    1.没有源码的技术文章就是刷流氓,附上demo
    2.文中flyTimer使用的是静态全局变量,如何给hook的类添加属性,请读者思考。
    3.如果方法在protocol,我们如何hook;如果是block回调,我们怎么hook;请读者再思考。
    4.有任何问题可留意交流

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

    相关文章

      网友评论

        本文标题:iOS逆向实战二:微信聊天界面实现飘气球效果

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