Uygulamam internete bağımlı çalışır (Sunucum ile) her açılışında,
Haberleşemez ise uygulamam açılmaz, (kusura bakmasın internetsiz bilgisayar kalmadı bu devirde, kaldı ki yapıyorsa illaki vardır.)
Haberleşir ama lisans kodları (3213-3213-2132-1312) sattığım adamın statik ip'si ile eşleşmiyor ise çalışmaz.
Kurduğum bilgisayarın pc bilgilerini alırım (mac,hdd,işlemci kodları vs) lisans kodu ile ipsi ile eşleştirrim hepsi bir araya gelince sıkıysa kırsınlar.
(03-11-2016, Saat: 16:46)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Uygulamam internete bağımlı çalışır (Sunucum ile) her açılışında,
Haberleşemez ise uygulamam açılmaz, (kusura bakmasın internetsiz bilgisayar kalmadı bu devirde, kaldı ki yapıyorsa illaki vardır.)
Haberleşir ama lisans kodları (3213-3213-2132-1312) sattığım adamın statik ip'si ile eşleşmiyor ise çalışmaz.
Kurduğum bilgisayarın pc bilgilerini alırım (mac,hdd,işlemci kodları vs) lisans kodu ile ipsi ile eşleştirrim hepsi bir araya gelince sıkıysa kırsınlar.
Tüm bu kontroller uygulama içerisinde kod ile yapılıyorsa; (
ki maalesef öyle),
kırılır.

Bunlar basit çözümler. Bunları son kullanıcı çözemeyebilir ama biraz anlayan uğraşan çözebilir. Host dosyasında senin serverin ipsini 127.0.0.1 e yönlendirir ve senib yerine onay mesajını verir. Bununda önlemini alman lazım. Yada sen sunucudan gelen cevabı alınca şöyle yaparsın: if onayKodu=red then terminate else başla; biri exe üzerinde oynama yapar ve senin o satır tam tersine çalışır : if onaykodu=red then başla else terminate; yani artık uygulaman hatalı kod ile çalışır. İşte bunların önlemini almak için exeyide paketlemek gerekir. Aspack ile paketlersen aspack ile çözerler. Bir anlamı kalmıyor. Şifreleyerek paketleme yöntemleri mevcut. Bunlar değerlendirilebilir.
Bir cracker atasözü derki;
Hayat boş nopla($90) coş...
(03-11-2016, Saat: 18:11)QuAdR Adlı Kullanıcıdan Alıntı: [ -> ]Bir cracker atasözü derki;
Hayat boş nopla($90) coş...
"Arif olan anlar" der gibi bir cümle kurmuşsunuz, hocam.
Kısaca dijital sisteme kırılmayacak bir uygulama yoktur,diyebilir miyiz?
Bir uygulama çalııyor ise kırılır kırılmaması için çalışmayan bir şeyler yapılmalı.

Dongle korumalı sistemler kolay manipule olan sistemlerdir.Dongle simule edilmesi veya
dongle ın kullandığı library nin üzerinde değişiklik yapılması.Veya alternatif library yazılması
gibi kolay metodlar yapılabilir.
Packer kullanımına değinecek olursak basit packerlar çalıştırılınca kendi sectionlarında olan exe yi hafızaya açıp entry point
e sıçrama yaparak program devamlılığını sağlar.Daha kapsamlı olanlar obfuscate ederek kod okunmasını zorlaştırırlar.
Decompile edilirken bazı zorluklar çıkar.Entry point mantığı olarak değilde kendi üzerinde kod devamlılığı sağlarlar.
Böylelikle oluşturduğu paralel threadlerle program üzerinde kontrollerini devam ettirirler.
Güçlü binary dosya analiz algoritmaları sayesinde sorunsuz bir analiz ve paketleme yaparlar.
İmport table ı hafızada rast gele yazarlar ki crackerlar için en zor kısımdır bu importların toplanması.
Runtime da adreslemeleri tekrar yaparlar.Bazı anti debug metodları içerirler.
Bazı importları simule ederler(ilk kez 10 sene önce asprotect te gördüğümde şaşırmıştım)....anlattıkça uzar gider...
Peki anti debug için yapmamız gerekenler neler? AsProtect te aşıldığını tahmin ediyorum. Çünkü popüler.
Devuno DRM oyun geliştiriciler için kurtarıcı olmuş. Bu sistemi kullanan sistemin kırılması en iyi ihtimal 6 ay. Son durum nedir bilmiyorum.
http://shiftdelete.net/korsan-oyun-devri...iyor-68045
Fifa 16 kırılamamıştı. Ancak demo üzerine tam sürüm kurularak bir şekilde oynanmıştı. Bunu yapanda ilk biz Türklerdi.
http://shiftdelete.net/galaxy-j7-icin-an...andi-74101
Denuvo DRM sanırım dosyalar üzerinde sürekli okuma yazma yaparak kırılmaya karşı bir çeşit önlem alıyor.
(03-11-2016, Saat: 23:22)engerex Adlı Kullanıcıdan Alıntı: [ -> ]Peki anti debug için yapmamız gerekenler neler? AsProtect te aşıldığını tahmin ediyorum. Çünkü popüler.
Devuno DRM oyun geliştiriciler için kurtarıcı olmuş. Bu sistemi kullanan sistemin kırılması en iyi ihtimal 6 ay. Son durum nedir bilmiyorum. http://shiftdelete.net/korsan-oyun-devri...iyor-68045
Fifa 16 kırılamamıştı. Ancak demo üzerine tam sürüm kurularak bir şekilde oynanmıştı. Bunu yapanda ilk biz Türklerdi. http://shiftdelete.net/galaxy-j7-icin-an...andi-74101
Denuvo DRM sanırım dosyalar üzerinde sürekli okuma yazma yaparak kırılmaya karşı bir çeşit önlem alıyor.
Denuvo SSD leri 8 9 ayda perte çıkarıyor :/
Asprotect örnek verdim.Kendiniz bir şeyler yapmayı düşünmeyip hazır bir şeyler ile devam etmek isterseniz şu an piyasada en iyi koruma sağlayan koruma motoru oreansın geliştirdiği themida ve winlicense dır.
Kendiniz bir şeyler yapmak isterseniz SMC (Self modifying code) ve overlay(Out section) metodlarını kullanabilirsiniz.
SMC runtime code bloklarını yeniden düzenleme işlemidir.
Overlay ise exe dosyalar sectionlardan oluşur ve bu section boyutları dosya içerisinde belirtilir.
Siz belirtilen exe boyutu üzerine yani dosyanın devamına kod yazarak bu kodu runtime da okuyarak kontrollerinizi yapabilirsiniz.
Overlay metodu ile önce exeyi derleyip bir compress işlemi yaptıktan sonra exe üzerine tekrar yazdırırsanız.
Eğerki exe decompress yani unpack edilirse bu veriler tekrar yazılmaz ise exe bozuk bir dosya haline gelecektir.
Yine buraya yazacağınız veriyi runtime da code bloğu silik bir exe ye belirli method çağrımları ile yazdırıp işlem bitiminde tekrar
sildirtebilirsiniz.Böylelikle debug edilse bile boş code bloğu ile karşılaşılacaktır.
Başka bir method ise exe içerisinde exe.Birinci exenin loader mantığı ile hafıza kontrolü yapıp ikinci exeyi direk kendi içerisinden hafızaya
açarak çalıştırmasıdır.Owner exe ile child exe yede birbirlerini kontrol ettirebilirseniz herhangi birine müdahale durumunda biri diğerine sonlanma isteği gönderebilir.Yine bu mantığa smc ve overlay de eklerseniz sağlam bir koruma sağlamış olursunuz.
Fikir olsun diye basit bir smc örneği vereyim.
program SMC;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
SMCFunc: function: Integer;
{$J+}
const
Code: array[0..5] of Byte = (
//eax a bir değer alıp geri dönderelim
$B8, $00, $00, $00, $00, $C3);
var
FByte: Byte;
begin
@SMCFunc := @Code;
WriteLn('Su anki deger = ' + IntToStr(SMCFunc));
WriteLn('Bir sayi giriniz (0-255)');
ReadLn(FByte);
Code[1] := FByte;
WriteLn('Son deger = ' + IntToStr(SMCFunc));
ReadLn;
end.
@
QuAdR hocam, peki program her başlatıldığında base address i değiştirebilsek? NOP, JUMP ile kırılma olaylarının önüne geçebilirmiyiz ?