最近研究微信,发现断点都是下图这样。开始以为微信有什么黑科技,后来发现任何App都这样。
地址肯定是没错,有遇到类似情况的吗?
最近图片经常不显示,上图内容是:
(lldb) br s -a 0x254788
Breakpoint 1: where = note`_mh_execute_header + 1905544, address = 0x00254788
(lldb) br s -a 0x83c68
Breakpoint 2: where = note`_mh_execute_header + 2152, address = 0x00083c68
debugserver我以为老了,重新从Developer里拿了一个。
各种折腾……不知道咋啦
例如下面这个位置:
上图内容是:
-[PDCellFakeView pressDownAnimation]:
0000bc68 push {r4, r5, r7, lr} ; Objective C Implementation defined at 0x4e93a4 (instance method)
0000bc6a add r7, sp, #0x8
0000bc6c sub sp, #0x2c
0000bc6e movw r1, #0xc384 ; :lower16:(0x4c800c - 0xbc88)
0000bc72 movs r5, #0x0
0000bc74 movt r1, #0x4b
(lldb) image list -o -f
[ 0] 0x00078000 /private/var/mobile/Containers/Bundle/Application/F34C0788-133A-438C-B808-BB298E44885C/note.app/note(0x000000000007c000)
...
In [5]: hex(0x00078000 + 0x0000bc68)
Out[5]: '0x83c68'
然后就
(lldb) br s -a 0x83c68
Breakpoint 2: where = note`_mh_execute_header + 2152, address = 0x00083c68
这样也找不到
(lldb) br s -F "-[PDCellFakeView pressDownAnimation]"
Breakpoint 3: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
难道好久不逆向了,哪步忘了………………
(补充上面例子是 锤子便签,找了个简单的App验证)
我用Pixlr试了一下,没有你说的问题:
(lldb) br s -a 0x000000010019bbb0+0x0000000000058000
Breakpoint 1: where = PixlrExpressPlus`-[AppDelegate applicationDidEnterBackground:], address = 0x00000001001f3bb0
Process 14595 stopped
* thread #1: tid = 0x2e305b, 0x00000001001f3bb0 PixlrExpressPlus`-[AppDelegate applicationDidEnterBackground:], queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
frame #0: 0x00000001001f3bb0 PixlrExpressPlus`-[AppDelegate applicationDidEnterBackground:]
PixlrExpressPlus`-[AppDelegate applicationDidEnterBackground:]:
-> 0x1001f3bb0 <+0>: stp x20, x19, [sp, #-32]!
0x1001f3bb4 <+4>: stp x29, x30, [sp, #16]
0x1001f3bb8 <+8>: add x29, sp, #16 ; =16
0x1001f3bbc <+12>: mov x19, x0
(lldb)
debugserver版本340.3.124,LLDB版本360.1.70
我在arm64上是没啥问题的;我看到你是在armv7上做试验,那就不是太清楚了。LLDB和debugserver在armv7上出问题也不是第一次了,有可能确实是bug
多谢多谢。
各种测试,目前也猜测是lldb和debugserver的问题,刚放假回家,正准备下载个Xcode7.3.1试试。
snakeninny:
Pixlr
我的iPhone5S 9.3.2 lldb和debugserver版本和你一样。Pixlr 也没问题……
但锤子便签和微信都不正常……
再想想……
Zhang
2017 年1 月 29 日 18:17
#9
因为我这里arm64也没问题我不得不怀疑是你脱壳损坏了macho
在iPhone SE,iOS 9.3.3上测试了一下锤子便签:
Process 2217 stopped
* thread #1: tid = 0x72de0, 0x00000001878e76e0 UIKit`+[UIViewController _performWithoutDeferringTransitions:] + 140, queue = 'com.apple.main-thread', stop reason = instruction step over
frame #0: 0x00000001878e76e0 UIKit`+[UIViewController _performWithoutDeferringTransitions:] + 140
UIKit`+[UIViewController _performWithoutDeferringTransitions:]:
-> 0x1878e76e0 <+140>: bl 0x181a81b80 ; objc_msgSend
0x1878e76e4 <+144>: b 0x1878e76f4 ; <+160>
0x1878e76e8 <+148>: ldr x8, [x19, #16]
0x1878e76ec <+152>: mov x0, x19
(lldb) p (char *)$x1
(char *) $0 = 0x0000000187fa7af1 "_setShouldDeferTransitions:"
看上去没啥问题吖……
……
UIKit 我这也可以断点。
只有App自己的类不正常。
先忽略这个问题吧。
我是下在了[AppDelegate application:didFinishLaunchingWithOptions:]
上呢
pzhtpf
(Roc.Tian)
2017 年8 月 4 日 03:59
#19
hex(0x00078000 + 0x0000bc68) 这个用的什么工具计算的?