PC / Mac oyunları korsanlığı nasıl saptar?


27

Son zamanlarda programcıların oyunlarını Game Dev Tycoon'un yaratıcıları gibi korsanlardan korumanın akıllı yolları hakkında bir makale okuyordum . Bu beni meraklandırdı: Çalışan oyunun kopyasının teknik düzeyde korsan bir versiyon olduğunu nasıl saptadılar? Bazı araştırmalarda bulabildiğim en yakın cevap, SNES kartuşlarının korsan olup olmadığını nasıl saptayabilecekleriydi , ancak bu taktik açıkça PC'ler için geçerli değil.


1
Bence bu soru çok geniş. Oyunların korsanlığı tespit etmesinin bir çok yolu vardır ve bunların çoğu her oyuna özgüdür.
MichaelHouse

10
@ Byte56 Sorunun oldukça geniş olduğuna katılıyorum, ancak bunun hala iyi bir soru olduğunu düşünüyorum. İdeal bir cevap ortak bir korsanlık tespit yöntemi sağlayabilir ve belki de bilinen diğer çözümleri açıklayan kaynaklara bağlantılar sağlayabilir.
kevintodisco

2
Muhtemelen korsanlıktan kaçınmanın en iyi yolu Blizzard'ın Diablo III için yaptıklarını yapmaktır: müşteri render yapar ve bunun gibi oyun kurallarının ve mantığının çoğu yalnızca Blizzard sunucuları tarafında saklanır (örneğin: ne zaman ne kadar altın alıyorsanız X odasındaki bir sandığı Y) oyuncuyla birlikte açacaksınız). Sunucu kısmı için Blizzard ikili dosyalarını / kaynağını çalmadığınız sürece bunu yenmek mümkün değildir (ki bu pek olası değildir). Bazı insanlar öykünücüler yarattı, ancak aynı kurallar olmadığından (yaklaşık değerlerdir), aynı oyun deneyimini hiç vermez.
tigrou

Yanıtlar:


53

İ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:

    • Garip şekillerde oluşturarak gizleyin. Bu sadece çatlama işlemini yavaşlatır.

    • Yukarıda belirtilen seri korumaya benzer makine başına ana anahtarlar oluşturun.

    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.


1
Rekabetçi bir cevabım olsa bile şapkamı cevabına indirmeliyim, daha iyi sunum ve açıkçası daha fazla zaman harcamam gerekiyor. Daha iyi teknik kapsam da var ve şunu söylemeliyim ki "hafıza perdeleri, güvenli medya yolları ve TP modülleri" hiç duymadım. O nedir ??
v.oddou

@ v.oddou: Bunlar, donanım destekli DRM'ler için kullanılabilecek öğelerdir. Bir TP modülü bir şifreleme işlem yongasıdır. Pek çok modern (2007 ve üstü) bilgisayar bir TPM içerir. Bir bellek perdesi, özellikle TPM'nin kullanabileceği anahtarları saklamak için işletim sistemine bile okunamayan salt okunur bellek bölümleri oluşturmanıza olanak sağlar. Güvenli bir medya yolu, içeriğin uçtan uca şifreli olarak seyahat ettiği bir sistemdir (hatta ekrana kadar). Bu teknolojilerin doğru kullanılması önemsiz olmaktan uzak ...
Panda Pajama

Küçük bir eklenti gibi, Spyro kopya koruması hakkında, bu oyunların çoğunu bir oyuna uygulandığı, bazı mantık ve ilginç bir hikaye ile birlikte tartışan harika bir makale var: gamasutra.com/view/feature/3030/keeping_the_pirates_at_bay .php
leander

Bu cevap tamamen yanlıştır. youtube.com/watch?v=FVVx5WYmO2s Moderatör müdahalesi için işaretleme.
Krythic

@Krythic nasıl yazıp kendin yazarsın?
Panda Pijama

3

Çok kolay, sadece bir MD5 veya SHA256'yı kendi çalıştırıcınız üzerinde çalıştırmak zorundasınız, daha sonra imzayı son sürümü oluşturduktan sonra ikili kodda yaptığınız koddan değiştirdiğinizi tespit ettiğinizde, uygulamanızın hacklendiği açıkça anlaşılıyor. O zaman çoğu şirket, sadece "kırık PE" veya "virüs algılandı" yazan ve daha sonra oyundan çıktıklarını söyleyen bir pop-up göstermiyor (oyunda olduğu gibi); Oyun diyaloğun mesaj döngüsünde duraklatıldığı için diyaloğun hangi dalda açıldığını görmek hemen görülür ve durum kontrolündeki kodu değiştirerek şubeyi atlayın.

Bugün, şirketler oyun oynamayı kolaylaştırmak için canavarların ömrünü arttırmak, ya da bir oyun şirketini yönettiğiniz ve sonunda çok fazla oyuncu oyununuzu korsan olduğu için bu yönetim oyununa inanılmaz derecede zekice entegre olan oyunlarda çok ince bir değişiklik kullanıyor. Bu durumda güzel bir mızıka. Bazen sadece şirket sunucularına yüklenen bir kırmızı bayrak alır ve onları destek için çağırmak istediğinizde bir konuşma alırsınız veya kimliğinizi ortaya çıkarmak için kapana kısılırsınız.

ama hepsi bu kadar konu, teknik hassastır. ve bu kontroller ikili sistemdeki birçok yerde çalıştırılabilir, böylece bilgisayar korsanları birini bulur ve temizlerse, bu yeterli olmaz.

EDIT: Oyunu olduğu gibi kopyalarsanız, oyunun korsanlıkla mücadele önlemi almaması durumunda işe yarayabilir. CD yazıcıları öncesi çok eski oyunlarla çalışıyordu. Bu nedenle, çoğu zaman, sadece kopyalanan kurulum klasörünün değil, oyunun da çalışması için kurulmaları gerekir. Bu sistemde her yere biraz koymak gizli dosyaları ve kayıt defteri anahtarlarını içerir. Oyun, yalnızca yükleyici tarafından oluşturulabilecek bu öğelerin varlığını kontrol eder. Ve yükleyici, çoğu CD çalar sürücüsünü öldüren diskin ilk baytında hata düzeltme kod sistemine uymayan düzensiz bitler nedeniyle yalnızca CD ile çalıştırılabilir. Nero alkol gibi bazı kopyalama yazılımları, hataları görmezden gelmenizi önerir, ancak yaktıkları düzeltilmiş bir kopyadır, yükleyici bunu algılar ve tekrar gidersiniz.

EDIT2:

S: bir dosyanın nasıl hash yapılacağı, sonra da hash'ı değiştiren dosyaya ne ekleriz?

@ Byte56: Lanet olsun burada akıllı yorumlar alıyoruz :) Evet, bu bir paradoks ve çözülemez. Bu yüzden karma, karma içermeyen ikili kısım üzerinde yapılmalıdır. Ve kontrol kodunun bunu bilmek zorunda olması, kendi kendini kontrol etmek zorunda kaldığında o bölgeyi dışlamak için. İnsanları, etiketlerini kullanarak, karmalarını içine alıp dışlamayı yapmak için ~~ #### [hash buraya] #### ~~ gibi etiketleri gördüm. Ancak bilgisayar korsanları için kolayca tespit edilebilme kusuruna sahiptir, bu yüzden karma karıştırılmalı ve birden fazla yere dağılmalıdır. Şifrelenmiş bile olsa neden olmasın ve aynı kamuflaj işlemi özel anahtarı saklamak için de geçerli.


Oyun dosyaları olduğu gibi kopyalanırsa ne olur? Bu durumda karma doğrulamaz mı?
Panda Pajama

@PandaPajama: Mükemmel bir not. Bir düzenleme yapıyorum.
v.oddou

Bir yürütülebilir dosyaya sahip olduktan sonra çalıştırılabilir koddaki sabit kodlamaya, böylece hash değerini değiştirmeye nasıl baş ederler?
Michaelhouse

@ Byte56: tekrar düzenlendi :)
v.oddou

@MickLH: Deneyim ile aynı fikirdeyim çünkü insanları doğal olarak hayranlıktan para vermeleri için harekete geçirmem gerektiğinden dolayı cevabınızı sevdiğimi söylemeliyim. Çok kötü, soruyu gerçekten cevaplamadı ve reddedildi (doğal olarak söylenebilir). Özel anahtara fazla mutlak davranıyorsun. Bu özel anahtar, karma şifrelemeden başka bir şeye değmez, örneğin kredi kartı veritabanı gibi büyük bir değeri yoktur. Ancak ısrar ederseniz, sağlama toplamı sunucuda kontrol edilmesi için ağ üzerinden gönderilebilir. Fakat güvenlik sadece en zayıf noktası kadar güçlü ve bunun ciddi bir kusuru var, bir hacker
v.oddou

-5

sadece bir mac oyununa bir ext bölüm koyamazlar

mac'ler ext okuyamıyorum


Gerekli olan bölümde bir dosya varsa, oyun yürütülemedi. Eğer sadece bölümün varlığı, okunaklı bir kopya olduğuna dair "kanıt" olsaydı, kopyalanması son derece kolay olurdu.
Jesse Williams,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.