Bir masaüstü aracının 1.0 sürümünü pazartesi günü yayınlarsınız. Cuma gününe kadar bir forum başlığı “kırılmış” bir derlemeye bağlantı veriyor, bir Discord sunucusunda tek bir anahtar dolaşıyor ve iki müşteri tam kurulum dosyasını indirdikten sonra iade talep ediyor. Bu, ürününüzün başarısız olduğu anlamına gelmez. Kopyalanmaya değer hale geldiği anlamına gelir. Ücretli her uygulamanın bu noktada yazılım korsanlığına karşı bir planı olmalıdır.
Bu rehber bağımsız geliştiriciler ve küçük ekipler için yazıldı. Yazılımların gerçekte nasıl korsanlandığını, hangi savunmanın hangi saldırıya karşı işe yaradığını, ödeyen müşterilere korsanlardan daha fazla zarar veren uygulamaları ve sırayla uygulayabileceğiniz öncelikli bir kontrol listesini açıklıyor. Her teknik için tekrar etmek yerine daha derin rehberlerimize bağlantı veriyor.
Yazılım korsanlığı nasıl önlenir: kısa cevap
Yazılım korsanlığının büyük bölümünü, kararları ve ürününüzün değerli kısımlarını erişilemez hale getirerek önlersiniz. Pratikte bu dört şey anlamına gelir: lisansları istemcide değil sunucuda denetlemek, her lisansı bir cihaza bağlamak ki paylaşılan bir anahtar çalışmasın, önemli veri ve kodu yalnızca başarılı bir denetimden sonra sunmak ve istemciyi sertleştirip izlemek ki kurcalama yavaş olsun ve sızıntılar bir lisansa geri izlenebilsin.
Diğer her şey, karartma, anti-debug, süreç kara listeleri ve yapay zekâ tespiti, bu temellerin üzerine saldırgan için ek maliyet ekler. Hiçbiri bu temellerin yerini tutmaz. Tek bir yerel if (licensed) kontrolünden sonra tamamen çevrimdışı çalışan, ağır karartılmış bir uygulama, hâlâ tek bir yamalanmış atlamayla bedavaya dönüşebilir.
Yazılımlar gerçekte nasıl korsanlanır
Savunma seçmeden önce neye karşı savunduğunuzu bilmek işinize yarar. Küçük ticari araçlarda aynı altı örüntü kayıp satışların neredeyse tamamını açıklar ve gerektirdikleri beceri düzeyi çok farklıdır.
| Yöntem | Ne olur | Gereken beceri | Ana savunma |
|---|---|---|---|
| Anahtar paylaşımı | Tek bir ücretli anahtar bir sohbette paylaşılır veya satılır | Yok | Sunucu tarafı denetimler ve HWID bağlama |
| Yamalanmış lisans kontrolü | Kontrolden sonraki atlama ters çevrilir, uygulama her zaman çalışır | Düşük ila orta | Sunucudan sunulan değer, bütünlük denetimleri |
| Kırılmış derlemeler | Yamalanmış veya paketi açılmış bir kopya çalışmaya hazır şekilde yeniden dağıtılır | Orta | Sunucu tarafı veri, anti-tamper, sızıntı takibi |
| Sızdırılmış derlemeler | Bir müşteri veya test eden kişi kendi kurulum dosyasını ya da dosyalarını paylaşır | Yok | Lisans başına takip, cihaz sınırları, anahtar yasakları |
| Keygen'ler | Birisi anahtar algoritmanızı tersine çevirir ve yeni anahtarlar üretir | Orta | Anahtarlar formülle değil sunucuda doğrulanır |
| İade ve chargeback suistimali | Satın alır, dosyaları çıkarır, sonra ödemeyi geri alır | Yok | Geri alınabilir lisanslar, ödeme aşamasında dolandırıcılık kontrolleri |
İki nokta öne çıkıyor. Birincisi, en ucuz saldırıların hiçbiri tersine mühendislik becerisi gerektirmez; istemciye güvenen veya cihazı hiç denetlemeyen lisanslamadan yararlanırlar. İkincisi, keygen'ler yalnızca geçerliliğin çevrimdışı hesaplanabildiği yerlerde var olur. Hangi anahtarların gerçek olduğunu yalnızca sunucu biliyorsa, tersine çevrilecek bir algoritma da yoktur.
- 01
Tek satın alma
Ya da sızdırılmış bir anahtar
- 02
Denetimi bul
Dizeler, hata ayıklayıcı
- 03
Yamala veya dök
Denetimi atla
- 04
Yeniden paketle
Çalışmaya hazır derleme
- 05
Dağıt
Forumlar, Discord
Korsanlığa karşı katmanlı bir savunma
Tek bir kontrol altı örüntünün tamamını kapsamaz, bu yüzden koruma katmanlarla çalışır. Aşağıdaki her katman belirli saldırıları hedefler ve her biri bir sonraki saldırganın işini zorlaştırır. Yazılım koruma yığını rehberimiz, C++ ve C# ürünleri için çalışma zamanı katmanlarının nasıl birleştiğini daha ayrıntılı anlatır; bu bölüm ise her katmanın hangi korsanlık sorununu çözdüğüne odaklanır.
1. Sunucu tarafı lisanslama
Lisans kararı, kontrol ettiğiniz bir sunucuya aittir. İstemci bir anahtar gönderir, sunucu karar verir ve yanıt şifrelenip imzalanır, böylece sahteciliğe veya tekrar oynatmaya karşı korunur. Geçerlilik bir formül değil bir veritabanı sorgusu olduğu için bu tek başına keygen'leri bitirir ve sızdırılmış bir anahtarı her yerde aynı anda yasaklamanıza olanak tanır. Bunu kendiniz yazıyorsanız C++ lisanslama rehberi ve C# rehberi ayrıntıları anlatır.
2. HWID bağlama
Sunucu denetimi, anahtar bir cihaza bağlanmadığı sürece otuz kişinin aynı anahtarı kullanmasına izin verir. HWID kilidi her lisansı ilk etkinleştiren makinenin donanım parmak izine bağlar ve diğer makineleri reddeder. Kendi kendine yapılan sıfırlamalar ve bekleme süresiyle birlikte, dürüst alıcıları rahatsız etmeden gelişigüzel anahtar paylaşımını durdurur.
3. Sunucudan sunulan değer
Ekonomiyi en çok değiştiren katman budur. Yapılandırma, dizeler, ofsetler, model dosyaları veya tüm modüller yalnızca başarılı bir lisans kontrolünden sonra sunuluyorsa, yamalanmış bir istemci içinde hiçbir işe yarar şey olmadan başlar. Saldırganın artık sunucunuzu taklit etmesi ya da lisanslı bir oturumdan veriyi yakalaması gerekir; bu, bir atlamayı çevirmekten çok daha fazla iştir. İstemci tarafı koruma ile sunucu tarafı sırlar önce neyi taşımanız gerektiğini açıklar, bellekte yükleme ise korunan DLL'leri tamamen diskten uzak tutmayı anlatır.
4. Anti-tamper ve anti-debug
Bütünlük denetimleri ikili dosyanızın değiştirildiğini fark eder. Anti-debug ve anti-VM denetimleri ise birinin uygulamayı bir analiz ortamında adım adım incelediğini fark eder. İkisi de aşılamaz değildir, ancak ikisi de çalışan bir crack üretmek için gereken süreyi uzatır. Yararlı olanlar sonucu sunucuya bildirir; böylece kurcalanmış bir oturum reddedilebilir ve lisansı yasaklanabilir. Denetimleri yalnızca başlangıçta değil, yürütme sırasında birkaç noktada çalıştırın.
5. Karartma
Karartma, kodu okumayı zorlaştırır. Özellikle C# gibi yönetilen dillerde önemlidir; bu dillerde bir decompiler, aksi halde saniyeler içinde orijinal kaynağınıza yakın bir şey üretebilir. Yerel C++ için ise daha çok denetimi bulma sürecini yavaşlatır. .NET derlemeleri için güvenilir bir karartıcı kullanın, hata ayıklama sembollerini göndermeyin ve karartmayı hiçbir zaman sırları istemciden uzak tutmanın yerine koymayın. Sabit kodlanmış API anahtarları ve parolalar, ne kadar iyi gizlenirse gizlensin er ya da geç bulunur.
6. Çalışma zamanı araç tespiti
Süreç ve pencere kara listeleri, bilinen hata ayıklayıcıları ve bellek düzenleyicilerini durdurur. Yeniden adlandırılmış veya kendi bünyenizde yazılmış araçları kaçırırlar; bu yüzden davranış temelli ve yapay zekâ destekli tespit vardır. Bu yaklaşımların ödünleşimleri statik kara listelerin ötesinde tersine mühendislik karşıtlığı rehberinde ele alınır.
7. Sızıntı takibi ve izleme
Bazı kopyalar dışarı sızacaktır. Olduğunda, tahmin yürütmek yerine tek bir anahtarı yasaklayabilmek için hangi lisanstan geldiğini bilmek istersiniz. Lisans başına derleme takibi, kaydedilen HWID uyuşmazlıkları ve olağandışı etkinleştirme örüntüleri, korsanlığı görünmez bir kayıptan belirli anahtarların listesine dönüştürür. Sızdırılmış derlemeler rehberi adım adım bir müdahale planı içerir.
Anahtar paylaşımı
HWID bağlama, anahtar yasakları
Keygen'ler
Sunucu tarafı doğrulama
Yamalanmış denetimler
Sunucudan sunulan değer
Kırılmış derlemeler
Anti-tamper, tespit
Sızdırılmış derlemeler
Takip ve izleme
İade suistimali
Geri alınabilir lisanslar
Yalnızca fırsatı değil, teşviki de azaltın
Teknik kontroller, ne yaparsanız yapın korsanlık yapacak kişilerle ilgilenir. Daha büyük bir grup ise satın almayı zorlaştıran şeyler yüzünden korsanlık yapar: fiyat tek bir pazar için belirlenmiştir, kullandıkları ödeme yöntemi kabul edilmez, deneme süresi ürünü değerlendirmek için çok kısadır veya geçen sefer bir donanım değişikliği onları kilitlemiştir. Bunları düzeltmek az maliyetlidir ve bazı potansiyel korsanları müşteriye dönüştürür.
- Dürüst bir deneme süresi sunun. Gerçek ürünü değerlendirebilen insanların bir crack aramak için daha az nedeni olur. Masaüstü yazılımı için ücretsiz deneme lisansları bunu güvenli şekilde nasıl çalıştıracağınızı anlatır.
- Sattığınız pazarlar için fiyatlandırın. Bölgesel fiyatlandırma, daha ucuz bir kademe veya bir abonelik, tek bir küresel fiyatın erişilebilir olmadığı yerlerde yasal seçeneği uygun hale getirebilir.
- İnsanların ödeme yollarını kabul edin. Kart, kripto, banka transferi ve hediye kartları, diğerlerinin kaçırdığı alıcılara ulaşır.
- Anında teslim edin. Ödemeden saniyeler sonra gelen bir anahtar, dakikalar sonra gelen bir forum bağlantısını geçer.
- Sıfırlamayı acısız yapın. Anakart değiştirdikten sonra hızlı bir sıfırlama olmadan kilitlenen müşteri, kırılmış bir kopya aramaya yönelir.
- İnsanların istediği güncellemeleri yayınlayın. Bir crack kullanıcıyı tek bir sürümde dondurur. Düzenli, sunucu destekli güncellemeler eski crack'i giderek daha az cazip hale getirir.
Yapmamanız gerekenler: zorlayıcı DRM
Bazı korsanlık önlemleri, tasarruf ettiklerinden daha fazla itibar ve destek maliyeti getirir. Test basittir: Bir önlem, kırana göre ödeyen kişiye daha çok zarar veriyorsa, onu kaldırın.
Zorlayıcı DRM
- Basit bir araç için çekirdek sürücüleri
- Yanlış pozitifte uygulamayı bozar
- Donanımı sıfırlamanın yolu yok
- Kullanıcı verilerini sessizce bozar
- Gerektiğinden fazlasını toplar
Orantılı koruma
- Kullanıcının asla görmediği sunucu denetimleri
- Yasaklamadan önce kaydeder ve inceler
- Bekleme süreli kendi kendine sıfırlamalar
- Oturumu reddeder, dosyalara asla zarar vermez
- Donanım kimliklerini cihazda özetler
- Tek bir sinyalle cezalandırmayın. Bir hata ayıklayıcı işareti veya bir VM masum bir açıklamaya sahip olabilir. Kaydedin, gerekirse oturumu reddedin ve yalnızca tekrarlanan veya yüksek güvenilirlikli kanıtlarda yasaklayın.
- Hiçbir şeye zarar vermeyin. Şüpheli korsanlıkta dosya silmek, kayıtları bozmak veya sonuçları düşürmek yasal risk yaratır ve yanlış pozitife takılan ara sıra yasal kullanıcıyı vurur.
- Ürünün ihtiyaç duyduğundan fazla erişim istemeyin. Müşteriler fark eder ve güvenlik araştırmacıları bunu yazar.
- Herkese açık suçlamayın. Bir sızıntı bir müşteriye geri uzanırsa, önce onunla özel olarak konuşun. Hesabı ele geçirilmiş olabilir.
Öncelikli bir korsanlık karşıtı kontrol listesi
Yalnızca birkaç şey yapabiliyorsanız, bunları bu sırayla yapın. İlk üçü tipik bir bağımsız ürünün kayıplarının çoğunu ortadan kaldırır; geri kalanlar temeller oturduktan sonra çıtayı daha da yükseltir.
- 01
Lisans denetimini bir sunucuya taşıyın
Anahtarları şifreli, imzalı bir kanal üzerinden uzaktan doğrulayın. Bir keygen'e dönüştürülebilecek her çevrimdışı anahtar formülünü kaldırın.
- 02
Lisansları cihazlara bağlayın
Kendi kendine sıfırlamalar ve anahtar başına bir bekleme süresiyle HWID bağlama ekleyin; böylece paylaşılan anahtarlar destek talebi oluşturmadan çalışmaz hale gelir.
- 03
En değerli verilerinizi denetimden sonra sunun
Uygulamanın çalışamayacağı en önemli üç değeri veya dosyayı seçin ve yalnızca doğrulanmış oturumlara sunucudan teslim edin.
- 04
Sırları ikili dosyadan kaldırın
Derlemenizde API anahtarlarını, parolaları ve uç noktaları arayın. Hassas her şey bir dize tablosundan değil, sunucudan gelmelidir.
- 05
Bütünlük, anti-debug ve anti-VM denetimleri ekleyin
Bunları yürütme boyunca dağıtın, sonuçları sunucuya bildirin ve kurcalanmış oturumları reddedin.
- 06
Yönetilen kodu karartın
C# ve diğer .NET derlemeleri için bir karartıcı çalıştırın ve sembolleri ayıklayın ki bir decompiler kaynak kodunuzu ortaya çıkarmasın.
- 07
Takip edin ve izleyin
Derlemeleri lisans başına izleyin, HWID uyuşmazlıklarını ve etkinleştirme artışlarını gözlemleyin, bir derlemenin sızdığı gün için de yazılı bir planınız olsun.
- 08
Korsanlığın nedenlerini ortadan kaldırın
Deneme süresi sunun, pazarlarınız için fiyatlandırın, yaygın ödeme yöntemlerini kabul edin ve anahtarları anında teslim edin.
Listeyi her büyük sürümden sonra gözden geçirin. Kırıcılar gönderdiğiniz her şeye uyum sağlar ve en ucuz yanıt çoğu zaman yeniden derleme değil, sunucu tarafında bir değişiklik, yeni bir kara liste girdisi veya uzaktan bir ayardır. Korumayı uzaktan güncellemek bu döngüyü kısa tutmanın yolunu anlatır.
PapelShip nasıl yardımcı olur
PapelShip tam olarak bu kontrol listesi için tasarlandı. qPapel Auth; lisans anahtarları, sıfırlama beklemeli HWID kilidi, şifreli ve imzalı oturumlar, yalnızca geçerli bir kontrolden sonra serbest bırakılan sunucu tarafı dizeler ve dosyalar, DLL'lerin bellekte yüklenmesi, anti-tamper, anti-debug, anti-VM ile C, C++ ve C# için süreç kara listeleri sunar. Binary Trace sızdırılmış derlemeleri bir lisansa geri izlemeye yardımcı olur, qPAnalyzer ise yeniden adlandırılmış olsalar bile tersine mühendislik araçlarını işaretler. Uzaktan ayarlar, yeni bir derleme göndermeden korumayı ayarlamanızı sağlar.
Satış tarafında, yerleşik mağaza anahtarları anında teslim eder, kart, kripto, banka transferi ve hediye kartlarını kabul eder ve kuponlar, abonelikler ile müşteri kara listelerini içerir. Ücretsiz planın aylık bir ücreti yoktur. Her planın neleri kapsadığı için fiyatlandırma sayfasına, şirketiniz yeni kuruluyorsa girişim programına bakabilirsiniz.
Sıkça sorulan sorular
Maliyeti artırın, müşterileri koruyun
Yazılım korsanlığı bir kez çözülüp bitecek bir sorun değil, yönetilmesi gereken bir maliyettir. Lisans kararlarını ve gerçek değeri sunucuya koyun, anahtarları cihazlara bağlayın, istemciyi saldırganları yavaşlatacak kadar sertleştirin ve kaçan kopyaları izleyin. Ardından satın almayı korsanlıktan daha kolay hale getirin. Bu adımları sırayla atan küçük bir ekip, tamamen müşterinin makinesinde duran tek bir akıllıca kontrol üzerinde aylarca çalışan bir ekipten çok daha az kayıp yaşar.
qPapel Security Team
Lisanslama ve yazılım koruması