WİN9X.CIH

Bu virüs son zamanlarda çok yaygınlaştı.Virüs programlarda bir büyümeye neden olmuyor.Bu virüsü tespit edebilmek için detaylı bir inceleme gerekiyor.Virüsün 1-2 bug'ı var,bunlardan faydalanarak virüsü kolayca tespit edebiliriz.Aklıma gelen ilk şu,örneğin cd'den bir dosyayı sabit diskinize kopyalayamıyorsanız,kopyalama işlemi sonunda dosyanın çalışmadığı görüyorsunuz.

Birazda virüsün özelliklerinden bahsedelim;

Bulaştığı dosyalar 32 bit portable executable
Virüs bulaştıktan sonra dosyada büyüme 0 byte
Çalıştığı işletim sistemleri Windows 9x
Varyant sayısı 3

Virüs NT'de çalışmaz.Kodu Nt'de çaılştıracak şekilde değildir.Virüsün bilinen 3 varyantıda yakın tarihlerde yazılmıştır ve yaklaşık olarak 1000 byte civarındadır.Bütün varyantlar, şifrelenmiş bir metin içerir.Aşağıda bunları biraz inceleyelim.

Uzunluk Metin Tetiklenme Tarihi
1003 CCIH 1.2 TT I T 26 NİSAN
1010 CCIH 1.3 TT I T 26 HAZİRAN
1019 CCIH 1.4 TATUNG HER AYIN 26.GÜNÜ

Win9x.CIH, yukarıdaki tabloda görebileceğiniz tarihlerde aktifleşir.Virüs aktifleştiğinde, hard-disk üzerindeki verilerin üzerine yazmaya başlar.Bunun yanısıra virüs sistemdeki FlashBIOS çipini resetlemeye çalışır. Virüs, FlashBIOS'a ulaşmak için direkt erişim portlarını, diske erişebilmek içinse VxD direkt disk erişimini (IOS_SendCommand) kullanır. Günümüzdeki makinalarda FlashBIOS olduğunu düşünürsek olayın ciddiyeti ortaya çıkar. FlashBIOS çiplerinin kontrol edilmesi, board üzerindeki jumperlar tarafından disable/enable edilebilse de, genelde bu ayar enabled şeklindedir.Yani virüs aktifleştiğinde rahatça FlashBIOS çipinizi uçurabilir, FlashBIOS çipinin uçması demek aynı zamanda makinanın da uçması demek.Bilgisayarın boot edilmesi için BIOS programı gereklidir.Virüs te BIOS programını uçurduğu için sistemi açmak mümkün olmaz..(Burayı anladınız sanırım)

     Şimdi virüslerle ilgilenenlerin bu virüsle ilgili merak ettiklerini düşündüğüm 'nasıl oluyor da virüsün bulaştığı programın boyu uzamıyor' konusuna bakalım.

     Bunun için öncelikle PE tipi programların yapıları hakkında az çok bilgi sahibi olmak gerek. PE header Windows 95/98/NT sistemlerinde kullanılıyor. Bu tip dosyaların 003Ch ofsetlerinde PE header'ın EXE dosya içindeki konumu yer alır.Buradaki ofset adresine bakarsak burada PE karakterlerini görürüz.Buradan itibaren PE header yer alır. PE header yapı itibarıyle pek çok boşluklu alanlar içerebilir ki hemen hemen bütün PE tipi programlarda görüleceği üzere PE headerın hemen ardında epeyce bir bölüm boştur.Win9x.CIH, kodunu bu gibi kodu için yeterli boş olanlara yazar. Bunun sonucunda virüslü programlarda herhangi bir boy uzaması olmaz.

DOS EXE başlığı ve DOS kodu
PE (Portable Exe.) başlığı
Reassembly kodu
Virüs kodu bölüm #1
PE bölümü #1
Virüs kodu bölüm #2
PE bölümü #2
Virüs kodu bölüm #x
PE bölümü #x

Win9x.CIH virüsünün PE EXE dosyaları içindeki yerleşimi.Win9x.CIH virüsünün bulaştığı bir programı, temiz bir makinada çalıştırdığınızda, virüslü program Int 03'ü çağırır ve DR0 (Debug register0) yazmacına bakar. DR0 yazmacında sıfırdan farklı bir değer varsa virüs daha önce hafızaya yüklendirğini anlar ve kontrolü ana programa bırakır.Eğer DR0 yazmacında sıfır değeri gelmiş ise virüs Int 03'ü Interrupt Kesilme tablosuna direkt müdahele ederek kontrol altına alır. Int 03 genelde debuggerların breakpoint noktalarında program çalışmasına ara vermek için kullandıkları bir kesilmedir. Virüs bu sayede kodunun disassembly edilmesini engellemeye çalışır, bu aynı zamanda virüs kodunun CPU Supervisor seviyesinde çalıştırılmasını sağlar.

Eğer bu virüs bilgisayarınızda varsa yada var olduğundan şüpheleniyorsanız.Hemen anti-virüs programının en son sürümünü yükleyin ve bir virüs taraması yapın.Bu virüs çok tehlikeli bir virüstür.Aksi taktirde herhangi bir ayın 27 sinde çoktan iş işten geçmiş olabilir. :))))