Dylib注入

2018-05-11  本文已影响0人  Fendouzhe

1. 创建Dylib注入项目,在.xcodeproj同级目录创建APP文件,放入微信ipa包,Build Phase添加Run Script,将脚本路径拖入Run Script.

image.png

2. 创建一个dylib库

1.png
2.png

3. 选择scheme 为动态库,运行编译

1.png
2 Show in Finder 显示位置.png

4. Build Phases 添加Copy Files

1.png 2.png 3.png 4.png

5. 选择scheme 重新改回去,运行报错

1.png 2.png
解决方法1:将库拷贝进工程app同级目录
1.png 2.png 3.png
解决方法2:修改查找的设置路径(Debug和Release都改成工程app路径目录Debug-iphoneos )
1.修改工程加载路径.png 2.修改动态库加载路径.png 3.重选编译.png 4.有了.png 5.重选运行.png

6. 此时库还没有注入Macho文件,需要写脚本注入在XcodeApp.sh加入注入脚本

# ---------------------------------------------------
# 7. 注入我们编写的动态库
echo "开始注入"
# 需要注入的动态库的路径  这个路径我就写死了!
INJECT_FRAMEWORK_RELATIVE_PATH="Frameworks/libLurongHook.dylib"
#
## 通过工具实现注入
yololib "$TARGET_APP_PATH/$APP_BINARY" "$INJECT_FRAMEWORK_RELATIVE_PATH"
echo "注入完成"
1.png

Command+B 然后 Command+9看打印信息:


2.png

用MachoView打开app里面的Macho文件Wechat,找到load Commands下方就可以看见库导进去了:


image.png image.png

Command+B 运行报架构错误:

image.png
查看库的架构 file+库名字及后缀
image.png

7. 前面的都是错误演示,我们现在重新从创建dylib库开始

1.首先将库删除:


1.png 2.png 3.png

2.重新创建同名的库进行前面第1步设置脚本和第4步的操作,然后设置Base SDK:

1.png 2.变化.png

3.设置Code Sign Identity为iPhone Developer:


image.png

4.编译库,看app同级目录,已经自动导入了创建的库


image.png

5.运行项目

上一篇下一篇

猜你喜欢

热点阅读