下载此文档

iOS实践课:修改SpringBoard.doc


文档分类:IT计算机 | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
最近才接触不久的逆向工程,刷夜,爆肝,把《iOS应用逆向工程》这本书的工具,全部看了一遍,并且尝试了一遍,感觉需要点什么。那就是实践!  最近6s手机出了3DTouch,无奈手中没有这款机型,恰好最近对逆向小有心得,又听说过已经有插件能实现同样的需求,证明确实有可行性,于是开动。根据点击的判断和出现,初步感觉,这应该不需要多少行代码就能搞定,应该只要添加一个手势,或者是更改一个手势的点击事件,让系统认为发生了3DTouch点击事件,就可以了。
所需工具: cycript,openSSH,class-dump
测试环境:,iPhone5s
备注:因为自身没有3DTouch,所以需要下载一个插件,让机器拥有3DTouch功能,我使用的是forcy,通过覆盖长按手势,实现
通过查阅官方文档,得到关键词  Shortcut Menu peek pop
这个词将来就是要在找关键方法时刻所要用到的
现在开始!
通过ssh连接到手机,然后将cycript注入到SpringBoard
huangjipingde-iPhone:~ root# cycript -p SpringBoard
首先先隆重介绍1个方法,2个函数
1方法[view recursiveDescription]  该方法可以当做是Reveal的文字版,用来查看当前页面的布局
2函数,原理均是runtime,但是第二个没有怎么看懂。。。
1. printMethods 打印出该类所有的方法,后边接的是实现的地址,在这儿补充一下,如果想对某个方法打断点,但是又不想使用IDA查看方法偏移,可以直接在这实现的地址处,添加断点,虽然不知道断在什么地方,但是可以肯定一定是在执行该方法的时候。效果如下图:
代码:
[JavaScript] 纯文本查看 复制代码
function printMethods(className){
var count = new new Type("I");
var methods = class_copyMethodList(objc_getClass(className),count);
var methodsArray = [];
for (var i = 0; i < *count; i++){
var method = methods[i];
({selector:method_getName(method), implentation:method_getImplementation(method)});
}
free(methods);
free(count);
return methodsArray;
}
2. tryPrintIvars打印出对象所有的属性,效果如下图:
代码:
[JavaScript] 纯文本查看 复制代码
function tryPrintIvars(a){
var x={};
for(i in *a){
try{
x[i] = (*a)[i];
} catch(e){}
}
return x;}
准备工作都做好了,将两个函数都先输入进去
因为最后的目标是应用图标,所以,现在我们从主界面开始着手打印它的UI布局
代码:
[Objective-C] 纯文本查看 复制代码
[[UIApplication sharedApplication]. recursiveDescription]
 
然后出来了一大片,红呦呦的代码,看着都眼睛疼,4点钟时看得眼睛都瞎了啊。此时应想,主界面可以滚动,是一个scrollView,是scrollView就得有contentSize,然后一看手机的页面,总共有5页,由于5s机型的宽度是320,所以这时候可以大胆猜测它的contentSize的最大宽度是1600,mond+F***
准确命中,同时,还注意到,它的contentOffset是960又此时我的页面正是第4页,基本锁定目标,查找frame的坐标是960,0的view,此时可以得到大量信息了,SBRootIconListView,这个就是用来装一页所有图标的View,SBIconListModel这个里边,我猜是装了该view里边的模型信息,注意,11 icons,正好是我们页面所有的图标数,此时再看后边SBIconView的size 62,62  这和图标尺寸的差距只有2个点,基本锁定,它就是我们要找的目标
此时,让我们找到是什么在处理SBIconView的事件,我们所知道的,view一般是用来展示的,事件的发生一般

iOS实践课:修改SpringBoard 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xunlai783
  • 文件大小72 KB
  • 时间2017-12-29