iOS提取系統dylib方法

转载地址:http://www.dotblogs.com.tw/cmd4shell/archive/2012/11/15/83453.aspx


iOS有一部分系统动态库是存放于动态链接库cache中。该链接库cache存在于/System/Library/Caches/com.apple.dylib/dyld_shared_cache_armv7中。如果想要分析其中的dylib,就需要对其进行解密。最新版的IDA Pro已经支持该功能,对使用老版IDA的用户则可以使用解密cache的方法将需要分析的dylib提取进行分析。

 

现成的工具在这里:https://github.com/kennytm/Miscellaneous/downloads,下载最新版的dyld_decache。

 

工具具体命令如下:

./dyld_decache

dyld_decache v0.1c

Usage:

  dyld_decache [-p] [-o folder] [-f name [-f name] ...] path/to/dyld_shared_cache_armvX

 

Options:

  -o folder : Extract files into 'folder'. Default to './libraries'

  -p        : Print the content of the cache file and exit.

  -f name   : Only extract the file with filename 'name', e.g. '-f UIKit' or

              '-f liblockdown'. This option may be specified multiple times to

              extract more than one file. If not specified, all files will be

              extracted.

 

由于直接从系统提取文件有ASLR问题,我通过多种方式解决仍无法解密,因此采用从固件中提取的方式提取。首先下载固件,然后使用WinRAR/WinZIP一类的文件打开,解压最大的DMG文件。

 

以iPhone3,1_5.1.1_9B206_Restore.ipsw为例,对解压的DMG执行:

./vfdecrypt -i038-4292-008.dmg -ke897c2d0aaaea8f2752ff6e144c6efc3158a5dad13c6b95ebe8b99885fc6ad0f6b5448f7 -o038-4292-008_decrypt.dmg

 

打开解密后的DMG,提取上面路径下的dyld cache。

 

文件很大,有200M之巨。执行命令即可完成解密:

dyld_decache dyld_shared_cache_armv7

  0/522: Dumping '/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony'…

…….

 

即可完成对所需要系统dylib的解密。

 

 

------------------------------


你可能感兴趣的:(IOS)