Unix/ELF文件格式及病毒分析

本文深入解析Unix/ELF文件格式,探讨病毒感染机制,包括文本段、数据段、填充页的使用,以及如何在Unix环境中实现病毒的插入与检测。通过分析ELF头、程序和节头表,揭示了病毒感染后的文件布局变化,指出在文本段末尾的填充页是插入寄生代码的理想位置,并讨论了如何维持内存保护机制。
摘要由CSDN通过智能技术生成

Unix/ELF文件格式及病毒分析

作者:Silvio Cesare <silvio@big.net.au>
整理:小四 <scz@isbase.com>
出处:http://www.isbase.com
主页:http://www.isbase.com
日期:2000-6-8

    
★ 介绍

本文介绍了Unix病毒机制、具体实现以及ELF文件格式。简述了Unix病毒检测和反检
测技术,提供了Linux/i386架构下的一些例子。需要一些初步的Unix编程经验,能够
理解Linux/i386下汇编语言,如果理解ELF本身更好。

本文没有任何实际意义上的病毒编程技术,仅仅是把病毒原理应用到Unix环境下。这
里也不打算从头介绍ELF规范,感兴趣的读者请自行阅读ELF规范。

★ 感染 ELF 格式文件

进程映象包含"文本段"和"数据段",文本段的内存保护属性是r-x,因此一般自修改
代码不能用于文本段。数据段的内存保护属性是rw-。

段并不要求是页尺寸的整数倍,这里用到了填充。

关键字:

[...]   一个完整的页
M       已经使用了的内存
P       填充

页号
#1    [PPPPMMMMMMMMMMMM]  /
#2    [MMMMMMMMMMMMMMMM]   |-- 一个段
#3    [MMMMMMMMMMMMPPPP]  /

段并没有限制一定使用多个页,因此单页的段是允许的。

页号
#1    [PPPPMMMMMMMMPPPP]  <-- 一个段

典型的,数据段不需要从页边界开始,而文本段要求起始页边界对齐,一个进程映象
的内存布局可能如下:

关键字:

[...]   一个完整的页
T       文本段内容
D       数据段内容
P       填充

页号
#1    [TTTTTTTTTTTTTTTT]    <-- 文本段内容
#2    [TTTTTTTTTTTTTTTT]    <-- 文本段内容
#3    [TTTTTTTTTTTTPPPP]    <-- 文本段内容(部分)
#4    [PPPPDDDDDDDDDDDD]    <-- 数据段内容(部分)
#5    [DDDDDDDDDDDDDDDD]    <-- 数据段内容
#6    [DDDDDDDDDDDDPPPP]    <-- 数据段内容(部分)

页1、2、3组成了文本段
页4、5、6组成了数据段

从现在开始,为简便起见,段描述图表用单页,如下:

页号
#1    [TTTTTTTTTTTTPPPP]    <-- 文本段
#2    [PPPPDDDDDDDDPPPP]    <-- 数据段

在i386下,堆栈段总是在数据段被给予足够空间之后才定位的,一般堆栈位于内存高
端,它是向低端增长的。

在ELF文件中,可装载段都是物理映象:

    ELF Header
    .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值