其实学习ios 逆向知识还是很有必要的,不是抱着为了破解那个程序,而是为了抱着学习的态度,去学习一些好的程序的结构,用的好的框架,等等,今天先来讲解一些比较基础的部分,iOS工具集,openssh 和cycript,(这两个插件都可以在cydia 通过搜索下载得到)使用这些工具帮助我们去了解一些想要的程序。(此文章仅用于学习)
工具:工具这里只需用用到一部越狱机和mac 电脑即可,越狱机目前盘古越狱已经越到9.1了,想做逆向开发,还是不能将手机或测试机过早的升级,这里是比较坑爹的
在cydia 安装插件的时候我遇到了一个坑
软件源还在刷新(loading)的时候,我就去搜索,安装插件了,结果他一直报错,因此要等软件源刷新完毕才可以安装。好吧接下来回到正题吧
1 openssh
openssh ,其实是提供了一个ssh 的服务,安装了之后,就可以通过无线方式由电脑远程登录到手机,去访问手机的资源,这个东西还是棒棒哒,使用openssh ,还是需要你掌握一些终端命令的,iphone 是基于unix 系统,所以,命令行命令在iphone 上面也是行的通。先来大致演示一下
(1)远程登录
openssh 他是通过无线方式,是电脑和手机建立连接,因此手机和电脑必须要在同一个网络下面,电脑通过ip来访问手机,我现在看到我的手机的ip 是192.168.0.35,这里还要说下默认密码是alpine ,登录之后必须要立即改密码,因为安装这个插件,还是用默认密码,手机也就变得不安全了,任意电脑都有机会访问到你的手机了。(还有就是有时候比较卡,估计是可能手机锁屏了,和电脑建立连接就卡主了,这是可以解锁下手机,让手机保持亮屏)
这里用到的命令是 ssh root@ip 地址 ,如下图
登录成功就要马上修改密码了 使用到的命令 passwd 如图
(2)查看程序目录结构
改完密码就可以愉快的,安全的访问自己的手机啦,那么来看看有什么好玩的命令,这里我们必要常用到 的ps 命令,查看进程的一些命令,例如ps -e 通过这个命令可以查看自己想了解的程序,的运行情况
这里我们看到了一个熟悉的进程微信,还看到了微信了沙盒路径,顿时觉得这个命令棒棒哒
ps -e 会扫出一大堆的进程呢,能不能精确点找呢,通过命令来ps -ef |grep WeChat 模糊匹配来查询微信的进程,啊哈哈微信也出来了
既然知道了沙盒路径就可以各种 cd ls 看看微信的目录结构了
openssh 大致就讲到这里,来看一下cycript 吧。
2 cycript
cycript 也是一款很强大的cydia 插件,使用它我们可以测试一些函数的功能,去窥探一些程序的结构,动态调试程序,
(1)锁定调试目标
通过前面的ps 命令我们已经知道可以进程名 和 进程id 那么我们可以通过这些标志来调试想要了解的程序,还是拿微信来当例子吧,
上图可以看到 微信的pid 是832 那么我们通过命令 cycript -p 832 来调试微信
(2)调试弹框
出现cy#说明访问想要调试的程序成功了,cycript的语法也很简单,类似oc,但是变量他要用var 来表示,且不用写* 那么尝试些一段简单的代码来看看效果
我在这里 实例了一个UIAlertView ,并让实例弹了个框,那么手机发生了什么情况
可以看到一个微信看到我调试时产生的弹框
(3)打印app层级结构
也可以通过代码获取 app的实例对象,查看他的层级结构
今天大致就讲到这里,接下来还会继续拓展,如果有什么不对,希望各位大神可以指出批评