trojenlerin çalısma mantıgı

Son güncelleme: 01.04.2006 21:10
  • 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 programciklar 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

    // pc kapatma islemleri
    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..


    iste olay bu kadar. trojan budur. Dedigim gibi trojan yazmak is degil. onemli olan
    onu gelistirmek. istemleri ve cevaplari cogaltmak
#04.03.2006 15:24 0 0 0
  • paylaşımın için sağol
#09.03.2006 01:39 0 0 0
  • tşkler
#16.03.2006 14:08 0 0 0
  • teşekkürler merak ettim.
#17.03.2006 23:50 0 0 0
  • saol
#21.03.2006 14:01 0 0 0
  • tşk
#01.04.2006 21:10 0 0 0