通过cycript找到显示“关于本机”信息的controller类为AboutController,然后grep查找,
发现在Preferences 中匹配:Binary file /Applications/Preferences.app/Preferences matches;
然后将/Applications/Preferences.app/Preferences拷贝出来,并dump头文件,在头文件AboutController.h中找到AboutController的定义,同时在AboutDataSource.h中找到_getCTMobileEquipmentInfo方法的定义:
- (id)_getCTMobileEquipmentInfo:(struct __CFString *)arg1;
接下来,将preference放进ida中分析,定位到_getCTMobileEquipmentInfo方法:
然后debugsever+lldb进行调试,lldb中image list -o -f如下:
然后:
(lldb) br s -a ‘0x000c8000+0x0001F874’
Breakpoint 5: where = Preferences`_mh_execute_header + 101308, address = 0x000e7874
发现创建的断点,不是在_getCTMobileEquipmentInfo方法中。
这是为何?哪位大侠帮我一下!谢谢!