- 17
- 0
- 约6.1千字
- 约 11页
- 2018-11-29 发布于天津
- 举报
使用gdb和cycript越过iOS应用的越狱检测
火星信息安全研究院 by :obaby
使用gdb 和cycript 越过iOS 应用的越狱检测
Email:root@
翻译:obaby
我已经在现实生活中给安全测试人员和开发者(安全编程指导)讲述“iOS 应用安全和审计”有一段时
间了,但是始终有一个问题会不断的出现,那就是对于内置在程序中的反盗版代码(Anti-Piracy )真的有
效么?安全测试人员想要知道如果这些程序内置了这种保护措施,那么他们能否发现问题。而开发者则正
好相反,他们想要知道如果内置了这样的保护能否让他们睡个安心觉。
最直接的答案就是“不”,如果你的代码运行在一个由攻击者完全控制的平台上,并且他有足够的技能。
那么他会很容的发现怎么去破坏你的程序。当运行在一个越狱的设备上的时候这会变得更加简单,因为攻
击者可以更容易地做任何事情。
我已经看到安全测试人员的笑容了,如果你知道怎么使用 cycript 和 gdb 进行运行时分析,那么你就
能够破解任何保护。但是,由于和其他程序(web 和 network )的安全审计不同,并且是与性在一个arm
平台上需要一定的逆向分析基础,那么这个工作还是有一定的挑战性的,当然非常有意思。
这篇文章是我将要发布的现在开发者通用的检测越狱技术的一系列文章的第一篇 ,包含了怎么检测越
狱,以及如何破解这个越狱检测。
为了实现这个目标,我们需要一个小程序来辅助,我已经创建了一个简单的 iOS 设备上的反盗版演示
程序 ,程序中使用了我的一些在线 iOS 代码。你可以猛击此处来下载这个 IPA。需要说明的是,这是一个
自签名的应用,你需要有一个越狱的设备(iPhone/iPad )来运行这个程序。
你可以通过像下面的方法用 installipa 来安装这个应用:
程序在 iOS5.1.1 和 6.1.2 上进行过测试。一旦你运行程序你会看到一个非常简单的界面和一个检测越
狱的按钮。
1
火星信息安全研究院 by :obaby
点击这个按钮,并且确认应用是运行在一个已经越狱的设备上。如果是在现实生活中,那么应用可能
已经推出或者发送一个报告到他的服务器上来通知这个行为了(侵犯隐私了么 )。
2
火星信息安全研究院 by :obaby
目标:越过iOS 应用的越狱检测
第一步 :找到应用程序的安装目录和进程PID。这个可以非常简单的通过 ps 命令来获取,并且使用 grep
来过滤结果。
第二步 :进入应用目录,并且找到真正的二进制文件
3
火星信息安全研究院 by :obaby
第三步 :原生的iOS 应用都是使用 Object-c 来写的。这是一个动态类型语言,要求所有的类信息在运
行时都是可用的,并且要嵌入到二进制文件中。我们可以通过 class-dump-z 来获取这些类信息
第四步 :查看生成的类信息文件,信息量是灰常大滴:)
第五步 :我们要找到当前窗体的rootViewController ,这个东西可以通过一个叫做cycript 的工具来
实现,它通过 Mobile Substrate 来挂钩到任何执行的程序中。可以找到当前的 rootViewController 如下
图所示:
4
火星信息安全研究院
原创力文档

文档评论(0)