发红包

发布时间:2019-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了发红包脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

OC 中对某个对象的方法的调用并不像 C++ 一样直接取得方法的实现的偏移值来调用,所以 C++ 方法与实现的关系在编译时就可确定。而 OC 中方法和实现的关系是在运行时决定的。在调用某个对象的方法时,实际上是调用了 obj_msgsend 向对象发送一个名称为方法名的消息,而我们可以替换这个响应这个消息的实现内容。OC 中比较有力的动态特性 Method Swizzing 就是建立在这个基础之上。

参考文章

MobieSubstrate

MobieSubstrate 是现有越狱插件运行的基础;它由3部分组成:

它的作用是替换函数实现

  • MobileLoader

它的作用是加载第三方动态链接库,也就是我们开发的 tweak。在 iOS 启动时,由 launchd 将 MobileLoader 载入内存,然后 MobileLoader 会 dloPEn 所有 /Library/MobileSubstrate/DynamicLibraries/ 目录下的动态链接库。
另外我们需要为编写的 tweak 同时编写一个跟 tweak 同名的 plist 文件,指定 tweak 的作用范围。

这个我们要从二进制文件的结构说起,从下面的图来看,Mach-O文件的数据主体可分为三大部分,分别是头部(Header)、加载命令(Load commands)、和最终的数据(Data)。mobileloader会在目标程序启动时,会根据指定的规则检查指定目录是否存在第三方库,如果有,则会通过修改二进制的loadCommands,来把自己注入进所有的app当中,然后加载第三方库。

使用cycript 开始分析


脚本宝典总结

以上是脚本宝典为你收集整理的发红包全部内容,希望文章能够帮你解决发红包所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。