___lldb_unnamed_symbol怎么分析

逆向iOS应用的时候,在进入Xcode断点的时候,调用堆栈上一直看到有___lldb_unnamed_symbol,类似于下面这样:

#6 0x00000001054e73b0 in -[XXXXXX XXXXXXXX:] ()
#7 0x000000010613b240 in ___lldb_unnamed_symbol34032$$XXXX ()
#8 0x000000010dad36f0 in _dispatch_call_block_and_release ()
#9 0x000000010dad4c74 in _dispatch_client_callout ()
#10 0x000000010dae26fc in _dispatch_main_queue_callback_4CF ()
#11 0x00000001a39bdec0 in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ ()
#12 0x00000001a39b8df8 in __CFRunLoopRun ()
#13 0x00000001a39b8354 in CFRunLoopRunSpecific ()
#14 0x00000001a5bb879c in GSEventRunModal ()
#15 0x00000001cff6fb68 in UIApplicationMain ()
#16 0x0000000107cae26c in ___lldb_unnamed_symbol104155$$XXXX ()
#17 0x00000001a347e8e0 in start ()

求问___lldb_unnamed_symbol 是什么意思,为什么会出现这个,还有该怎样对照IDA反汇编代码进行分析。

没符号的函数。根据地址就可以定位到IDA的对应位置

1 个赞

用symbol restore 试试。记得是可以恢复的。【如果我记错了别怪我.】

试过了不行,不过我没有恢复block的symbol,后面我再试一下全部恢复以后可不可以解决

试过直接定位,但是地址超出了范围,比如下面这句

#7 0x000000010613b240 in ___lldb_unnamed_symbol34032$$XXXX ()

地址是0x000000010613b240,但IDA里面的地址范围最高只到了0x0000000104bd5f27

扣掉aslr。。。。。

张总说的非常完美

张总说的非常完美

张总说的非常完美

解决了,超出地址范围的原因,是拿错了成了另外一个dylib的ASLR,所以扣除后的地址是错的,谢谢张总:pray: