尝试用ida静态调试破解越狱侦测遇到瓶颈

前辈您好
先谢谢您在上次问题中指点我去研读您写的LLDB+Debugserver动态调试文章
目前在尝试■■一个iOS日本游戏的越狱侦测(目前这游戏开启时侦测到就会闪退)
因本身对LLDB动态调试操作不太瞭解,故先试著使用IDA做静态调试
首先我在iPhone4上安装该游戏,并使用CrackAddict砸壳后导出
(看档案大小只有一半,我想应该是armv7部分?)
其主程式的越狱侦测部分如下图
接著将砸壳后的ipa档安装到iPad Air2(arm64)并使用Hex Editor修改如下:

  1. 第一区块最下方 BEQ loc_C31988 改为 B 直接跳转 (3E D0 → 3E E0)
  2. BNE loc_C3199A 修改为 BEQ (04 D1 → 04 D0)
    可惜仍然闪退
    我有试著使用最新版本Xcode的debugserver启动APP想下断点,但是发现和IDA的分析结果长相完全不同,比对不出实际断点位址下不了刀…
    请问前辈接下来怎么做才好呢?

lldb附加到程序后 使用image list 获取程序的基地址 +上你在IDA 种的偏移 看下 反汇编代码是不是正确的

看你的用语,是台湾的同胞吗?欢迎来iosre!
然后我依次解答你的几个问题吧:

  1. 修改了binary后拷贝回去运行闪退,应该是破坏了原binary签名的原因。可以通过安装AppSync来解决这个问题;
  2. 如果安装AppSync后继续闪退,则可能是你把binary改坏了。此时可以通过观察syslog里的crash信息,来找出可能的crash原因;
  3. 最新版的debugserver有bug,书上已经写了,论坛里也有解决方案:换5.x的Xcode。
    建议你买一本第二版的书,虽然不是正体中文,但你应该也可以看得懂;也希望你能介绍更多的台湾iOS开发高手来论坛交流,我们欢迎你们!