Tekil Mesaj gösterimi
Alt 24-07-2009, 23:37   #1
nLqn
 
nLqn - ait Kullanıcı Resmi (Avatar)
 
DeLPHi İLe TroJeN YaZMa (Açık Kodlu)

DeLPHi İLe TroJeN YaZMa (Açık Kodlu)
Arkadaslar eminimki bir cogumuz bir trojanin calisma mantigini merak ediyordur. Yani
nasil olurda uzaktaki(remote) bir bilgisayar ile baglanti kuruluyor diye... Az cok
ogrendigim bir kac seyi paylasmak istedim. Simdi trojan adli progr:-):-):-):-):-)lar bilindigi
gibi 2 parcadan olusmaktadir. [Öncelikle]

1 - Client(Istemci)
2 - Server(Sunucu)

Olay sudur : server yuklenmis oldugu bilgisayarda serversocket paketi ile bir port
acar ornk : 5110
ve client yani istemci de internette bu serverin yuklenmis oldugu bilgisayarin ip
numarasina istem paket yollar ve cevap bekler : Cevap geldigi zaman iki makine
arasinda iletisim kurulmus olur. Simdi bu olayin delphi de nasil yapildigini
anlatmaya calisacagim.

Server.

Ilk oncelikle formumuza bi tane serversocket [Internet/ServerSocket] adli component
yerlestiriyoruz. Daha sonra TForm1.FormCreate yordamina yani formumuzun acilis
yordamina bir takim ozellikler belirliyoruz.. ornegin simdi ilk oncelikle mantik
olarak bizim yapmamiz gereken ne? tabiiki serversockete bir port belirlemek. dedigim
gibi bunu form yuklenme sirasina koycaz. bunun icin yani port acmak icin
"serversocket1.port:=5110;" diyoruz. daha sonra serversocketi aktif hale
getiriyoruz.. "serversocket1.active:=true;". ve bu islemleri gerceklestirdikten
sonra programi create edip calistirisak serverimizi kurmus oluyoruz. evet iste
server bundan ibarettir. Simdi bunu ustunu cizerek soyluyorum Trojan yazmak olay
degil! Herkes trojan yazar. ve trojan yazmak haddinden fazla basittir. yapmaniz
gereken tek sey uc bes kod yazmak. Onemli olan o trojani gelistirmek ve cesitli
fonksiyon eklemektir.

Neyse sira geldi clientsocketten gelen paketleri istemleri serverde uygulayama.
simdi clientten gelen mesajlar serverde serversocket1.socket.receivetext();
fonksiyonunda saklidir. Ornegin clientten biz
clientsocket1.socket.sendtext('slm'; diye istem yollarsak bu serverde
serversocket1.socket.receivetext(); fonks. da saklanir. Simdi basit bir chat
hazirlayalim trojanimizda. Oncelikle gelen mesajlari okumak icin serversocke
componentine tiklayip Object Inspector Penceresinden Events e oradan OnClientRead i
gelelim cift tiklayalim.. Simdi orada ornegin soyle bir mantik belirleyelim. Diyelim
ki clientten gelen mesajlarin tamamini direct olarak memo1 nesnesine aktaralim.
bunun icin yapmamiz gereken onclientread kismina
memo1.lines.add(Socket.ReceiveText); yazmaktir. bu sekilde clientsocketten gelen
butum mesajlar memo1 nesnesine eklenecektir..


Client.

Bir trojanda tahmin edebileceginiz gibi onemli olan serverin fonksiyonlaridir. biz
mesela clientten server socket.sendtext('pc_kapat'; diye paket attigimizda bu
server tarafindan yorumlanir. yani soyle olur server.socket.receivetext de derizki

if socket.receivetext='pc_kapat' then
begin
socket.sendtext('pc kapatiliyor...';
// pc kapatma islemleri
end;
end.
bunu serverin read kismina yazarsak
clientten pc_kapat istemi gonderildiginde direct bilgisyari kapatacaktir. Simdi biz basit bir chat hazirliyorduk. dedigim gibi gelen mesajlar receivetext(); te saklanir mesaj yollamak icinde sendtext(); i kullaniriz. clientin de read olayi vardir yani serverden gelen mesajlari okur. clientin read
kismina ornegin memo1.lines.add(socket.receivetext) yazarsak direct serverden gelen
mesajlari okuruz
__________________
Rakı dolu bir küvette boğulmak istiyorum yıkarken imam bile sarhoş olsun .(


simsiyaH kaDerimin bembeyaz uMudusUn ,)
nLqn Ofline   Alıntı ile Cevapla