İlk önce, bir bilgisayarın korsan olup olmadığını bilmesi için bir yol yoktur. Korsanlık yasal / ahlaki bir terimdir ve bu nedenle, yalnızca sıfır ve sıfırdan oluşan bir dosyada hiçbir anlamı yoktur.
Bununla birlikte, korsanlığın önlenmesi ve karşı önlemler genellikle, yalnızca oyunun bir kopyası satın alındığında elde edilebilecek bir şey (genellikle bir nesne) olup olmadığını belirlemeye odaklanır ve bunu kopyalamayı zorlaştırır. Bunu yapmanın, her biri kusurların yanı sıra avantajları olan tonlarca yolu vardır. Birkaç söz edeceğim:
Erken oyunlar, kullanıcılardan oyun kılavuzundan, yalnızca bir oyun kutusu satın aldıysanız edinmeniz gereken bir kelimeyi girmelerini istedi. Bir fotokopi makinesi veya bir tarayıcı bu tekniği kolaylıkla yener.
Daha yakın zamanlarda, medya kontrolleri daha yaygındır. Buradaki fikir, oyunun çalışması için oyun CD'sinin sürücüde olmasını gerektirir. Bunu uygulamak için, örneğin oyunun çalıştırılamadığı CD'den kritik veri dosyalarına erişebilir veya CD'deki bir dosyanın varlığını kontrol edebilirsiniz. Bu, CD'lerin kopyalanmasının zor olduğu durumlarda oldukça işe yaradı, ancak CD fotokopi makineleri ve daha yakın zamanda sürücü emülatörleri bu tekniği kolayca yenmek için kullanılabilir.
Bununla birlikte, CD kopyaları mükemmel değildir, bu nedenle diğer birçok teknik CD'nin orijinal basılmış CD mi yoksa bir kopya mı olduğunu tespit etmeye odaklanır. Bunu uygulamak için, bir oyun, baskı süresinde oyun diskine takılan standart olmayan elemanları kontrol edebilir , ancak CD-R üzerinde bir CD yazıcı tarafından kolayca ve güvenilir bir şekilde çoğaltılamaz. Bunu yapmanın bazı yaygın yolları şunlardır:
Mastering sırasında CD dosya sisteminden erişilemeyen, ancak var olan ve onları nerede bulacağınızı biliyorsanız, okunabilir olan sahte "hayalet" dosyalar oluşturmak. Bu veri dosya bazında disk kopyalarında yoktur. Disk görüntüsünün tamamını kopyalamak bu dosyaları kopyalayacaktır.
Başka bir yol kasıtlı olarak diske hata eklemektir. CD’lerde hata düzeltme kodları bulunur. Bir disk okuyucu tarafından şeffaf bir şekilde düzeltilebilecek verilerde hataların eklenmesiyle, disk normal şekilde çalışacaktır, ancak hatalar CD-R'ye kopyalanmayacaktır. Bu kasıtlı hataları arayarak, bir oyun CD'yi orijinal bir basılı kopya olarak kabul edebilir. RAW disk görüntü kopyaları bu olsa yenmek.
Aynı adrese sahip ancak farklı veriler içeren ikiz sektörler eklemek, ileri ve geri veri ararken farklı sonuçlar verecektir. Bunun varlığını kontrol etmek mümkündür ve bu ikiz sektörlerle bir CD'yi çoğaltmak çok zordur.
CD'deki çukurların gerçek konumlarının ölçülmesi . Bir kez daha, CD'leri aynı konumlardaki çukurlarla çoğaltmak çok zor.
Bununla birlikte, Daemon Tools veya Alcohol% 120 gibi birçok CD emülatörü bu özellikleri taklit edebilir. Bu nedenle, birçok yayıncı bir CD öykünücüsü algılama adımı eklemeyi ve öykünücüsü algılanırsa oyunun çalışmasını önler. Bir emülatör dedektörünün uygulanması bu cevabın kapsamı dışındadır.
Bir oyun yerine veya fiziksel bir CD'nin kontrol edilmesine ek olarak, bir oyun, kullanıcıdan bir ürün anahtarı gibi bazı verileri girmesini isteyebilir . Ürün anahtarlarını kullanmanın bazı yolları şunlardır:
Anahtardaki matematiksel özellikleri kontrol etmek. Bununla birlikte, bu anahtar yinelemeyi engellemez ve eğer kontrol algoritması keşfedilirse veya ters mühendislik uygulanmışsa, bir korsan, oyunda meşru olduğu ortaya çıkacak yeni anahtarlar yaratabilir. Anahtarları oluşturan yazılım " keygens " olarak adlandırılır .
Kullanıcının donanımına dayalı bir karma oluşturma, bu karma ve ürün anahtarını (genellikle "kurulum anahtarı" olarak adlandırılan bir kombinasyon) oyun şirketinin sahip olduğu bir sunucuya gönderin ve karma ve seriye göre bir aktivasyon anahtarı oluşturun . Tek yönlü sayısal yöntemler kullanarak (modüler aritmetik veya eliptik eğrili bazı yöntemler gibi) bir oyun, etkinleştirme anahtarının karma ve seri kodla eşleşip eşleşmediğini görebilir ve yalnızca eşleşirse çalışır. Bu tekniğe "aktivasyon" denir.
Etkinleştirme ile, bir sunucu, aynı seri kodla birden fazla donanım karması için etkinleştirme anahtarları sağlamayı reddedebilir. Bu nedenle, seri kod ve etkinleştirme anahtarı kopyalansa bile, etkinleştirme anahtarı eşleşmez ve oyun diğer bilgisayarlarda çalışmaz.
Bu önlemlerin tümü, kullanıcının oyunun satın alınmış bir kopyasına sahip olup olmadığını bulmak içindir. Ancak, bunları uygulamak, bunun için kontrol eden program kodunu gerektirir. Bir korsan için , kopya koruma mekanizmalarına saldırmak yerine çekleri devre dışı bırakmak veya atlamak için oyun kodunu değiştirmek mümkündür . Korsanlık karşıtı çekleri kaldırmak için oyun ikili dosyalarını değiştirme eylemine "çatlama" denir.
Kırma işlemi, sadece çalıştırılabilir oyunun demonte edilmesinden, ilgili kontrollerin yapıldığı yeri bulmaktan, kontrolleri devre dışı bırakmak veya sonuçları yok saymak ve yeniden monte etmekten ibaret olabilir. Çatlamaya karşı koymanın bazı yolları şunlardır:
İkili bir karma ile ikili kontrolü. Ancak, karmaşayı kontrol eden ve sırayla kırılabilecek bir program olmalıdır.
Programı veya yalnızca kontrol rutini şifrelemek ve çalışma zamanında şifresini çözmek. Bu, bir veya daha fazla ek şifre çözme adımı içerdiğinden demontajı zorlaştırır. Şifre çözme anahtarı programa dahil edilirse (olması gerektiği gibi, çünkü onsuz oyun şifresi çözülemez), korsan şifre çözme işlemini tersine çevirebilir, rutini bulabilir ve kopya korumasını kırabilir.
Bu nedenle, bir oyun yayıncısı olarak, anahtarı mümkün olduğu kadar zor bulmak ve isteğe bağlı olarak şifre çözme algoritmasını anlamakta zorlamak istiyorsunuz. Anahtarı bulmayı zorlaştırmanın bazı yolları şunlardır:
Ancak, anahtarlarınızı oluşturmak için kullandığınız yöntemden bağımsız olarak, şifre çözme işlemi devam ederken, anahtarların kendileri bellekte olacaktır. Bellek denetçileri, hata ayıklayıcıları ve emülatörleri bir korsanın bellekteki anahtarı bulmasına ve kopyalamasına yardımcı olabilir. Hafıza gözetleme çeşitli şekillerde saldırıya uğrayabilir:
Belirtilen bölgedeki hafıza erişimini tespit eden ayrıcalıklı bir servise sahip olmak ve adreslemeyi başka bir yere yönlendirmek. Bu, 0 halkasına erişim gerektirdiğinden ve bunu yapan programlar daha meşru olmayan amaçlar için kullanıldığından , virüsten koruma yazılımı genellikle bunları engeller. (bu yüzden birçok oyun ve diğer yazılımlar çalışırken virüs korumasını kapatmak istiyorlar). Bunu doğru yapan yazılımı yazmak oldukça zordur ve ana bilgisayar işletim sisteminin kararlılığını ve güvenliğini kolayca tehlikeye atabilir. XCP skandalı bu yöntem gitti yanlış bir uygulama iyi bir örnektir.
Modern donanım ve işletim sistemleri, bellek incelemelerine dirençli iken verilerin şifresini çözen bir programın yapılmasını kolaylaştırmak için bellek perdeleri , güvenli ortam yolları ve TP modülleri gibi bazı araçlar sunar .
Korsanlığa saldırmak için önemsizden ezotere kadar çok daha fazla teknik var. Ne yazık ki, bu tekniklerin hepsinin orijinal bir kopyayı tanımakta başarısız olması mümkündür ve bu genellikle yanlış pozitif oranların daha yüksek olduğu daha agresif tekniklerdir.
Bir oyun yayıncısı olarak, genellikle uygulama maliyeti, beklenen çatlama süresi ve yanlış pozitif oran beklentileriniz doğrultusunda olan bir dizi teknik seçmek istersiniz.
Korsan korumanın tamamen kırılmaz olması gerektiği yaygın bir yanılgıdır. Oyun satışlarının çoğu piyasaya sürüldükten sonraki ilk birkaç ayda gerçekleşir, bu nedenle korsanlığa karşı koruma planı genellikle kırılmadan önce oyun yayıncısının büyük miktarda kar toplaması için yeterli zaman harcarsa etkili sayılır.
Game Dev Tycoon ile ilgili olarak, korsanlıkla mücadele teknolojilerini kullanmadılar. Sadece "kırılmış" bir yapı oluşturdular ve bahsettiğiniz makalenin başında da belirtildiği gibi BitTorrent üzerine dağıttılar.