Bu sayfadaki yazılar
Sayfanın metni
Sayfa 37
VİRÜSLER
Yüzyılın bilgisayar belası, hatta bilgisayar vebası virüsler. Bilgisayardaki datalarımıza, dosyalarımıza birkaç seneden beri büyük zararlar veren bu tehlike nedir? Yoksa önlenemez bir tehlike mi? Bu tehlikenin boyutu nedir? Virüsler canlı yaratıklar mı? Bunlar kafamızı kurcalayan sorulardan bazıları. Sorular o kadar çoğaltılabilir ki! Ama merak etmeyin aklınıza takılan bütün soruların cevabını bu yazı dizimizde bulacaksınız.
Amiga çıktıktan bir sene sonra başlayan bu virüs belası, her Amiga kullanıcısını oldukça çok rahatsız ediyor. Özellikle Amiga'da dosyalama ile uğraşan kullanıcıların büyük derdi. Bozulan Deluxe Paint resimleri, kaydedilmeyip de kaydedilmiş gibi görünen dosyalar, herkesin başına gelen olaylardan sadece birkaçı. Ya onca zamandan beri yaptıklarımızı sakladığımız bir data disketinin formatlanması? Hepsi ne kadar korkunç değil mi? Ama merak etmeyin! Biz bu yazımızla sizi bu kabuslardan kurtaracağız. Yapacağınız tek iş yazımızı dikkatle okumak ve her şeyi titizlikle yerine getirmek. Hazırsanız artık başlayalım. Böcek ilacınızı aldınız mı? Sadece şakaydı.
Amiga'da virüs belasının başlangıcı 1987 ve 1988 seneleri arası. O zamanlar, İsviçre'de kendi halinde crack yapan SCA grubu, sadece, Amiga'da da virüs yapabileceğini ispatlamak için oturup bir virüs yazdı. Amaç, sadece eğlence ve bir şeyler ispatlamaktı. Aptalca mesajlar veren ve sadece kendisini boot block'lara kopyalayan basit bir virüsü dağıtmaya başladılar. SCA virüsü, korsan programlar sayesinde birkaç ay gibi kısa bir sürede tüm Avrupa'ya dağıldı. SCA grubu aniden, tüm Amiga kullanıcılarının ve firmaların nefretini aldı. Gerçi daha sonra bir software firmasına virüs detectör yaptılar, ama hala SCA'yı kimse sevmiyor. Bu olaydan sonra artık herkes ya eğlence ya da virüskiller'ını yapıp satmak için virüs yapmaya başladı. Virüsler o kadar çok çoğaldı ki, Commodore firması yeni çıkardığı 1.3 versiyonlara virüs koruyucu benzeri bir sistem koydu. Bu sistem o anda disk driver'a takılan disketin boot block'unu kontrol ederek reset vektörüne atlayan programcıklar varsa guru veriyor. Kontrolü aşmak fazla sürmedi. İki üç ay sonra bu kontrolü aşan virüsler piyasada cirit atmaya başladılar ve sürekli olarak çoğalıyorlar. Bence Amiga Baby piyasaya çıktığı zaman virüs derdinden kurtulacağız. Haydi Amiga Baby bizi fazla bekletme!
Her şeyden önce yeni Amiga kullanıcıları için virüs'ün ne olduğunu. Virüsler, canlı organik yaratıklar değildir. Bunlar sadece 1024 byte'lık (sadece boot block virüsleri 1024 byte'dır) programcıklardır.
SCA'dan sonraki boot block virüslerini tanıtmaya başlayalım.
BOOT BLOCK VİRÜSLERİ
BYTE BANDIT: SCA gibi, dosyalara (file) zararı yoktur. Sadece boot block düşmanı, kendi halinde bir virüstür. Arada bir ekranı siyahlaştırır. Bu virüsü tanımayan kişiler hemen bilgisayarı resetlerler. Ama bu işin bir çaresi var. Eğer soldan başlayarak sırası ile 'ALT + AMİGA + SPACE + AMİGA + ALT' tuşlarına basarsanız, ekran eski haline döner. Bu virüsün farklı versiyonları mevcut.
DASA 2.0: BYTE BANDIT gibi disketteki dosyalara zararı olmayan, sadece boot block'ları silen bir virüstür. Bu virüsün marifeti bilgisayarın hafızasını dolmuş gibi göstermektir. Eğer DASA 2.0 hafızadaysa, her resetten sonra hafızanın 20 Kbyte'lık bölümünü yokmuş (dolu gibi) gösterir. Virüs, hafızadan silinmeden 25 defa resetlenirse bilgisayarınızın hafızası tamamen dolmuş gibi gözükecektir. Bunun tek çaresi makinanızı kapatıp hafızadaki her şeyin silinmesini beklemenizdir.
GADAFFI: Ötekiler gibi dosyalara zararı yoktur ama, bu virüsün doğrudan diskete ve disk driver'a zararı vardır. Aktif hale geçtikten sonra disk driver'ın kafasını sıfırıncı track'tan yetmiş dokuzuncu track'a kadar hareket ettirir. Bu sayede, disk driver'ınızdan ilginç sesler (gürültüler) çıkar. Bu durumda uzun süre kalırsa, disketinizde ve disk driver'ın kafasında hasarlar meydana gelebilir. Virüsü yapan programcının, Libyalı olduğu söyleniyor. GADDAFİ’nin yeni versiyonu, GADDA-FI IS BACK maalesef henüz ülkemize gelmedi.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 36
Örnek:
BREAK ON
ON BREAK GOSUB ALT
DIM ADET(99),FİYAT(99) LET TOPLAM=99 OPEN "O",#1, "STOK"
FOR I=1 TO TOPLAM WRITTE#1 ,ADET(I),FİYAT(I) NEXT I CLOSE#1:BREAK OFF INPUT "Yazıcı çıktısı ? E?H", CEVAP$
IF CEVAP$="Y" THEN BREAK ON: GOSUP KONTROL END ALT: CLS:BEEP:PRINT "Şu anda programdan çftmazsınız" RETURN
CALL KOMUTU:
Kullanım şekli: CALL alt rutin ismi [(argüman-listesi)] isim [argüman-listesi]
SUB ile tanımlanmış bir alt programa kontrol transferi yapılabilir, bir makina dili program ya da sistem library rutini sabit bir bellek adresine depolanabilir. CALL ile bir alt program çağrıldığında parametreler sayısal ya da yazısal sabit veya değişken olabilir ve bunlar alt programa geçirilebileceği gibi, alt programın değerleri de program tarafından kabul edilir.
Programlarınızda kullanacağınız en önemli komutlardan biridir. CALL komutu ile, SUB yönergesi ile tanımlanan bir alt programı, sabit adresli bir makina dili alt rutini ya da yine makina dili bir LIBRARY (kütüphane) rutinini çağırabilirsiniz. Komutta CALL kelimesinin kullanımı opsiyoneldir. Kullanılmazsa, argüman listesi parantez içine alınmaz.
Sub yönergesini kullanan bir alt programı çağırırken değişkenlerin geçişi tanımlanır, ifadeler değer olarak geçecektir. Örneğin:
SUB ALT (x,y) STATIC END SUB CALL ALT (a,b) Alt rutinle program arasındaki değişken geçişlerinden yazımızın önceki bölümle- rinde bahsetmiştik.
Amiga Basic, makina dili rutinleri transfer etmenin bir yoludur. İsim alt rutinin bellekteki başlama noktasını (adres) ifade eden basit bir değişken belirtir, bir dizi elemanı olamaz. Argüman listesi, alt rutine geçecek argümanları listeler. Parametreler de, uzun ya da kısa tamsayılar olmalıdır, standart C-dili çağırma kurallarının kullandığı değerle geçebilir. Aksi takdirde Amiga Basic "Type mismatch" mesajı verir. Adres, tek ya da çift açıklıkta olabilir: CALL Rutin(VARPTR(x)) Adres yazısal dizi olursa:
CALL Rutin(SADD(x$)) Aşağıdaki örnekte, değişkenler kısa tamsayı (&) olarak adresi tutarlar. Kısa tamsayı adreslerin 24 bit kullanmayı unutmayın. a=0:b=0
DIM Kod%(100) FOR I=0 to 90 READ Kod%(I) NEXT I KodAd&=VARPTR( Kod%(0))
CALL KodAd&(a.b) Kütüphaneler Amiga'nın özel düzenlen-
miş kaynak dosyalarıdır. Bir LIBRARY'den makina dili altrutin çağırmak için: LIBRARY "graphics.library" CALL Çizim(50,60) Bu örnekle Amiga Basic Çizim adıyla bir değişken yaratır. Bu bilgiler daha sonra makina dilindeki yerlerine değişken ismi ile saklanır. Bu nedenle değişken kısa tamsayı olamaz.
Aşağıdaki örnek, bir "Type Mismatch" hatası üretir:
DEFINT A-Z CALL Çizim(50,60) Aynı örneğin doğrusu: DEFINT A-Z CALL Çizim#(50,60) Gelecek ay görüşmek üzere........