M1芯片脱壳方案

求问论坛上的各位大佬。目前有直接在M1的mac上脱壳的方案嘛。
目前手上没有越狱iPhone。。但是有一台M1芯片的mac mini。

根据楼下提供的解决方案,使用swift改写了一版,实现了自动copy macho文件。

原理都一样,核心是使用mremap_encrypted函数。

更新了一下代码和文件,现在iOS和macOS都可以使用了,不需要运行APP,直接就可以脱壳,使用说明见readme,但没经过太多的测试,可能会有失败的情况。

3 个赞
3 个赞

昨天正好测试到flexdecrypt,没想到已经有人实现了,我来试试的。

git clone https://github.com/meme/apple-tools
cd apple-tools/foulplay
pip3 install meson
pip3 install ninja
mkdir build
cd build
meson ..
meson compile
chmod +x foulplay
./foulplay encryptfile decryptfile
1 个赞

你mini 什么版本,我这边11.4,这边测试mrempa_encrypted: Operation not permitted

也是11.4啊,我用swift改写了一版,你试试可以吗

使用楼主提供是 swift 版在 11.1 上测试成功了.
另外可以通过https://github.com/majd/ipatool (才发现这个工具就是楼主发到论坛的)这个下载 ipa.刚才试了一下也可以砸壳.

Pull Request #1 · paradiseduo/appdecrypt (github.com)

1 个赞

大佬知道怎么在swift中插入内联汇编嘛 :star_struck:

看起来不行 :joy:

你是不是直接拿iPhone上下载IPA,在mac上脱壳啊。那样是会失败。
iPhone下载的只能在iPhone上脱壳。

1 个赞

今天刚好在GitHub上看到群主的脚本,测试了一下 m1 MacBook pro 脱壳 Mac app store下载的程序都没问题,但是脱壳出来的是app文件,我新建一个playlist 文件夹 重新打包为zip–> ipa 文件,打算用iphone签名 失败了。。请问是我的操作有问题吗? 能否直接脱壳后成为一个ipa文件

Mac App Store下载的app好像无法直接在iPhone上运行。
但是iPhone App Store下载的经过转换(iOS APP安装器)是可以在Mac上运行的。

我那样的打包方式,应该没有问题吧,我回头再拿一台mac 测试一下,看下能否把用脚本脱壳出来的ipa签上去

我感觉是你的文件夹建的有问题,你可以再试一下,iOS应该是把app文件放到Payload文件夹里,然后zip压缩Payload文件夹,再将zip改为ipa。

"Payload"一个字母也不能错。

解密4kb加密数据,mremap_encrypted 这个返回-1,ios14.4.2 iphone7,还有什么限制 ?

尝试了3楼:https://github.com/meme/apple-tools/tree/master/foulplay 仓库的foulplay,
脱壳失败,能帮忙解惑么?

终端指令:./foulplay /Users//Desktop/KKPhoto /Users//Desktop/KKPhoto-d
如果KKPhoto-d是文件夹报错:open: Is a directory
KKPhoto-d是复制KKPhoto的可执行文件报错:mremap_encrypted: Cannot allocate memory

KKPhoto:从.app中copy的mach-o文件。
KKPhoto-d:一个空白文件夹。

在m1上砸壳。我尝试了ClashX Pro.app
终端执行命令:

MacBook-Pro appdecrypt % ./appdecrypt /Users/fork-ios/Desktop/ClashX\ Pro.app  /Users/fork-ios/Desktop/123.app
Success to copy file.
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool-classic: can't open file: /Users/fork-ios/Desktop/ClashX Pro.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Autoupdate (No such file or directory)
Error: Read /Users/fork-ios/Desktop/ClashX Pro.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Autoupdate Fail with No such file or directory

MacBook-Pro appdecrypt % 

为了不受干扰,我把framework中的文件都删掉,清除copy的文件。

再次执行命令

MacBook-Pro appdecrypt % ./appdecrypt /Users/fork-ios/Desktop/ClashX\ Pro.app  /Users/fork-ios/Desktop/123.app
Success to copy file.

日志打印Success to copy file不再有任何后续日志,也没有dump日志输出。

尝试m1 的 Google Chrome.app 也是同样表现 是我遗漏了什么? :thinking:

感谢楼主大大的代码!想问下楼主用macos 11.2.3和以后的版本能正常脱壳吗?我看上面楼主说11.4是可以用的,但是我看很多github上用到mremap_encrypted的项目都说,仅限11.2.3.
Playcover的issue里也是这么说的:https://github.com/PlayCover/PlayCover/issues/272
所以真相是什么呀?如果11.2.3以后的版本能正常解密,我就想升级了 不想一直待在11.2.3了哈哈哈