iOS设备 恢复模式和DFU模式的区别【翻译】

恢复模式和DFU模式最大的不同在于是否启动了iBoot。在恢复模式下系统使用iBoot来进行固件的回复和升级,而在DFU模式下系统则不会启动iBoot,因而你可以在DFU模式下进行固件的降级。iBoot是iOS设备上的启动加载器,当你在回复模式下进行系统恢复或者升级的时候,iBoot会检测你要升级的固件版本,以确保你要升级的固件版本比当前系统的固件版本要新(版本号更高)。如果要升级的固件版本比系统当前安装的固件版本要低的话,iBoot将会禁止附件的恢复。因为这个原因所以要进行固件的降级则必须要将设备切换到DFU模式下。这也就意味着如果你需要恢复当前的固件版本,只需要将设备切换到恢复模式即可,iTunes会接管接下来的恢复工作;如果你需要将固件进行降级,你需要进入到DFU模式下。比如,在没有进入DFU模式的情况下,你不能将你的固件从3.0降级到2.2.1.

恢复模式:恢复模式是设备在常规的恢复或者升级的时候正常启动iBoot下的一种状态。由于在恢复模式下iBoot是正常启动的,因而它不允许你降级你设备上的固件。并且,除非iBoot被破解,否则它不允许安装自定义的固件。

Continue Reading

IDA + GDBServer实现iPhone程序远程调试

IDA + GDBServer实现iPhone程序远程调试

By:obaby

在早期的IDA中包含了一个iphoneserver的程序,这个程序就是配合IDA实现远程调试的。但是在最新版的IDA中这个东西已经不复存在了,因而下载的破解版的IDA中没有那个文件并不是被删除掉了,而是本来就没有,*^_^*。所以一直以来调试iPhone上的二进制程序只能悲催的使用ssh+gdb进行调试,虽然调试器的功能还算可以,但是每次调试都需要设置显示,只能使用命令进行控制,因而用起来还是不是十分爽。

其实网上关于IDA实现ios设备远程调试的文章从网上也是可以找到的,但是说的都不是十分具体。本文主要是介绍下IDA实现远程iPhone程序调试的方法,当然这样调试还存在一些问题,如果大家有什么好的解决方案还请不吝赐教。

需要注意的是要想调试ios设备上的程序并不是简单的吧gdbserver拷贝到ios设备上行就可以了,此时如果使用gdbserver启动进程将得到类似如图1所示的提示信息:

图1

Continue Reading