iOS Hacker 动态库 dylib 注入

iOS Hacker 动态库 dylib 注入

很多情况下我们希望自己写的代码能够在其他应用中运行,如果代码简单的话,可以写 Tweak 或者使用 Cycript。但如果代码多的话,那最好是写一个动态库,然后把文件注入到应用中得到代码的执行。一般有三种方法,本文简单的讲解一下。

一、编写 dylib

​ 首先得先写一个测试用的动态库。Xcode 新建 iOS 工程的时候,选择 Framework 工程,默认文件格式为动态库,如图:

这里写图片描述

​ 动态库的入口函数可以这样写

__attribute__((constructor)) static void EntryPoint()
{
    NSLog(@"EntryPoint");
}

二、DynamicLibraries

​ 注入动态库的第一种方法可以将 dylib 文件放入 DynamicLibraries 目录。写过 Tweak 的朋友,应该知道 Tweak 产生的 dylib 实际会安装到 /Library/MobileSubstrate/DynamicLibraries 目录,在这个目录的 dylib 会被应用加载,里面的 dylib 会有一个 plist 文件,标识哪些进程会加载,如图:

这里写图片描述
这样我们只需要将我们自己的 dylib 放入这个目录,然后新建一个 plist 把微信的包名加进去,就可以让微信加载我们的代码了。

三、修改可执行文件

​ 注入动态库的第二种方法就是修改可执行文件。OSX 和 iOS 应用的可执行文件都属于 Mach-O 文件格式,只要我们在可执行文件的添加了一条 LoadCommand 为 LC_LOAD_DYLIB,将路径指定我们的 dylib,不就行了吗?下面的图可以看出,LoadCommand 加载系统的动态库。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值