剖析Linux病毒原型工作过程和关键环节
作者: , 出处:《首席信息官》, 责任编辑: 徐蕊,
2007-09-04 11:47
写这篇文章的目的主要是对最近写的一个Linux病毒原型代码做一个总结,同时向对这方面有兴趣的朋友做一个简单的介绍。
* 定位到文本段,将病毒的代码接到文本段的尾部。这个过程的关键是要熟悉ELF文件的格式,将病毒代码复制到文本段尾部后,能够根据需要调整文本段长度改变所影响到的后续段(segment)或节(section)的虚拟地址。同时注意把新引入的文本段部分与一个.setion建立关联,防止strip这样的工具将插入的代码去除。还有一点就是要注意文本段增加长度的对齐问题,见ELF文档中的描述:
| 以下是引用片段: p_align As ``Program Loading later in this part describes, loadable process segments must have congruent values for p_vaddr and p_offset, modulo the page size. |
| 以下是引用片段: org_entry = ehdr->e_entry; ehdr->e_entry = phdr[txt_index].p_vaddr + phdr[txt_index].p_filesz; |
方法技巧应该很多,这里采用的方法是PUSH+RET组合:
| 以下是引用片段: __asm__ volatile ( ... return:nt push $0xAABBCCDDnt /* push ret_addr */ retn ::); |
- 本文关键词:

