iOS9.1 备忘录字数统计
刚开始学习狗神的ios逆向工程做的第一个实战项目,刚做出来的内心还是蛮激动的。书上写的是iOS8.1的系统下的分析。我使用的平台是iOS9.1,手机是iPhone5s.有些类稍微有些区别。接下来简单再说下整个流程,算是对这个项目的一个回顾吧。
首先整体的思路与书上写的差不多,首先定位到MobileNotes的可执行文件:
用过ssh或者操作页面导出MobileNotes,拖入hopper中。
为MobileNotes注入cycript:
输入:UIApp.keyWindow.recursiveDescription().toString()
我再页面上输入secret,这时候再打印出来的UI层次上会找到包含secret的对象:
找到个ICTextView,通过持续调用nextResponder,找出他的controller:
从class-dump出来的头文件中找到ICNoteEditorViewController.h
发现有个ICNote类型属性,打印这个note对象会发现各个字段含义都比较清晰。
ICNote类属于iOS9的私有类,网上有人在github上放出了iOS所有类的头文件,大家可以自行查找。
在ICnote类中我们可以找到
打印出来title对象:
正是我们想要的。接下来找到监测note内容实时变化的方法:
我们进入UITextViewDelegate类中,发现有这么一个类:
- (void)textViewDidChange:(UITextView *)arg1;
通过debugserver+lldb调试MobileNotes。会发现这个方法在你修改note内容的时候会被持续调用。那怎么拿到note的实时数据呢?
直接打印text就行了,iOS9比iOS8确实方便了许多。。整个流程已经完了。接下来编写下Tweak就大功告成了。详细的Tweak我放在GitHub上了,欢迎大家访问:
https://github.com/FurionXin/CharacountForNotes9
有什么意见批评指正的欢迎大家给我留言。