Bu sayfadaki yazılar
Sayfanın metni
Sayfa 25
Uzun zamandır virüs dünyasında bir durgunluk vardı. Sanırım bu da sizin gözünüze çarpmıştır. Disketlerinize bulaşmaya çalışan virüsler ya BYTE-BANDIT ya da LAMER EXTERMINATOR olduğu için bütün virüs öldürücü programlar tarafından tanınıyordu. Biz de virüslerden uzak dünyamızda kendimizden emin, “Biz disketlerimizi yalıttık, yabancı program da çalıştırmıyoruz. Bize virüs mirüs bulaşmaz” şeklinde havalar atıyorduk ki, birden VirüsX Cold-Start vektörünün yabancı bir program tarafından ele geçirildiğini söyledi. Büyük bir olasılıkla bir virüsle karşı karşıyaydık. Bu yüzden hemen araştırmaya giriştik ve sorumlu disketi bulmaya çalıştık. İlk olarak 3.5” disketten boot edilen hard diskimizden şüphelendik, ama dokunulmamış bir tarafta sakladığımız disketle hard diski açınca, VirüsX ortalığın sakin olduğunu söyledi. Bu durumda tek bir ihtimal kalıyordu geriye, o da hard diski açmak için kullandığımız diskete virüs bulaştığıydı. Hemen bir boot blok kontrolü yaptık, ama boot standart çıktı. Bu durumda ya BSG9 ya da IRO bulaşmıştır (bu virüslerin ikisi de dosyalara bulaşır) diyerek bu virüslerin de kontrolünü yaptık, ama disket gene temiz görünüyordu. O zaman aklımıza XOPER adlı program geldi. Bu program sayesinde istediğiniz anda Cool Capture, Cold Computer gibi önemli vektörleri kontrol edebiliyorsunuz. Temiz bir diskten (Hard diski açmadan) Xoper'ı yükledik ve ikinci TASK olarak çalıştırdık. Beklediğimiz gibi tüm vektörler sağlamdı. CLI'ya dönüp virüslü disketin Startup-Sequence'inde bulunan ilk programı çalıştırdığımızda vektörlerin değiştiğini gördük. Bilgisayarı kapatıp açtıktan sonra bu programı silip yerine yenisini çektik ve Hard Diski açtık. VirüsX gene alarm verdi. Bilgisayarı kapatıp açtık ve kara kara düşünmeye başladık. Virüsün nerede olabileceği hakkında en ufak bir fikrimiz yoktu. Tekrar XOPER'ı yükledik ve vektörleri kontrol ettik. Tabii ki her şey yolundaydı. Daha sonra virüslü disketi sürücüye taktık ve hiçbir şeye dokunmadan vektörlere baktık. Virüs belleğe girmişti bile. Disket takıldığında ilk olarak diskete ait Disk-Validator yüklenip çalıştırıldığına göre bu kimliği belirsiz virüs yaşayabilmek için Disk-Validator'ları seçmiş olmalıydı. Hemen diskmaster'ı yükledik ve virüslü diskin L Directory'sinde bulunan Disk-Validator'un uzunluğuna baktık. Tabii ki olması gerektiği gibi 1848 bayt uzunluğundaydı. Ama bu bizi yıldırmadı. Virüsün uzunluğu Disk-Validator'le aynı olabilirdi veya uzunluğun farklı gösterilmesi sağlanmış olabilirdi. Bu durumda en iyisi deneme yanılma olur diyerek Disk-Validator'un ismini değiştirdik (dosyayı silseydik elimizdeki tek örneği kaçırmış olurduk). Bu sayede program bir Disk-Validator olarak görülemeyecekti. Bilgisayarı kapattık ve hard diski sabıkalı diskten açtık. Her şey tahmin ettiğimiz gibi gelişti ve VirüsX alarm vermedi. Böylece hem virüsün yerini saptamış, hem de yok edilme şeklini öğrenmiş olduk. Daha sonra bir makine dili monitörüyle (kontrollü ortamda) özel olarak belleğe yüklediğimiz virüsü incelerken adının SADDAM virüsü olduğunu öğrendik. Bu da yeni bir virüsle karşı karşıya olduğumuzu kesinleştirdi. Daha sonra yabancı dergilerden birinde rastladığımız bir yazıda SADDAM hakkında daha detaylı bilgi aldık. Bu yazıya göre SADDAM'ın etrafa zarar verme potansiyeli çok yüksek ve bulaştığı diskleri bozabiliyor. Ama bu bozulma işlemine başlaması için sizin ne yapmanızı beklediği henüz meçhul. Bilinmeyen yönleri oldukça fazla olması bu virüsü iki kat daha tehlikeli hale getiriyor. SADDAM'ın diğer virüslerden
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 24
program 1: taban — $232b kutu21- $2340 kutu2 - $232d kutul - $232c geç — - $232a *2$2341 kaydır clc ;başlangıç Ida kutu2l1 ade kutu2 ;kutuları ekle emp #10 bee geçici şa<l0: zaten MOD 10 sbe #10 şa za MOD 10 geçici sta — geç ;geçici bellekte sakla ldx #20 ;kayacak kutu sayısı döngü Ida taban,x ;bu kutuyu... sta — taban4İ,x ;...buraya al dex ;bir alttaki kutu cpx #0 kaldi mı? bne döngü ;hayır, devam lda geç ;geçici değeri al sta — kutul ;kutul'e koy rts program3: taban — $232b kutu21 — $2340 kutu2 —$232d kütul > $232c geç — $232a bayrak — $2329 yüksek — $2328 başlangıç değerleri---- .byte 3,5,9,4,7,1,4,6,3,2,0,5,7,4,9,8 ilk lda #0 şilk ayarlamalar için giriş sta yüksek — ;sayacın yüksek baytı sta bayrak şbayrağı temizle tay şsayacın alçak baytı kaydır clc şyeni sayı hesapla, giriş ida kutu21 ade kutu2 emp #10 bec geçici şa<İ0: zaten MOD 10 sbe #10 şa za MOD 10 geçici sta geç ş;kaydırma bitene kadar sakla ldx #20 sayısı döngü Ida taban,x — ;bu kutuyu... sta taban4İ,x ;buraya çek dex kutu emp #0 şbitti mi? bne döngü şhayır, devam lda geç şgeçici değeri al sat kutul kutuya yaz Ida bayrak emp #$ff ş;bayrak havada mı? bne döngü2 — ;hayır, 2560 kere kaydır rts döngü2 iny artır cpy #0 bne kaydır 30 değil, devam inc yüksek ;0, yüksek sayacı artır lda yüksek emp #10 ;kaydırmalar bitti mi? bne kaydır ş;hayır, kaydır. Ida #$ff sta bayrak şevet, bayrağı kaldır jmp kaydır. — ;bitti
PROGRAM ADI
» PROGRAM 2
tuları okuyarak 21'e kadar basamaklı sayılar elde edebilirsiniz. Gördüğünüz gibi tesadüfi sayılar elde etmek oldukça kolay. Bütün yapmanız gereken buradakine benzer programlar yaratmak. Bu programlar kendini tekrarlama konusunda işinizi halledebilecek kadar iyidirler.
00100 REM RNDİ-BASIC YÜKLEYİCİ *DEMÜ <032> 00110 FOR A-0 TO 35:READ B:POKE <159> 00120 NEXT <130> 00200 REM ----- RNDi DEM0------ <080> 00210 PRİNT "21 BASAMAKLI BİR SAYI GİRİN" <043> 00220 FOR Az0 TO 20 <ı43> 00230 GET K$:1F THEN 230 <156> 00240 <159> 00250 POKE <255> 00260 PRİNT CHR$(147);J$ 00270 NEXT <026> 00280 SYS 9025:REM -$2341 <063> 00290 PRINT PEEK(9004);:REM -$232C 00300 GOTO 280 <110> 00310 REM <118> 01000 DATA 24,173,64,35,109,45,35,201 <023> Ol1OLO DATA 10,144,2,233,10,141,42,35 <244A> 01020 DATA 162,20,189,43,35,157,44,35 <204> 01030 DATA 202,224,0,208,245,173,42,35 <002> 01040 DATA 141,44,35,96 <1BO> PROGRAM ADI : PROGRAMA 00100 REM RND2-BASİC YÜKLEYİCİ *DEMO <096> 00110 FOR TO 90:READ B:POKE 90094*A,B <163> 00120 NEXT <130> “00200 REM ----- RND2 <088> 00210 "5 BASAMAKLI BIR SAYI GİRİN" <099> 00220 FOR A-0 TO 4 <096> 00230 GET K$:1F K$-"" THEN 230 <156> 00240 <159> 00250 POKE VAL(K$) <255> 00260 PRİNT <227> 00270 NEXT <026> 00280 SYS 9025:REM -$2341 <063> 00290 SYS 9034:REM -$234A <045> 00300 PRİNT PEEK(9004);:REM -$232C 00310 290 <136> 00999 REM <043> 01000 DATA 3,5,9,4,7,1,4,6 <070> 01010 DATA 3,2,0,5,7,4,9,8 <0B4> 01020 DATA 169;,0,141,40,35,141,41,35 <24A9> 01030 DATA 168,24,173,64,35,109,45,35 <025> 01040 DATA 201,10,144,2,233,10,141,42 <101> 01050 DATA 35,162,20,189,43,35,157,44 <225> 01060 DATA 35,202,224,0,208,245,173,42 <080> 01070 DATA 35,141,44,35,173,41,35,201 <098> 01080 DATA 255,208,1,96,200,192,0,208 <068> 01090 DATA 208,238,40,35,173,40,35,201 <109> 01100 DATA 10,208,198,169,255,141,41,35 — <05B> 01110 DATA 76,74,35 <090>