iOS开发逆向之代码注入(上)

2021-05-20  本文已影响0人  iOS鑫

本文主要讲解代码注入的两种方式:FrameWork注入、dylib注入

代码注入

一般修改原始的程序,是利用代码注入的方式,注入代码就会选择利用FrameWork或者Dylib等三方库的方式注入。

查看Mach-O文件

在了解注入前,我们首先需要了解ipa包中的静态库是如何注入的,有以下两种方式查看Mach-O可执行文件

Mach-O文件中主要看load Commands(即加载命令集),从这里可以看出动态库的加载等。其中大部分格式为:LC_LOAD_DYLIB(xxx),是在指定路径下加载xxx,如下所示

所以,综上所述,如果需要注入代码,是以动态库的形式注入

方式1:Framework手动注入

第一步:动态库进入App包,即Framework注入

+(void)load{
    NSLog(@"CJLHook ------ 注入成功");
}

第二步:yololib手动注入,修改Mach-O字段

方式2:dylib注入

准备工作:创建一个空工程,并进行WeChat的重签名,可以参考这篇文章iOS逆向 应用重签名(下)
dylib注入

#import "CJLHook.h"

@implementation CJLHook
+(void)load{
    NSLog(@"CJLHook ---- 注入成功");
}
@end

#注入
./yololib "$TARGET_APP_PATH/$APP_BINARY" "Frameworks/libCJLHook.dylib"

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS开发交流群:130 595 548,不管你是小白还是大牛都欢迎入驻 ,让我们一起进步,共同发展!(群内会免费提供一些群主收藏的免费学习书籍资料以及整理好的几百道面试题和答案文档!)

总结

上一篇 下一篇

猜你喜欢

热点阅读