程序编程:编程com型病毒程序



    COM文件是种单段执行结构起源于CPM-86操作系统其执行文件代码和执行时内存影象完全相同其始执行偏移地址为100H对应于文件偏移0运行我们DEBUG我们先来做个练习我们拿DOS6.22中more.com来做实验 

C:\\>debug more.com 
-u 
-u 
0CA4:0100 B8371E MOV AX,1E37 ;注意前 3个字节内容 
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  16 ;等待按键 
0CA4:0AF5 cmp al,1b ;等待ESC键 
0CA4:0AF7 jnz af1 
0CA4:0AF9 mov word ptr [100],37b8 ;恢复开始 3个字节 
0CA4:0AFF mov  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 
-q 
修改完了我们来执行下more发现什么没有?哈哈如果不按ESC键无法执行流程很简单: 
1、把开始处指令修改成了跳转到最后添加位置 
2、最先执行添加(相当于病毒模块)等待ESC键 
3、按下ESC键后修改回开始指令跳转回最开始(执行原始
好了大家如果能看懂上面这段话那你离编写自己COM病毒将不会很远了 
Tags:  宏程序编程 数控编程程序 程序编程

延伸阅读

最新评论

发表评论