细粒度随机化技术:Marlin与移动可信代理MTA解析
Marlin:细粒度随机化方法解析
在当今的计算机安全领域,代码复用攻击如返回导向编程(ROP)攻击日益猖獗,对系统安全构成了严重威胁。为了有效抵御此类攻击,研究人员提出了一种名为Marlin的细粒度随机化方法。
Marlin的工作原理
Marlin的核心在于对应用程序二进制文件进行随机化处理,以增加攻击者实施ROP攻击的难度。其具体工作流程如下:
1. 获取反汇编列表 :利用工具获取包含程序指令和内部符号的应用程序二进制文件的反汇编列表。
2. 生成参数文件 :根据反汇编列表生成一组参数文件,这些文件包含二进制文件中存在的符号(函数)列表,以及它们的起始地址和长度。同时,还会创建一个文件,列出感兴趣函数内部相对跳转的地址。需要注意的是,并非所有函数都被视为感兴趣的函数,因为对某些函数(如start函数)进行随机化会导致二进制文件无法运行。
3. 执行随机化操作 :将参数文件作为输入,进行函数块的洗牌和跳转修补操作。
4. 完成处理 :操作完成后,删除参数文件,生成新的“marlin化”二进制文件,该文件可以像普通可执行二进制文件一样运行。
graph LR
A[获取反汇编列表] --> B[生成参数文件]
B --> C[执行随机化操作]
C --> D[完成处理]
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



