概论
通过操作演示流程可以得知一个知识点:就是通过把framewrok文件或者dylib文件写入程序中,系统会通过自动调用LC_LOAD_DYLIB的方式读取framework或者dylib文件,从而调用我们自己写的代码。通过MachO软件可以查看到MachO文件中所链接到的dylib文件。如图所示:
MachO软件读取MachO文件查看dylib
如图所示:HQHook便是我自己注入进去的
一、通过framework方式注入
1.0 新建工程WeChat,并引入自动签名shell脚本。
- 通过上一篇文章的知识点做一下几个操作:
(1) 新建工程WeChat,然后通过手机运行一次,并通过手机验证描述文件。
(2) 在工程中引入appSign.sh自动签证脚本
(3) 在project根目录下新建文件夹APP,把越狱版的微信拷贝进去。
(4) 运行Xcode,测试能否运行微信。
(5) 成功则继续下一步
2.0 创建.framework,并复制到.ipa包内
(1) 增加一个名为HQHook(选择Cocoa Touch Framework)的Target。
(2) 并在生成的HQHook文件夹中添加一个类Inject.{h,m},在.m文件中添加如下方法
- (void)load {
NSLog(@"framework:❄️❄️❄️❄️❄️❄️❄️");//如果代码注入则会打印小雪花
}
(3) 编译此Target生成HQHook.framework包
(4) 将HQHook.framework复制到已越狱微信WeChat.ipa包内的frameworks文件夹内。
(5) 使用yololib对包内的WeChat MachO文件进行注入动态库HQHook.framework。在WeChat包内容目录下执行如下代码命令
# WeChat 是微信包内的MachO文件,就是对这个文件进行注入。
# Frameworks/HQHook.framework/HQHook 通过yololib注入的其实是这个路径的文件。
# 使用yololib之前,先把下载好的yololib文件拷贝到系统目录(/usr/local/bin)下,这样就可以直接使用yololib命令了,否则必须使用全连接执行。
$ yololib WeChat Frameworks/HQHook.framework/HQHook
(6) 重新打包生成.ipa包,在可以看到PayLoad文件夹目录下执行下面的命令即可完成打包操作,
$ zip -ry WeChat.ipa PayLoad/
(7) 打包好后,将其他不用的东西都删除,仅保留WeChat.ipa文件,将此文件复制到跟目录下新建的APP文件目录中。
(8) 最后再次运行Xcode至手机上
(9) 完毕
- 补充:上面
二、通过dylib方式注入
1.0 新建工程WeChat,并引入自动签名shell脚本。
- 通过上一篇文章的知识点做一下几个操作:
(1) 新建工程WeChat,然后通过手机运行一次,并通过手机验证描述文件。
(2) 在工程中引入appSign.sh自动签证脚本
(3) 在project根目录下新建文件夹APP,把越狱版的微信拷贝进去。
(4) 运行Xcode,测试能否运行微信。
(5) 成功则继续下一步
2.0 创建.dylib,并复制到.ipa包内
(1) 增加一个名为HQHook(选择Mac OS下的Libray)的Target。
并在Build Setting 中将Base SDK 的值改成iOS,再将Code Signing Identity的值改成 iOS development即可。
(2) 并在生成的HQHook文件夹中添加一个类Inject.{h,m},在.m文件中添加如下方法
- (void)load {
NSLog(@"dylib:❄️❄️❄️❄️❄️❄️❄️");//如果代码注入则会打印小雪花
}
(3) 编译此Target生成HQHook.dylib包
(4) 将HQHook.framework复制到已越狱微信WeChat.ipa包内的frameworks文件夹内。
(5) 使用yololib对包内的WeChat MachO文件进行注入动态库HQHook.dylib。在WeChat包内容目录下执行如下代码命令
# WeChat 是微信包内的MachO文件,就是对这个文件进行注入。
# Frameworks/HQHook.dylib 通过yololib注入的其实是这个路径的文件。
# 使用yololib之前,先把下载好的yololib文件拷贝到系统目录(/usr/local/bin)下,这样就可以直接使用yololib命令了,否则必须使用全连接执行。
$ yololib WeChat Frameworks/HQHook.dylib
(6) 重新打包生成.ipa包,在可以看到PayLoad文件夹目录下执行下面的命令即可完成打包操作,
$ zip -ry WeChat.ipa PayLoad/
(7) 打包好后,将其他不用的东西都删除,仅保留WeChat.ipa文件,将此文件复制到跟目录下新建的APP文件目录中。
(8) 最后再次运行Xcode至手机上
(9) 完毕

MachO软件读取MachO文件查看dylib













网友评论