二、iOS逆向之《代码注入两种方式》

概论
通过操作演示流程可以得知一个知识点:就是通过把framewrok文件或者dylib文件写入程序中,系统会通过自动调用LC_LOAD_DYLIB的方式读取framework或者dylib文件,从而调用我们自己写的代码。通过MachO软件可以查看到MachO文件中所链接到的dylib文件。如图所示:


MachO软件读取MachO文件查看dylib

如图所示:HQHook便是我自己注入进去的

一、通过framework方式注入

1.0 新建工程WeChat,并引入自动签名shell脚本。
  • 通过上一篇文章的知识点做一下几个操作:
    (1) 新建工程WeChat,然后通过手机运行一次,并通过手机验证描述文件。
    (2) 在工程中引入appSign.sh自动签证脚本
    (3) 在project根目录下新建文件夹APP,把越狱版的微信拷贝进去。
    (4) 运行Xcode,测试能否运行微信。
    (5) 成功则继续下一步
2.0 创建.framework,并复制到.ipa包内

(1) 增加一个名为HQHook(选择Cocoa Touch Framework)的Target
(2) 并在生成的HQHook文件夹中添加一个类Inject.{h,m},在.m文件中添加如下方法

- (void)load {
    NSLog(@"framework:❄️❄️❄️❄️❄️❄️❄️");//如果代码注入则会打印小雪花
}

(3) 编译此Target生成HQHook.framework
(4) 将HQHook.framework复制到已越狱微信WeChat.ipa包内的frameworks文件夹内。
(5) 使用yololib对包内的WeChat MachO文件进行注入动态库HQHook.framework。在WeChat包内容目录下执行如下代码命令

# WeChat 是微信包内的MachO文件,就是对这个文件进行注入。
# Frameworks/HQHook.framework/HQHook 通过yololib注入的其实是这个路径的文件。
# 使用yololib之前,先把下载好的yololib文件拷贝到系统目录(/usr/local/bin)下,这样就可以直接使用yololib命令了,否则必须使用全连接执行。
$ yololib WeChat Frameworks/HQHook.framework/HQHook

(6) 重新打包生成.ipa包,在可以看到PayLoad文件夹目录下执行下面的命令即可完成打包操作,

$ zip -ry WeChat.ipa PayLoad/

(7) 打包好后,将其他不用的东西都删除,仅保留WeChat.ipa文件,将此文件复制到跟目录下新建的APP文件目录中。
(8) 最后再次运行Xcode至手机上
(9) 完毕

  • 补充:上面

二、通过dylib方式注入

1.0 新建工程WeChat,并引入自动签名shell脚本。
  • 通过上一篇文章的知识点做一下几个操作:
    (1) 新建工程WeChat,然后通过手机运行一次,并通过手机验证描述文件。
    (2) 在工程中引入appSign.sh自动签证脚本
    (3) 在project根目录下新建文件夹APP,把越狱版的微信拷贝进去。
    (4) 运行Xcode,测试能否运行微信。
    (5) 成功则继续下一步
2.0 创建.dylib,并复制到.ipa包内

(1) 增加一个名为HQHook(选择Mac OS下的Libray)的Target
并在Build Setting 中将Base SDK 的值改成iOS,再将Code Signing Identity的值改成 iOS development即可。
(2) 并在生成的HQHook文件夹中添加一个类Inject.{h,m},在.m文件中添加如下方法

- (void)load {
    NSLog(@"dylib:❄️❄️❄️❄️❄️❄️❄️");//如果代码注入则会打印小雪花
}

(3) 编译此Target生成HQHook.dylib
(4) 将HQHook.framework复制到已越狱微信WeChat.ipa包内的frameworks文件夹内。
(5) 使用yololib对包内的WeChat MachO文件进行注入动态库HQHook.dylib。在WeChat包内容目录下执行如下代码命令

# WeChat 是微信包内的MachO文件,就是对这个文件进行注入。
# Frameworks/HQHook.dylib 通过yololib注入的其实是这个路径的文件。
# 使用yololib之前,先把下载好的yololib文件拷贝到系统目录(/usr/local/bin)下,这样就可以直接使用yololib命令了,否则必须使用全连接执行。
$ yololib WeChat Frameworks/HQHook.dylib

(6) 重新打包生成.ipa包,在可以看到PayLoad文件夹目录下执行下面的命令即可完成打包操作,

$ zip -ry WeChat.ipa PayLoad/

(7) 打包好后,将其他不用的东西都删除,仅保留WeChat.ipa文件,将此文件复制到跟目录下新建的APP文件目录中。
(8) 最后再次运行Xcode至手机上
(9) 完毕

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容