Tea9源码网 - 免费分享精品源码、教程、软件|全网干货资源收集,免费下载。

[技术分享]iOS动态注入与自签名

发布:吾爱破解论坛2021-7-15 14:26分类: 技术教程 标签: ios 动态注入 自签名

准备工具

1、在线砸壳网站

2、我的饭店_已砸壳(演示用)

3、MachOView

4、optool

5、AltStore

操作步骤

大家可以看到,当我们使用MonkeyDev开发插件的时候,最终的产物是有两个的,一个是我们的App,一个是HOOK用的动态库,之所以能够实现逆向,就是把这个动态库注入到二进制文件中实现的,那么我们是否可以直接把动态库注入到游戏的二进制文件中呢?答案是肯定的。

image-20210714104041380

首先,我们使用MachOView这个工具来查看一下二进制文件的动态库,如下图所示,LC_LOAD_DYLIB就是加载的动态库。

image-20210714103729840

那么我们要做的也很简单,就是使用optool工具把我们已经写好的动态库给注入进去,首先我们要对ipa包进行解压缩,直接使用第三方工具或者修改ipa后缀名为.zip进行解压,会得到一个Payload文件夹,文件夹里有一个pig-mobile.app文件夹,在这个文件夹上右键选择显示包内容,然后按照大小进行排序,最上面的那个pig-mobile文件,就是我们游戏的二进制文件

image-20210714104545391

然后执行如下命令(optool要提前编译出来放到/usr/local/bin,pig-mobile文件也要复制出来操作,不然命令可能不生效,注入完成后我们再替换回去即可)

optool install -c load -p "@executable_path/Frameworks/libpighomeDylib.dylib"  -t pig-mobile
然后得到如下结果:
Found thin header...
Inserting a LC_LOAD_DYLIB command for architecture: arm64
Successfully inserted a LC_LOAD_DYLIB command for arm64
Writing executable to pigmobile_new...
我们再次使用MachOView这个工具查看被修改后的二进制文件,发现我们写的这个动态库已经被成功的注入了

image-20210714153123100

当然,在注入这个动态库之前,我们还要先确认下这个动态库,看它有没有依赖于别的动态库,如果有的话,我们还需要把它所依赖的动态库全部加到游戏工程里面去,我们使用下面的命令来查看libpighomeDylib.dylib

otool -L libpighomeDylib.dylib

我们会得到如下的结果:

libpighomeDylib.dylib:
        @executable_path/Frameworks/libpighomeDylib.dylib/libpighomeDylib.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 907.1.0, weak)
        @executable_path/Frameworks/libsubstrate.dylib (compatibility version 0.0.0, current version 0.0.0, weak)
        @executable_path/Frameworks/libcycript.dylib (compatibility version 0.0.0, current version 0.0.0)
        @rpath/RevealServer.framework/RevealServer (compatibility version 2.0.0, current version 2.0.0)
        /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore (compatibility version 1.0.0, current version 612.1.15)
        /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 5043.1.109)
        /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1835.100.0)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1308.0.0)
        /System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1835.100.0)
由于我没有引用到别的三方库,这里面我们看到有三个需要我们处理的
    @executable_path/Frameworks/libsubstrate.dylib (compatibility version 0.0.0, current version 0.0.0, weak)
    @executable_path/Frameworks/libcycript.dylib (compatibility version 0.0.0, current version 0.0.0)
    @rpath/RevealServer.framework/RevealServer (compatibility version 2.0.0, current version 2.0.0)

其实就是MonkeyDev重签名后会自动打包进去的几个文件,我们把这些文件都放到pig-mobile.app/Frameworks的目录下面

image-20210714153308019

然后我们再把自己录制的那个1.mov文件和修改后的二进制文件一起放入到pig-mobile.app文件夹内。下面就是使用AltStore工具进行重签,首先打开AltStore工具,选择Install Mail Plug-in,安装一个Mail的插件到我们的电脑上,安装完成后,我们需要打开Mail的设置界面,选择“管理插件”并启用它。

image-20210714132604473

插件被启用以后,我们就可以愉快的玩耍啦,选择Install AltStore,然后安装到你的手机上,它会弹出一个账号密码的输入框,让你输入自己的Apple ID和密码。下面我们进入等待时间,等待它安装成功,成功后会有提示。

image-20210714132458743

安装成功后,我们的手机桌面上就会出现这个软件,点击这个软件会发现有一个弹框,我们打开手机的设置 --> 通用 --> VPN与设备管理 --> 开发者App  --> 信任你的账号

image-20210714132348048

信任以后,我们就可以正常的打开这个软件,这一步安装完成后,我们基本上就已经成功了一大半,下面我们需要把刚刚我们已经修改后的游戏文件进行打包,进入到我们解压的PayLoad文件夹,执行如下命令,把文件夹重新打包成ipa,这们我们就得到了一个"我的饭店_hook.ipa"

注意:在直接安装这个ipa包的时候,AltStore报了一个错,错误的内容是“the name for this app is invalid”,经过我的研究,发现是签名工具对中文和特殊字符支持不好导致的,所以需要针对这个包进行修改,修改的地方有四处:

1、pig-mobile.app目录修改为pigmobile.app

2、二进制文件名由pig-mobile修改为pigmobile

3、Info.plist里的Bundle display name修改为pigmobile

4、Info.plist里的Executable file修改为pigmobile(就是二进制文件的文件名)

zip -r 我的饭店_hook.ipa Payload

然后我们只需要把这个文件通过任何办法下载到手机上即可(由于公司保密性较高,所以无法通过微信、QQ等手段。我就演示下通过自建服务器吧)

image-20210714112222071

上面是我在内网里自建的一个简单的服务器,我们让苹果手机和我们处在同一个局域网内,然后使用safari浏览器直接访问我们的服务器地址,然后下载对应的“我的饭店_hook.ipa”文件 ,下载完成后,我们直接通过AltStore方式打开这个ipa文件

image-20210714132301193

这里会让你再次输入Apple ID和密码,输入完成后,即可完成自签名,自签名的有效期是七天,七天后只需要刷新重签即可。

image-20210714132147752

相关资料下载地址:
https://gitee.com/allenzhang/note/

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 2889 人阅读