iOS逆向 11:代码注入(上)

2021-05-13  本文已影响0人  Style_月月

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逆向 10:应用重签名(下)

dylib注入

#import "CJLHook.h"

@implementation CJLHook
+(void)load{
    NSLog(@"CJLHook ---- 注入成功");
}
@end
#注入
./yololib "$TARGET_APP_PATH/$APP_BINARY" "Frameworks/libCJLHook.dylib"

总结

上一篇 下一篇

猜你喜欢

热点阅读