Dylib 注入

准备工作:

像往常一样,创建项目,创建脚本,引入固定的脚本。

动态库 配置

  1. 添加 动态库 (Dynamic)
image.png

IOS 下已经没有这样的库了,framworks 代替了。

  1. 选择刚刚添加的动态库,编译:
image.png
动态库 文件目录

可以发现添加的动态库加载上了,但是是在 Debug 目录下的。

  1. 切回到工程目标,添加动态库的依赖关系,编译:
image.png
image.png

报错,但是细看可以看到查找的目录是在 Debug-iphoneos 目录下,肯定没有了,

image.png

解决方式:

  1. 把动态库拷贝到 Debug-iphoneos 目下。
  2. 修改工程动态库编译路径。
image.png

这个环境变量
$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
在不同的 Target 下,是不一样的;
手动修改 $(BUILD_DIR)/Debug-iphoneos

动态库的 Products 目录 配置:

动态库的 Products 目录 配置

要选择相应的 Target 编译。

image.png

这时候 动态库就写入 Mach-o 文件中了:

image.png

配置 OK !
自我感觉修改路径着实麻烦,快被搞蒙蔽了,还是手动拖入/拷贝 来的快。

注入过程

上面动态库配置接下来就开始注入过程,其实有没有想到一个问题?
我们添加的动态库是什么架构呢?

先进入 App 包中,cd Frameworks ;

file libQCHOOK.dylib

libQCHOOK.dylib: Mach-O 64-bit dynamically linked shared library x86_64

x86 架构的。

注入:

注入 Mach-o 后,签名就破坏了,但是 编译,xcode 会帮我们重新签名 整个 App, 但是 Xcode 不会帮我们签名整个 frameworks / dylib, frameworks / dylib 在创建后编译时就需要签名了, Xcode 就不会再次签名,所以我们在 shell 中才需要对 framework 签名,签名后 注入 修改的是 Mach-o 文件,注入后,xcode 会重签名。

修改注入脚本:

# ---------------------------------------------------
# 7. 注入我们编写的动态库
echo "开始注入 📱📲"

# 需要注入的动态库的路径  这个路径每次修改 🌴📱📲🌴📱📲🌴📱📲🌴📱📲🌴📱📲

INJECT_FRAMEWORK_RELATIVE_PATH="Frameworks/libQCHook.dylib"
# 通过 yololib 工具注入
yololib "$TARGET_APP_PATH/$APP_BINARY" "$INJECT_FRAMEWORK_RELATIVE_PATH"

echo "注入完成 📱📲"

注入过程:

image.png

编译运行,两种不同的架构:

崩溃信息
更改架构:
image.png
image.png

但是仅仅更改这些还不够,一系列的都需要改,BaseSDK...

image.png

好吧,忽略掉上面繁琐的过程,还不一定成功,接下来才是真正??正确的修改步伐:

  • 修改上面的 BaseSDK,修改 为 IOS
Mac OS
iOS 架构
  • 接下来,第二步,修改 Code Signing identity 为 iOS Developer。

OK ,就这两步,搞定,其它的都不不要修改。

还有一个低级错误,添加 脚本时,别选错 Target 了,又是二的不行。

编译运行:

一直还是报错,

app 包所在目录中的
image.png
APP 包 中的 Frameworks 一直没有

一直没能找到为什么呢???

image.png

yololib WeChat Frameworks/ibQCHook.dylib

手动修改,添加进也不行,

image.png

要吐血了!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介代码注入:静态注入、动态注入 动态库dylib其实是修改MacO文件,展开 Load Commands在Fra...
    lukyy阅读 4,989评论 6 7
  • 下面本人自己试验成功的步骤。看到还有很多其他的步骤来达到相同的目的,根据自己喜好熟练度选择。 环境 theos 创...
    pipa阅读 3,150评论 0 2
  • 1. 创建Dylib注入项目,在.xcodeproj同级目录创建APP文件,放入微信ipa包,Build Phas...
    Fendouzhe阅读 1,240评论 0 0
  • Tweak打包dylib注入ipa重签名安装到未越狱手机上 在我上一篇文章第一次写Tweak,走进iOS逆向的世界...
    YxYYxY阅读 9,897评论 6 18
  • 仅以方便自己查阅记录前言1.静态库和动态库有什么异同?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗...
    190CM阅读 4,368评论 0 4