iOS逆向之企业微信(二)

上一篇文章我们准备了逆向所需的所有工具和文件,接着我们开始对于企业微信的代码进行分析,这里没有使用ida进行反汇编分析是由于企业微信的代码比较容易定位。

(一)cycript定位打卡页面控制器

1. ssh到手机,如果有不知道怎么用电脑连接手机的可以去看我上一篇文章或者百度一下,进入企业微信所在进程,cycript -p wework,查看企业微信的页面结构(图1),我们可以看到tabBarController(图2)

图1


图2

点击进入到打卡页面,查看当前控制器,并且在导出的企业微信头文件中找到对应控制器的.h文件(图3),不难发现打卡控制器叫做WWKAttendanceBinaryCheckViewController。

图3

(二)hook定位方法

找到WWKAttendanceBinaryCheckViewController对应的.h文件,查看头文件的相关方法属性和引入很容易发现涉及到定位功能的类分别有WWKAttendanceBinaryCheckViewController ,WWKLocationRetriever,WWKLocationRetrieverBaseTask,他们之间的关系为WWKLocationRetrieverBaseTask使用腾讯地图定位功能获取当前经纬度代理回调到WWKLocationRetriever中,WWKAttendanceBinaryCheckViewController获取WWKLocationRetriever中代理得到的最新经纬度进行地图api接口调用得到当前位置信息,判断是否在打卡范围内。

我们hook出对应的方法,将经纬度修改为打卡范围内的任意经纬度即可(图4),这里我创建了一个单例,用于存放经纬度,并且进行是否hook该方法的判断

图4

(三)增加功能开关

到这里为止我们已经能够达到预期的目的了,但是为了方便能够随时进行切换修改定位功能,我在企业微信首页的右上角弹窗中增加了一个开关,增加bool值判断,增加一个item的方法也是获取到当前页面中呈现的视图类,hook了mItemsArray的set方法和tableView的点击方法(图5,图6)

图5


图6

(四)总结

大功告成,command+r运行在手机上,不管是越狱还是非越狱手机都没有问题,大家自己进行尝试吧,如果有任何的问题欢迎沟通。


注:对于修改经纬度实现不在范围内打卡不是本人的初衷,只是为了研究ios逆向,不会将此功能应用在生活中,诚信为本。

推荐阅读更多精彩内容

  • 本文说的逆向企业微信,主要是修改了企业微信的打卡定位功能,实现了不在公司范围能也可以实现范围能打卡的功能。 (一)...
    CveniEs阅读 3,132评论 1 2
  • 前言 此文为逆向微信二进制文件,实现伪装定位,查看附近的人的教程,手把手教你玩转微信!学会之后再去逆向微信其他功能...
    偏北风23级阅读 10,515评论 9 8
  • 转发自 2016-07-07何兆林腾讯Bugly 如果您有耐心看完这篇文章,您将懂得如何着手进行app的分析、追踪...
    树懒啊树懒阅读 10,132评论 5 63
  • 他还不够好,不想他说的那样 他说的创作 只是一个少数人,不知道什么受众的创作 他更像一个文字平台,就想一个杂志 不...
    怪空间里了睡觉咯阅读 109评论 0 0
  • 你站在时空之端,看看七年前的你。 生活中,当被不断的灌入一成不变老旧霸道观念和思维,也不见得屈从和妥协过。...
    城西林子阅读 141评论 0 0
  • 最快乐的人生应该是什么样子的,如何才可以获得幸福呢? 我思索再三,感觉应该是做自己喜欢做的事儿,而...
    小溪终入海阅读 210评论 8 12