《九阴真经: iOS黑客攻防秘籍》新书发布,干货满满,快来看看吧!

iOS 安全论坛 - 专注于研究 iOS 安全

 找回密码
 立即注册
查看: 638|回复: 7

学习14章 动态链接库,加壳,修改text段启动失败。

[复制链接]

40

主题

105

帖子

586

积分

高级会员

Rank: 4

积分
586
发表于 2020-9-24 16:38:02 | 显示全部楼层 |阅读模式
本帖最后由 44269597 于 2020-9-24 16:44 编辑

按着14章的思路我对text段加密,但是启动过程中就失败了,因为启动先运行的 ARCLite_load函数。我查看结果是libobjc.A.dylib`call_load_methods调用了这个函数。
那问题是,加载动态库过程中,程序怎么确定要先运行那些初始化函数的那,在dylib的那一段有写出来,还是说有什么规则。
还有我使用__attribute__[color=rgba(0, 0, 0, 0.85)]((constructor))FUNA,修饰函数,案例说应该先运行FUNA中的代码,可惜实际情况不是这样,有什么办法可以让FUNA函数最先执行那?
回复

使用道具 举报

119

主题

580

帖子

2583

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2583
发表于 2020-9-25 01:39:02 | 显示全部楼层
1. 程序怎么确定要先运行那些初始化函数。在 Mach-O 和 ELF 里都有一个 mod_init 的列表,标识模块最早加载的函数,你可以了解一下
2. 苹果有限制,你改了TEXT加密的话,按理说是没办法还原回去的。DATA段是可以自己加密。
回复

使用道具 举报

119

主题

580

帖子

2583

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2583
发表于 2020-9-25 10:56:03 | 显示全部楼层
iOS 平台是 mod_init_func,安卓平台是 init_array
回复

使用道具 举报

40

主题

105

帖子

586

积分

高级会员

Rank: 4

积分
586
 楼主| 发表于 2020-9-25 11:31:07 | 显示全部楼层
exchen 发表于 2020-9-25 10:56
iOS 平台是 mod_init_func,安卓平台是 init_array

mod_init_func我看,里面确实连接的我写的初始化函数,但是系统加载过程中还是会先执行ARCLite_load。这个我google上都没查到原因
回复

使用道具 举报

119

主题

580

帖子

2583

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2583
发表于 2020-9-25 16:18:26 | 显示全部楼层
ARCLite_load 你是在哪里看到的?可以调试一下看看他的作用是什么?
回复

使用道具 举报

40

主题

105

帖子

586

积分

高级会员

Rank: 4

积分
586
 楼主| 发表于 2020-9-25 16:47:14 | 显示全部楼层
exchen 发表于 2020-9-25 10:56
iOS 平台是 mod_init_func,安卓平台是 init_array

暂时来,是类的+load方法最先执行,然后是constructor关键字函数,然后是main。
回复

使用道具 举报

119

主题

580

帖子

2583

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2583
发表于 2020-9-26 10:48:43 | 显示全部楼层
44269597 发表于 2020-9-25 16:47
暂时来,是类的+load方法最先执行,然后是constructor关键字函数,然后是main。 ...

你说的对,今天我试了一下,+load 是最先执行
回复

使用道具 举报

40

主题

105

帖子

586

积分

高级会员

Rank: 4

积分
586
 楼主| 发表于 2021-3-19 18:06:57 | 显示全部楼层
exchen 发表于 2020-9-26 10:48
你说的对,今天我试了一下,+load 是最先执行

用什么方法可以控制类load函数是否被调用?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|iOSHacker

GMT+8, 2021-5-6 18:19 , Processed in 0.021313 second(s), 19 queries .

iOS安全论坛

© 2017-2020 iOS Hacker Inc. 京ICP备17074153号-2

快速回复 返回顶部 返回列表