iOS逆向 | dumpdecrypted脱壳失败解决方法

2,095 阅读1分钟

我在使用dumpdecrypted脱壳的过程中,遇到三个问题,特此记录下解决方式。

问题1

dylib所在的文件夹权限不够。

image.png

解决方法

将dylib放在用户所在文件夹: 如果是root用户,请将dylib放在/var/root目录。 如果是 mobile用户,请将dylib放在/var/ mobile目录。

问题2

dumpdecrypted.dylib未签名导致。

dyld: could not load inserted library 'dumpdecrypted.dylib' because no suitable image found.  Did find:
    dumpdecrypted.dylib: required code signature missing for 'dumpdecrypted.dylib'
Abort trap: 6

解决方法

// 列出可签名证书
security find-identity -v -p codesigning
// 重新签名,需要注意该操作要在dumpdecrypted.dylib的路径下执行,否则dumpdecrypted.dylib要写明路径
codesign --force --verify --verbose --sign "iPhone Developer: XXX XXX (XXXXXXXXXX)" dumpdecrypted.dylib

问题3

Xcode SDK版本与越狱手机 iOS SDK 版本不一致,我的Xcode是11.3,越狱手机是12.3.1。

dyld: Symbol not found: ___chkstk_darwin
  Referenced from: dumpdecrypted.dylib
  Expected in: /usr/lib/libSystem.B.dylib
 in dumpdecrypted.dylib

解决方法

下载一个老版本的Xcode10,放在桌面,然后打开终端执行命令。

sudo xcode-select -s /Users/xxx/Desktop/Xcode10.app/Contents/Developer

然后cd到dumpdecrypted所在目录,删除原来生成的dumpdecrypted.dylib和dumpdecrypted.o文件,重新执行make命令。 最后别忘记了切换回原来的Xcode.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer