9.3.3下,第6章MobilePhoneSettings.bundle的dump问题?


#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)


#2

在iOS 8以后的系统中,获取进程其他模块的方案有变。你先LLDB附加到Settings中,然后执行im li -o -f找到MobilePhoneSettings,看看它的全路径是什么;它应该不再位于cache中,而是位于macOS中。


Aslr地址计算
#3

也可以参考这个链接


#4

LLDB附加到Settings中指的是lldb到/Applications/Preferences.app/Preferences么?

im li -o -f后出现300+个模块,但是搜索了下没有MobilePhoneSettings存在。。。

部分截图如下:


#5

跟书上写的一样,你要先进到电话号码那个界面,这个bundle才会加载啊!


#6

:joy:不好意思,之前在操作之前确实在电话界面,后来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 了。

多谢大神指导!!!


#7

狗神,lldb下 image list -o -f 显示的内容具体是什么?我开始以为是手机里面所有进程或者dylib的偏移量,但是发现还有mac上的东西呢?


#8

有没有找到这个MobilePhoneSettings这个二进制文件