zklgame
(zklgame)
1
第二版,第6章第171页,遇到问题过程如下:
1.已经在真机中找到了/System/Library/PreferenceBundles/MobilePhoneSettings.bundle,但是这个文件夹中没有可执行文件,故去cache中寻找。
2.在dyld出来的文件中找到了MobilePhoneSettings.bundle,进入其中发现只有一个文件,class-dump之,出现如下信息:
// This file does not contain any Objective-C runtime information.
3.将第2步应该class-dump的可执行文件拖入IDA,发现能够解析,顺利找到了相关函数:
所以,第2步的时候,如何才能class-dump出头文件呢?
附上dyld出来的bundle文件:
MobilePhoneSettings.bundle.zip (64.1 KB)
在iOS 8以后的系统中,获取进程其他模块的方案有变。你先LLDB附加到Settings中,然后执行im li -o -f
找到MobilePhoneSettings
,看看它的全路径是什么;它应该不再位于cache中,而是位于macOS中。
2 个赞
zklgame
(zklgame)
4
LLDB附加到Settings中指的是lldb到/Applications/Preferences.app/Preferences么?
im li -o -f后出现300+个模块,但是搜索了下没有MobilePhoneSettings存在。。。
部分截图如下:
跟书上写的一样,你要先进到电话号码那个界面,这个bundle才会加载啊!
zklgame
(zklgame)
6
不好意思,之前在操作之前确实在电话界面,后来ssh到手机上时切换到了网络那边看ip了,忘了切回来。。。
已经找到路径了:
[373] 0x00000000033cc000 /Users/zklgame/Library/Developer/Xcode/iOS DeviceSupport/9.3.3 (13G34)/Symbols/System/Library/PreferenceBundles/MobilePhoneSettings.bundle/MobilePhoneSettings
找到的这个包在dump的时候也是输出了:
// This file does not contain any Objective-C runtime information.
我打算去看下 runtimebrowser 了。
多谢大神指导!!!
B0B0
(Ph. D. 5)
7
狗神,lldb下 image list -o -f 显示的内容具体是什么?我开始以为是手机里面所有进程或者dylib的偏移量,但是发现还有mac上的东西呢?
baiqian
(白浅上神)
8
有没有找到这个MobilePhoneSettings这个二进制文件
大神,按照这个方法,我已经找到了全路径,但是有个问题,为什么iphone里面的应用,在被调试的时候,会用到mac上面的模块呢?实际使用的时候,也是单纯在iphone里面调用啊?