ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一个Linux病毒的原型分析(转)

一个Linux病毒的原型分析(转)

原创 Linux操作系统 作者:ba 时间:2007-08-15 20:03:34 0 删除 编辑
一个Linux病毒的原型分析(转)[@more@]  本文仅做参考学习

  技术天地: 这篇文章的目的主要是对最近写的一个Linux病毒原型代码做一个总结, 同时向对这方面有兴趣的朋友做一个简单的介绍。 阅读这篇文章你需要一些知识,要对ELF有所了解、能够阅读一些嵌入了汇编的C代码、了解病毒的基本工作原理。

  作者既不是一个virus coder,也不是anti-viruscoder,这篇文章旨通过对一个Linux的病毒原型的工作原理和关键环节的分析和介绍来让揭开病毒的神秘面纱,使您了解病毒的工作机理,也同时对理解Linux的系统编程有所帮助。

  一、 介绍

  写这篇文章的目的主要是对最近写的一个Linux病毒原型代码做一个总结,同时向对这方面有兴趣的朋友做一个简单的介绍。阅读这篇文章你需要一些知识,要对ELF有所了解、能够阅读一些嵌入了汇编的C代码、了解病毒的基本工作原理。

  二、 ELF Infector (ELF文件感染器)

  为了制作病毒文件,我们需要一个ELF文件感染器,用于制造第一个带毒文件。对于ELF文件感染技术,在Silvio Cesare的《UNIX ELF PARASITES AND VIRUS》一文中已经有了一个非常好的分析、描述,在这方面我还没有发现可以对其进行补充的地方,因此在这里我把Silvio Cesare对ELF Infection过程的总结贴出来,以供参考:
CODE:
The final algorithm is using this information is.
* Increase p_shoff by PAGE_SIZE in the ELF header
* Patch the insertion code (parasite) to jump to the entry point
(original)
* Locate the text segment program header
* Modify the entry point of the ELF header to point to the new
code (p_vaddr + p_filesz)
* Increase p_filesz by account for the new code (parasite)
* Increase p_memsz to account for the new code (parasite)
* For each phdr who's segment is after the insertion (text segment)
* increase p_offset by PAGE_SIZE
* For the last shdr in the text segment
* increase sh_len by the parasite length
* For each shdr who's section resides after the insertion
* Increase sh_offset by PAGE_SIZE
* Physically insert the new code (parasite) and pad to PAGE_SIZE, into
the file - text segment p_offset + p_filesz (original)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10617731/viewspace-959652/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    1621
  • 访问量
    4430955