huuzhou
(huuzhou)
1
我在ios上用gdb 加载应用进程,info func XXX总是找到错误的函数。正常情况下函数地址应该是0X00123456,
结果找出来的都是位于0X30000000这样的高位地址的一些函数,我想要找的函数没有,但在IDA里都可以看到。
这样的情况出现在最新下载的一些app中。以前下的app就完全正常。函数找不到这是一个问题。
另一个就是指令显示的乱七八糟。和ida里面的完全不一样,看不懂。但是用X/U 看指令的十六进制,是正确的。
就是gdb给翻译错了。
不知道是什么原因,有办法解决吗?还是得换lldb,不过看其他帖子说lldb也有显示指令乱掉的问题。。。
按照这个帖子的步骤换lldb吧,指令乱掉的问题也在帖子里解决了
huuzhou
(huuzhou)
4
我的是lldb-320.4.152,osx10.10,Xcode6.1
下面是gdb的结果
(gdb) x/10i 0x0dd70
0xdd70 <_mh_execute_header+40304>: af03b5f0 svcge 0x0003b5f0
0xdd74 <_mh_execute_header+40308>: 0500e92d streq LR, [a1, #-2349]
下面是lldb的结果
(lldb) di -s 0x0dd70 -c 20
0xdd70: svcge #0x3b5f0
0xdd74: streq lr, [r0, #-2349]
---------
实际上第一条指令是两条thumb指令。我在ipad2 ios8.1和 iphone4s ios7.1.2上面测试,
得到来相同的结果。。。
怎么办,降级xcode吗
是的,建议使用Xcode 5.x,我用着是没问题的
huuzhou
(huuzhou)
6
是用XCode5.0.2吗?我只用lldb和debugserver,需要装对应的command line tool 吗?
Xcode 5应该不需要手动装command line tools了吧,好像提示一下之后可以自动安装,也不会覆盖原有的,我现在的机子就是Xcode 6和5共存,5的唯一作用就是lldb