6.2.2.1 ida中的很多数据都没有像书上一样自动识别出来

IDA中很多数据都不能自动识别,而是显示成off_389490ec,dword_3894b668这样的,但是书上似乎都是直接识别了的,而且注释也比书上少很多。更关键的是一个函数识别得和书上完全不一样,书上是obj_msgsend,我这边是CFRunLoopSourceSignal

请问各位怎么能识别得和书上一样?
顺便再求问一下 CFRunLoopSourceSignal$shim中的$和shim分别代表什么意思?

我的IDA:

书上的截图:


PS:测试机器iPhone4s iOS7.1.1

你分析的是哪个文件?

UIKit

@Young 这个跟你上次碰到的情况有点像啊

多谢狗神(为什么他们都这么叫你。。。) 我刚刚发现了原因:
如果用原机的cache文件decache出来的UIKit,拖进IDA之后就会得到和书上一样的结果了
我图中用的UIKit是按照你之前发的这个帖子中找到的UIKit

能请教下这两个binary有什么区别吗?

说实话我也不知道,我在这个帖子的最后提到,可能的区别是一个含有调试符号,一个没有。如果你有进一步的分析,欢迎分享出来

我发现lldb在调试的时候,这些symbol也都不太准确,原因是lldb加载的文件都是xcode自带的binary。
有没有什么方法让lldb去加载我原机的那些binary而不是加载自带的文件? (除了替换掉xcode自带的文件以外)

我也没有深究过这个问题,你可以给LLDB团队发个邮件问问,我觉得这个问题挺有价值的,值得深入研究下

自带的调试符号binary 也一样是 这鸟样,不过固件IOS7.1.1 应该不会有这样的东西才对,上了IOS9才会,
难道dump出来的时候哪些地方不对了?
还有就是动态调试的时候显示的汇编也是这鸟样,所以我一直不知道为啥