Hacking ipad (2)

Step 2. Cydia和SSH 上回说道,装了一个Cydia。他默认带了一些安装库的列表,大概有什么三四个,国内有两个还不错的source,一个是tgbus的,一个是weiphone的,tgbus的似乎还更加全一些。如下: http://iphone._tgbus_.com/_cydia_/ http://app._weiphone_.com/_cydia_/ 怎么使用Cydia很容易搞明白,那么几个按钮按按就出来了。第一个打算装的就是OpenSSH,可是很快就发现,这个Cydia有问题,总是报:cache failed, host unreachable之类的,即使我从tgbus安装也是如此。根据“你不可能是第一个”的原则,搜了一下,weiphone上有人提出了一个解决方案,就是替换Cydia的一个官方source。可是我现在又没有shell,又没有iFile之类的,怎么去编辑那个文件呢?最后还是在iPad里设上Proxy,连过去,就好了,有点奇怪,不知道Cydia为什么要这么做。Proxy的log显示,装Open SSH的时候访问了这些文件: http://cache.cydia.saurik.com/api/package/openssh http://iphone.tgbus.com/cydia/.//debs/cydia-3.7//openssl_0.9.8k-9_iphoneos-arm.deb http://iphone.tgbus.com/cydia/.//debs/cydia-3.7//openssh_5.2p1-8_iphoneos-arm.deb http://cache.cydia.saurik.com/api/package/openssh 不知道它为什么在安装前后要访问cache那个站点。而且我直接访问那个文件现在似乎又是通的了(不是host unreachable了),不过总是返回403 forbidden。很奇怪。有功夫再研究一下。 SSH装了之后好像是自动启动的,不过还不知道是在哪个脚本或者配置里,不过已经可以登录了。root的密码是alpine,苹果默认的。我给机器指定了一个wifi的IP地址,就可以连上了!不过,比较诡异的事情是,Cydia默认安装的那些东西里居然没有ps这个命令,ps在adv-cmds这个包里,需要新安装!没有ps,失去了很多窥探的乐趣。 好了,装上了,来窥探一下到底跑着哪些进程: sma-mato-iPad:/usr/bin root# ps -ef UID TIME CMD 0 0:03.80 /sbin/launchd 65 0:01.23 /usr/sbin/mDNSResponder -launchd 0 0:06.18 /usr/sbin/notifyd 0 0:00.87 /usr/sbin/syslogd 0 0:27.02 /usr/libexec/configd 501 0:00.11 /usr/sbin/BTServer 501 12:39.09 /System/Library/CoreServices/SpringBoard.app/SpringBoard 0 0:00.26 /System/Library/PrivateFrameworks/CoreTelephony.framework/Support/CommCenter 0 0:10.09 /usr/libexec/lockdownd 0 0:02.79 /usr/sbin/fairplayd 0 0:00.02 /System/Library/CoreServices/MobileStorageMounter.app/MobileStorageMounter 0 0:05.22 /usr/libexec/locationd 501 0:01.05 /System/Library/PrivateFrameworks/DataAccess.framework/Support/dataaccessd 501 0:01.04 /usr/sbin/accessoryd 501 0:02.70 /usr/libexec/lsd 501 0:00.08 /System/Library/SystemConfiguration/EAPOLController.bundle/eapolclient -i en0 -u 501 -g 501 0 0:06.54 /usr/sbin/sshd -i 501 0:10.90 /usr/sbin/mediaserverd 501 0:40.64 /Applications/Installous.app/Installous 0 0:28.12 /usr/sbin/sshd -i 0 0:03.36 /usr/libexec/sftp-server 0 0:00.04 /System/Library/Frameworks/SystemConfiguration.framework/SCHelper 501 0:01.23 /usr/libexec/installd -t 30 0 0:00.48 -sh 0 0:00.01 ps -ef 其中,lanuchd大概相当于传统Unix的init,是所有进程的爸爸进程。 mDNSResponder据说是Bonjour 的一个组件,提供multicast DNS(DNS multicast? 啥意思?)服务,可能只是一个DNS解析器吧?好像没有看到Bonjour 的进程诶。 SpringBoard就是iPad的主界面。有Hacker们对这个进程也做了手脚,搞了一些WinterBoard,SummerBoard来改变默认的屏幕,挺有意思。。 eapolclient是无线网的客户端吧,大概相当于wpa_supplicant? Installous和installd是我正在搞的事情,下回再说。 ...

八月 6, 2010 · Shawn Ma

Hacking ipad (1)

搞了一个ipad,第3次入手苹果的产品(前两个是ipod)。 从设计上来说的确很不错,132 DPI的IPS屏幕很亮丽,虽然没有iphone 4的Retina那么厉害,但是显示也是很细腻。苹果的A4处理器内置了GPU,各种动画效果也没有什么停滞感。但是缺点也是很明显,第一条就是不能多任务,主要是一些MSN QQ之类的东西每次打开必须重新登录,就很麻烦。第二是,在我们家的网络里,wifi很不好,从路由器ping过去,有30%的丢包,后来据说多频段路由器就会有这个问题,就改成了G only,还是不行。我也升级了据说解决这个问题的3.2.1的固件,依然没有起色。不过今天在公司的表现不错,355个包一个没丢。可能是公司的路由器比较好吧。 苹果最有趣的当然就是它的app store了,不过app store里的免费软件大多很无聊,稍微像样一点的就要收费,而且有的比如keynote就实在太贵了,咳咳,只能hack一下了。这篇(系列)文章就记录一下这个过程里面的有趣的事情;另外hack一个系统本身就是一件很有趣的事情,有时候这个过程比真正的目标比如keynote还要有趣。不过为了让自己的同行有口饭吃,尊重别人的劳动,有些便宜的软件还是打算去买一下的。 Step 1, 越狱(Jail Break) 简而言之,越狱的目标是让ipad可以装任何的软件,给它撕开一个口子让我们可以进去,装一些比如像ssh和GNU那套东西。以前ipad的越狱软件是叫Spirit,不过可能在我的新固件上用不了,所幸就在前两天,一个叫jailbreakme的网站发布了,直接访问这个网站就可以越狱了,试了了一下,真的很方便。看了一下它的源码,没太搞明白,中间有很多计算的脚本,还用一个pdf文件创建了一个Image的javascript对象,倒是让我觉得ipad的浏览器是不是有什么严重的漏洞,是不是很不安全? 越狱的结果就是安装了一个叫Cydia的程序。这个程序用类似Debian Linux的方式来安装程序,通过package好的deb包就可以把应用装进系统了,这个主要是用来装一些第三方的应用,比如ssh。越狱的过程还会默认给你安装好一些简单的命令行工具,比如GNU Core Utils,bash,apt,diff等等。不过比较搞笑的是,虽然安装了这些程序,但是并没有办法使用它们,因为我没有办法获得一个shell!接下来还是要装个ssh,这样就可以登录到ipad上去了。可是用Cydia装ssh并不是那么简单——得感谢我们的伟大的长城。 PS,Ipad的浏览器Agent字符串是: Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B405 Safari/531.21.10 待续。

八月 5, 2010 · Shawn Ma