一步一步用debugserver + lldb代替gdb进行动态调试

刚想问这个问题,看来也是蛮常发生的。

换了一个无线网络,正常了,

但是,我在IDA查到的类的方法的偏移地址加上ASLR的offset的地方下断点,lldb上显示的汇编指令同ida上看到的完全不一样,让人费解,为避免输入错误,我试了两次,都不对。

真的同无线网络有关系,我换了一个网络,结果第一次connect,反应慢好多,而且报错:
error: unable to find section for section 33
error: unable to find section for section 32
error: unable to find section for section 34

第二次,居然正常了,

lldb 上得到的ASLR地址
(lldb) image list -o -f
0] 0x000c3000 /var/mobile/Applications/…
IDA上得到断点地址:
__text:0003094C PUSH {R4-R7,LR}
然后在lldb设置断点:
(lldb) br s -a 0xF394C
却得到如下结果:
→ 0xf394c: svcge #0x3b5f0
0xf3950: stceq p9, c14, [r0, #-180]

0xf3954: strmi r11, [r6], -r11, lsl #1
完全不对啊,
求解,
难道还要用dyld_decache?

在lldb里输入version,看看lldb是哪个版本的。在我自己的测试中,Xcode 5.1.x的lldb(版本lldb-310.2.37)是有Bug的,如果换Xcode 5.0.x的lldb(版本lldb-300.2.51)就没问题

真不幸,
(lldb) version
lldb-310.2.37

那就下个Xcode 5.0.x装一下吧,2个Xcode一起用

重新安装5.0.2后,正常了;
0x3c94c: push {r4, r5, r6, r7, lr}

怎么调试中出现
Process 13754 exited with status = -1 (0xffffffff) lost connection
难不成还有时间限制?
我这个又不是系统程序。

可能是偶尔的bug吧,我有时也出现这个情况,没有太过留意

error: unable to find section for section 33,
不是偶然的吧,
5次可能有有2次会出现,
有人同样如此吗?

请问下我把ldid,debug,ent.xml全部拷到桌面,瘦身好了,签名为什么 ldid: command not found

木有问题了,忘了权限

远程连接好了,请问一下我怎么附加我想要的程序了,比如我要调试QQ,image list里面没有看到进程名,lldb里面的什么指令相当于gdb的ps -ax和info sh:smile:

可以了,我真心2了…哈哈

已解决 悟性太差 :3_41:

~ root# debugserver *:1234 -a “SpringBoard”
Killed: 9
这是什么错,感觉debugserver没起来啊

成功入门该工具,堂主给力!!!

lldb现在暂时可以远程调试了,说下结果:
1、用这个帖子,我电脑 ldid签 ent.xml 一直无法通过,不知道原因;
2、让别人 帮忙打了个签名,attach SpringBoard,第一次没成功,continue ,SP重启了下,尝试第二次成功了;
3、换另一个帖子签 entitlement方法可以成功,测试SpringBoard时,跟步骤2一样,试了第二次才算成功attach,c 之后可以继续运行SP
4、除了ldid签 ent .xml不一样,其他都是按照帖子内容来操作
5、另外附狗神另外一个usb调试帖子:http://bbs.iosre.com/forum.php?m … =185&extra=page%3D1,因为wifi确实太慢了