Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
Zekai KRAKER: -Ayıp Yahu... bu düpedüz “HIRSIZLIK”
NASIL ANLADINIZ: HIRSIZLIK -
Aldığınız bir program kaydının bozulma tehlikesine karşı bir yedeğini bulundurma isteği hepimizde var. Bu nedenle de koruma altına alınan programlara düşmanca baktığımız olmuştur. Ancak program kopyacılığının vardığı boyutlara bakıldığında koruma sistemlerine neden gerek duyulduğu kolayca anlaşılacaktır. Çok iyi örgütlenmiş profesyonel gruplardan amatör bireylere kadar hemen her kişi ve kuruluş kopyacılık işlemiyle uğraşmaktadır. FAST'ın (Federation Against Software Theft - yani Program Hırsızlığına Karşı Federasyon) ve aynı zamanda Virgin Software'in sahibi Nick Alexander yılda yaklaşık 150.000.000 sterlinlik korsan satış yapıldığını ileri sürüyor. Buna karşı çeşitli ülkelerdeki yazılım şirketleri, Telif Hakları Yasasını değiştirmek, korsan satışlardan hiç değilse biraz pay alabilmek için kampanyalar açtı. Koruma yöntemlerinin geliştirilmesi konusunda yapılan harcamalar da yazılım şirketlerine büyük mali yükler getirmektedir. Bu arada şirketlerin koruma sistemlerini geliştirmek için eski kopyacıları işe almaları, konuyu daha da ilginç hale getirmektedir. Ama bu yazımızın konusu işin ahlaki ya da yasal yönü değil, kopyalamanın nasıl yapıldığı? Çok sayıda programa sahip olması nedeniyle Commodore 64 sahiplerini özellikle ilgilendireceğini sandığımız bu konunun ahlaki yönüne yine de kısaca değinmek istiyoruz. Ancak yasal kopyalama ve hırsızlık arasındaki fark hakkında şu kadar bir şey söylenebilir: Kişisel kullanım, arşiv yapmak ya da bir yedek bulundurmak amacıyla yapılan kopyalamalar yasal; satmak amacıyla ya da kişisel olmayan amaçlarla yapılan kopyalamalar ise hırsızlıktır. Burada vereceğimiz ufak tefek ipuçlarını, okurlarımızın ahlaki değerlere sahip çıkarak yalnızca yasal kopyalama amacıyla kullanacaklarını umuyoruz.
KARAKOLUN BİLGİSAYARI İLE SENİN BİLGİSAYAR ÇOK İYİ ARKADAŞMIŞ MEĞERSE.. SENİNKİ BİZİMKİNE SÖYLEMİŞ..
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 29
Commodore 64 hemen hemen genel bir ön kabulle kötü bir BASIC derleyicisine sahip olmasına rağmen özellikle makine dilinin iyi kullanılabilmesi, kolayca değişiklik yapılabilmesi ve popülerliği nedeniyle dünyanın en çok programa sahip, dolayısıyla program kopyacılığına en elverişli makinedir. Commodore 64'ün program listesi kabardıkça yeni kilit sistemleri ve buna bağlı olarak da yeni kopyalama yöntemleri amansız bir yarış halinde geliştirilmekte. Böylesi bir gelişimin sonunda korumalı bir programla uğraşırken karşılaşacağımız sorunlar da giderek artmakta. Bugün "tek program kopyalanabilir mi?" sorusu içinde, nereden başlamalı, nasıl bir program, nasıl bir kilitle korunmuş, listesini almanın bir yolu var mı, hafızanın neresine yerleşiyor vb... sorularını da barındırıyor. Bütün bunların yanı sıra programların kayıt biçimleri (kartuş, disket ya da kaset) de kopyalama açısından ayrıca önem taşıyor. Ama hemen moraliniz bozulmasın. Bütün bu sorunlar, eldeki her üç kayıt sistemi için süper kopya programları varsa hemen çözülecektir. Kopya programları günümüzde hemen her ülkede pek ucuz olmayan fiyatlarla ama serbestçe satılmaktadır. Ülkemizde de kopya programlarını temin etmek mümkündür. Ancak elimizde kopya programı yoksa her kayıt sistemi için ayrı ayrı çözümler düşünmek zorundayız. Ülkemizde şu anda kasetlerin yaygın olarak kullanılmakta olduğunu göz önüne alarak, kartuş ve disket bahsini kısa geçip özellikle kaset kayıt sistemi üzerinde durmak istiyoruz.
Kartuş kayıt sistemi
Kartuşlar çalışma sistemi açısından hemen hemen bütünüyle benzerdir. Kartuşun içinde bulunan 4, 8 ya da 16 K'lık RAM'e program kaydedilmiştir. PROM yazıcı cihazlarla entegre devreler üzerine yazılan programlar eğer auto-run'lı iseler, yani RUN komutunu programın bir parçası olarak içeriyor ve dolayısıyla yüklenir yüklenmez çalışmaya başlıyorlarsa kopyalanmaları oldukça zordur. Bunun nedeni, bilgisayarın işletim sisteminin, bilgisayar açılır açılmaz USER PORT'u (kartuşun takıldığı port) kontrol etmesi ve eğer kartuş varsa bilgisayarın kontrolünü tamamen kartuşa bırakmasıdır. Ama yine de kartuşları kopyalamanın birçok yolları vardır. Bunlardan biri PROM yazıcı/kopyalayıcı aletler kullanılarak, kartuş içindeki RAM çoğaltmasıdır. Bu kopyalama biçimi oldukça kolay olduğu halde, aletlerin pahalı olması sorun yaratmaktadır.
Disket kayıtları
Koruma altına alınmamış disketlerin kopyalanması kadar kolay bir şey olmaz, hele elimizde iki tane disket sürücüsü varsa. Hatta bazı bilgisayarlara bu işlemi kolaylaştırmak için COPY komutu bile konmuştur. Böyle kolaylıklar karşısında yazılım firmaları, programlarını korumak amacıyla türlü türlü kilit yöntemleri geliştirmeye çalışmaktadırlar. Programları auto-run'lı hale getirmek, ya da programın bir parçası olan error'lar, yani hatalı komutları programa okutarak disketleri errorsüz çalışmaz hale getirmek, ancak joystick portuna sokulan bir parçanın (dongle) yardımıyla çalışan programlar hazırlamak (bu çok özel bir hardware çalışması olduğu için kopyalama açısından büyük sorunlar doğurmaktadır). 1541 "zeki" disket sürücüsünün 40 kanal açmasına rağmen 35 çalışmasından yararlanıp, illegal kanal olarak adlandırılan 36-40'ıncı kanallarına programı taşırmak, disket sürücünün kafasının senkronizasyonunu bozarak kanal aralarına program yazmak (halftrack) ve bu programı yine halftrack okutmak disket kilitlenmesinde kullanılan değişik yöntemlerin bir bölümü. Disket sürücünün işletim sistemi (DOS) bu kilitleme yöntemlerinde çokça kullanılıyor. (Bu konuda daha ayrıntılı bilgi edinmek isteyenlerin TELETEKNİK tarafından getirilen The Anatomy of 1541 kitabına bakmalarını öneririz.) Disketlerin oldukça iyi korunduğunu görüyoruz. Bu durumda kopyalama ancak bu koruma yöntemlerini ve karşı yöntemleri çok iyi bilerek başarılabilir. Ya da bir süper kopyalama yöntemi bulmak en iyi yoldur.
Kaset kayıt sistemi
Ucuzluğundan ötürü ülkemizde en çok kullanılan kayıt yöntemi kaset kayıt yöntemidir. Commodore 64'ün her şeyden önce bir ev bilgisayarı olduğu düşünülürse kaset kayıt yönteminin bilgisayar sahiplerini birçok açıdan tatmin ettiği söylenebilir. Teyp sahibi program arşivcilerinin kopyalama sorunları diğer iki sisteme göre daha azdır. Çünkü kaset sistemi Commodore kayıt sistemleri içinde kopyalama işlemine en uygun olanıdır.
Ne bir minik işlemciye (micro-processor) ne de bir kontrol aracına sahip olduğu halde yine de kaset kayıt yöntemleri için güçlü koruma programları geliştirilmiştir. Ancak bu koruma yöntemleri genellikle teyp buffer'ı kullanılarak oluşturulmaktadır. Bu koruma yöntemlerinin en çok kullanılanı programları auto-run'lı (kendi kendine başlayan) hale getirmektir. Bu işlem nasıl gerçekleşir? Buna cevap vermek, bu tip programları kopyalamada ilk adım olarak önem taşımaktadır. Şimdi hepinizin biraz olsun makine dili bildiğini varsayarak bu sistemin işleyiş mantığını açıklamaya çalışalım.
$02A7-$02FF'deki kullanılmayan hafıza BASIC vektör lokasyonlarına dayanır. Bu 5 vektör noktasının her biri rutinin başlangıç adresini içeriyorsa, RUN-STOP/RESTORE girişimleri rutinde otomatik bir sıçramaya yol açacaktır. Bu nedenle bir programı, listing ya da disassembly için durdurmak, tuşlar ya da keyboard'la mümkün olamayacaktır. Bu vektör lokasyonları teyp ya da diskten yüklenmişse program yüklenir yüklenmez onların gösterdiği program run etmeye başlayacaktır. Bu auto-run'ın bir türlü anlaşılmayan noktasıdır. Auto-run kullanımının bunu sağlayacak programın, vektör lokasyonları yüklenmeden önce kompüterde zorunlu olarak bulunmasıdır. Auto-run'ın temel amacı, kullanıcının programı çalıştırmadan önce dökümünü (listingini) almasını engellemek olduğuna göre, lokasyon vektörleri ile birlikte ama onlardan önce yüklenmesi gerekir. Vektörlerden önce, bir program yüklenebilecek kadar geniş olan tek bölge, $02A7 ve $01FF arasında kalan bölgedir. Bu bölge çok geniş olmamakla birlikte böyle bir işlem için idealdir.
Bu bağlamda düşünürsek lokasyonların yerlerini (yani BASIC pointerları) değiştirmek, böyle korunmuş programların auto-run etmesini engelleyebilecektir. Bunun için, yazının sonunda bir program listesi ve kullanılışının açıklanması konulmuştur. Ancak daha önce, birkaç ufak uygulamadan örnek vermek istiyoruz. Auto-run'lı bir programı yüklemeden önce, basit bir POKE içeren bir BASIC satırı ile BASIC pointerları değiştirmek mümkün olabilir. Örneğin, programı yüklemeden önce, POKE 44, 158 verip, programı daha sonra yüklersek, büyük bir ihtimalle "syntax error" mesajı ile karşılaşırız. Bu mesajı aldıktan sonra POKE 44, 8 BASIC pointerları tekrar eski yerine döndürecektir. Ama program auto-run etmeyecektir. Bundan sonra SAVE komutuyla auto-run etmemiş programı kaydedebiliriz. Bu komutlar makine diliyle yazılmış ve yalnızca auto-run'la korunmuş hemen hemen bütün programlar için geçerlidir. Eğer program BASIC dilinde yazılmışsa, BASIC belleğinin başlangıç adresi olan 2048 adresine 0'dan 29'a farklı herhangi bir değeri POKE ederek bu programın auto-run'ını da durdurabiliriz. Bu işlemi TRELO-TMACHRELO programı ile daha kolay olarak gerçekleştirmek mümkün. Bir programın auto-run etmesini engellemenin bir başka yolu da (bu genellikle makine dili programlar için geçerli, ancak makine dili olmayan program da kalmadı) Monitor programı bilgisayara yüklendikten sonra "programın ismi", 08 komutuyla program yüklenir ve bu şekilde yüklenen program genellikle auto-run etmez. Daha sonra aynı biçimde bu program save komutuyla korunabilir. Yalnız bunun sakıncası programın başlangıç ve bitiş adreslerinin bilinmesi gerekliliğidir.