Yazılımı koruma

Başlatan bunalmis, 21 Aralık 2009, 02:59:31

ErsinErce

Alıntı yapılan: "bunalmis"cynetron nin önerisinin biraz daha geliştirilmiş hali.

Anahtari olan kapıyı açar. Anahtarı olmayan tek tek anahtarları dener. Her bir anahtar denemesi belli bir süreyi gerektirir ve anahtar sayısı çok fazladır.

Bunun gibi bir yapı için ne diyebiliriz?

Yazılım içine kartın kimlik numarasını gömeceğim. Kartlar ve kart sahibine gönderilen yazılımlar aynı kimlik numarasını içerecekler. Fakat farklı kartlar ve yazılımlar farklı numaralara sahip olacaklar.

Her uygulama programı için kimlik numaraları farklı olacak. Dolayısı ile kart içine gömülü çok sayıda kimlik no olacak.

Yazılım kartla iletişim kurarken verilerle birlikte kimlik noyu da gönderir. Kart, kendisine gelen kimlik no ile eşleşiyorsa kendisine verilen görevi başarıyla yerine getirir.

Eğer eşleşmiyorsa, görevi random olarak bazen doğru bazen de yanlış yerine getirir.

Bu durumda kullanıcının yazılım içine gömülmüş kimlik noyu tek tek değiştirerek olası tüm durumları sınaması gerekecektir.

Burada hackerin işini zorlaştıran, kartın verilen görevi nezaman doğru ne zaman yanlış yaptığını tek seferde kesin kez bilemeyişi ve kimlik numarasının bit uzunluğunun uzun yani denenmesi gereken kombinasyon sayısının çok fazla oluşudur.

Bu sınama işlemi kart tarafından kolayca anlaşılabilir. Kendisine gelen kimlik no sabit kalmayıp her defasında değişiyorsa zaten hackerla karşı karşıya kaldığını da bilecek demektir.

Bu durumda hackerın her defasında kartı resetleyip PC yazılımını tekrar başlatması gerekir ve yazılımın kartla linki kurması saniyeler mertebesinde uzundur.

Bu yapı çok basit fakat etkili siz ne dersiniz?

Sistemin dezavantajları

Kullanıcıları fişlemek gerekiyor. Yani hangi kullanıcıya hangi kart gönderildi bilgisini saklamak.

Birde o kişiye programı yeniden derlemek gerekiyor.

Basit bir HTML sayfaya koyayım da programı kendi indirsin diyemiyeceğim. İllaki mail ile yollamam yada internette o kişiye özel link vereceğim.

@bunalmis hocam güzel bir geliştirme gerçekten, fakat yazılımı standart koruma yöntemleriyle başlangıç düzeyindeki hackerlara karşı korumanız yeterli olacaktır. İşlemler kartta olacağı için yazılım kopyalansa dahi kart işlemi her zaman doğru bir şekilde yerine getirmeyecek bu da otomatik olarak pc tarafının korunma önemini azaltıyor. Standart tek link üzerinden güncelleme yeterli olacaktır, sadece her güncelleme sonrası yazılımın serial istemesi ve kişilere özel serial göndermeniz yeterlidir diye düşünüyorum. Kart yazılımına gelince oda sabit olup sadece ilk çalıştırmada gelen serial'ı kabul etmesi ve güncellemelere uyum sağlaması yeterlidir. Sonuçta bu yazılımın yaygınlaşması için kullanılması lazım kişiler yazılımı kopyalasa dahi kartı almak zorunda kalsınlar. Sadece güncelleme hakkını tek yapmanız kopyalama sayısının belli bir sınırda kalmasını sağlayacaktır.

İyi çalışmalar.

lojikmemo1

Eğer program veya plug-in kurulumu yapılırken internet bağlantısını zorunlu kılmak sorun teşkil etmez ise kurulum sırasında bir iki numara yapabiliriz.

Öngördüğüm senaryo şu:

Program ve plug ne ise bu ürün verilirken kafadan bir şifre verilir bu şifre aynı zamanda web sitesinde de tanımlanır ve bir kez kullanılma yetkisi verilir. Kurulum sırasında müşteri şifreyi girer program web den kontrol eder ve onay alır bu sırada web sitesi şifrenin yetkisini bitirir böylece kurulum sonrası şifre geçersiz hale gelir.
Tabi bu yöntemin sorunu şu her kurulumda yeni şifre temini gerekecektir.
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

vsalma

Evet yazılımın kritik bir kısmı donanım tarafında bulunmalıdır.

Bunun yanında yazılımınızda cracking i zorlaştıran yöntemler olmalı.

Aklıma gelenlerden örnek verecek olursak.

-kaliteli bir packer ile paketlenmeli.
-isdebuggerPresent apisi ile debuggerla açılıp açılmadığı kontrol edilmeli.
-*kesinlikle tek yerde lisans koruması yapılmamalı.(Pek çok yerde random zamanlarda olabilir.)
-Cracking girişimi tespit edildiğinde kesinlikle hata mesajı verilmemeli.
-Cracking girişimi tespit edildiğinde pat diye program sonlandırılmamalı. Rastgele bir bekleme sonrasında kapatılabilir.
vs.vs

hasangurlek

Alıntı yapılan: "vsalma"Evet yazılımın kritik bir kısmı donanım tarafında bulunmalıdır.

Bunun yanında yazılımınızda cracking i zorlaştıran yöntemler olmalı.

Aklıma gelenlerden örnek verecek olursak.

-kaliteli bir packer ile paketlenmeli.
-isdebuggerPresent apisi ile debuggerla açılıp açılmadığı kontrol edilmeli.
-*kesinlikle tek yerde lisans koruması yapılmamalı.(Pek çok yerde random zamanlarda olabilir.)
-Cracking girişimi tespit edildiğinde kesinlikle hata mesajı verilmemeli.
-Cracking girişimi tespit edildiğinde pat diye program sonlandırılmamalı. Rastgele bir bekleme sonrasında kapatılabilir.
vs.vs

Alıntı yapılan: "hasangurlek"İşin içine PC tarafı girince data yönü ne olursa olsun, kontrol hangi tarafta yapılırsa yapılsın maalesef güvenlik diye bir şey söz konusu olmuyor.

Günümüz teknolojisi ile ne yaparsanız yapın PC programları her zaman basit bir şekilde kırılmaya açıktır. Siz bir yordama değişkenin değerini geçirip adresini geçirmediğiniz için alt yordamda içeriğini değiştiremezken başka birileri PC nin fiziksel belleğinde sizin alt yordamınızın yapamadığı değişikliği her zaman yapar.

Bakın burada isdebuggerPresent nasıl kullanılmış;



Geri dönüşden önceki  "eax=0" değişimi; kontrolü "kod debug edilmemiştir" sonucu ile döndürmeyi sağlar. Siz kod içinde yüzbin defa kontrol yazılımı çalıştırsanız bile CTRL+H ile tüm kontrolleriniz bir kaç saniye içinde devre dışı bırakılır. Profesyonel birisi ise kodu dis edip yeniden derlemek yerine; dis ettiği kopyadan öğrendiği adresleri kullanarak direk orjinal dosya üzerinde ilgili adresteki hex değerleri değiştirerek işi bitirir.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

hasangurlek

Alıntı yapılan: "cynetron"
@bunalmis hocam güzel bir geliştirme gerçekten, fakat yazılımı standart koruma yöntemleriyle başlangıç düzeyindeki hackerlara karşı korumanız yeterli olacaktır. İşlemler kartta olacağı için yazılım kopyalansa dahi kart işlemi her zaman doğru bir şekilde yerine getirmeyecek bu da otomatik olarak pc tarafının korunma önemini azaltıyor. Standart tek link üzerinden güncelleme yeterli olacaktır, sadece her güncelleme sonrası yazılımın serial istemesi ve kişilere özel serial göndermeniz yeterlidir diye düşünüyorum. Kart yazılımına gelince oda sabit olup sadece ilk çalıştırmada gelen serial'ı kabul etmesi ve güncellemelere uyum sağlaması yeterlidir. Sonuçta bu yazılımın yaygınlaşması için kullanılması lazım kişiler yazılımı kopyalasa dahi kartı almak zorunda kalsınlar. Sadece güncelleme hakkını tek yapmanız kopyalama sayısının belli bir sınırda kalmasını sağlayacaktır.

İyi çalışmalar.

Alıntı yapılan: "lojikmemo1"Eğer program veya plug-in kurulumu yapılırken internet bağlantısını zorunlu kılmak sorun teşkil etmez ise kurulum sırasında bir iki numara yapabiliriz.

Öngördüğüm senaryo şu:

Program ve plug ne ise bu ürün verilirken kafadan bir şifre verilir bu şifre aynı zamanda web sitesinde de tanımlanır ve bir kez kullanılma yetkisi verilir. Kurulum sırasında müşteri şifreyi girer program web den kontrol eder ve onay alır bu sırada web sitesi şifrenin yetkisini bitirir böylece kurulum sonrası şifre geçersiz hale gelir.
Tabi bu yöntemin sorunu şu her kurulumda yeni şifre temini gerekecektir.

Tüm bunları kodla yapmayacakmısınız ?

Sizin web sitesinden veya herhangi bir yerden alacağınız serial asla alınmaz ve asla kontrol edilmez !

AŞAĞIDAKİ KONTROLLERİN TÜMÜ ;

1-Reklamlar vs. vs.
2-Seri_no_al
3-Seri_no_kontrol_et
4-Seri_no_yanlissa_hataya_git
5-Serial Alındı_ve_Kod_dogru
...Program çalışmaya başladı

2.SATIRDAKİ TADİLAT İLE YANİ KOŞULSUZ DALLANMA İLE DEVRE DIŞI BIRAKILIR !!!

1-Reklamlar vs. vs.
2-5. AŞAMAYA GEÇ
3-Seri_no_kontrol_et
4-Seri_no_yanlissa_hataya_git
5-Serial Alındı_ve_Kod_dogru
...Program çalışmaya başladı

Bu kontrolleri atlatmak için exe yi dis etmeye bile gerek yoktur :)
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

nonstradam

Alıntı yapılan: "bunalmis"İşte burada benim söylemediğim bir cümleden yola çıkıyorsunuz.

Ben başından beri
Alıntı Yapneticede göndereceği şey "key tamam"  yada" key kaka" bilgisi olacaktır. ya da cihazdan gelen bilgiyi yazılım değerlendirip bu kanaate varacaktır.
bunu söy le mi yo rum. Israrla bunu siz söylüyorsunuz.

PC karta al kardeşim bunlar işleyeceğin veriler bu da senin ID numaran diyor.

Kart gelen verileri ve gelen ID yi okuyor.

Eğer ID kendisine ait ise verileri işlenmesi gereken şekilde işliyor.

ID kendine ait değilse, gelen verileri bazen doğru bazen de hatalı işliyor.

Sonuçta PC ye kardeşim Bu ID benimki değil demiyor.

Merhaba hocam bu mantık bence olur. çünkü kart içine gömülü ID leri sadece sen bilceksin. Hacker lar buna erişemeyecek. PC programınıda verirken senin kullandığın kart ID leri budur kardeşim dedinmi işlem tamamdır. PC tarafında çözülebilecek birşey kalmıyor geriye. kart tarafındada doğru ID geldiyse çalış, 3-5 sefer yanlış ID geldiyse kilitlen birdahada çalışma dedinmi senden izinsiz kullanacak olan şahıslar senin kartın olan cihazlara bağlandığında kartların bozup doğru senin yolunu tutacaklardır. sende bu şahısları çok güzel kucaklayabilirsin.

Kart verdiğin kişilerin ID numaralarını iyi muhafaza etmen gerekli hocam. kaybolma durumu olursa bolca servs işi çıkar.

Hackerların bu sisteme bişey yapabileceklerini sanmıyorum. çünkü kart doğru bilgi gelmeden çalışmayacak hatta 3-5 sefer yanlış gelirse kilitlenecek hocamın elini öpmeden çalışmayacak.

hasangurlek

Alıntı yapılan: "nonstradam"
kart tarafındada doğru ID geldiyse çalış, 3-5 sefer yanlış ID geldiyse kilitlen birdahada çalışma dedinmi senden izinsiz kullanacak olan şahıslar senin kartın olan cihazlara bağlandığında...

Doğru ID leri insanların bilmediği bir teknolojiyle uzaylılarmı karta bildirecek ki, kimse bunlara ulaşamayacak ?

Otomasyon sistemlerinde çok daha hızlı çalışabilecek, çok daha fazla sayıda ekipman yönetebilecek 200-300 dolarlık PC kullanmak ve hava atmak varken niçin 1000-2000 euroluk operatör panelleri tercih ediliyor ?
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

z

Hasangurlek

Kullanacagim yontemde, kartin ID numarasini 3 sekilde anlayabilirsin.

1. Kartin ucretli yazilimini satin alarak.
2. Arkadasinin satin aldigi yazilimin bir kopyasini alip ID alanindaki veriyi  tek tek degistirip kartin dogru calisip calismadigini sinayarak.
3. Kart uzerindeki kod korumasini kirmaya calisarak.

Bunun disinda debuggerla yapilacak hokkabazliklar sonuc vermez. Cunku yazilimi open source bile yapabilirim.

Nonstradam

Alıntı YapKart verdiğin kişilerin ID numaralarını iyi muhafaza etmen gerekli hocam. kaybolma durumu olursa bolca servs işi çıkar.

Olay bu iste.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

wsxwsx

Bu konuyla ilgili değil ama ilginizi çekecek başka bir soru bulduk Buna da bakabilirsiniz.

https://www.picproje.org/main/modules.php?name=Forums&file=viewtopic&p=184275#184275

hasangurlek

Alıntı yapılan: "bunalmis"
Fakat kart sahipleri birbirlerinden kopya yazılım aldıklarında çalışmasın istiyorum.

PC yazılımındaki  koruma basit bir seri no karşılaştırmasının çok ötesinde olmalı.

Alıntı yapılan: "bunalmis"Bunun disinda debuggerla yapilacak hokkabazliklar sonuc vermez. Cunku yazilimi open source bile yapabilirim.

Sanırım fikir değiştirdiniz !
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

z

Iste simdi beni anlamaya basladin.

Ilk mesajimi yazarken ilk aklima gelen yontem, kartin PC ye gonderecegi Seri nonun PC de kontrol edilmemesi idi. Cunku bu yapilirsa debugger ile kavsak noktasi kolayca bulunur ve calis calisma ayrimi kolaylikla bypass edilebilirdi.

Bu nedenle PC yazılımındaki koruma basit bir seri no karşılaştırmasının çok ötesinde olmalı ifadesini ozellikle belirttim. Cunku calisip calismama karari PC tarafindaydi.

Sonradan bu kontrolu PC değil de kart yaparsa sorunun kalktigini farkettim. Ve bu yeni mantigi getirdim. Gordum ku aradigim cevap bu olabilirdi ve sistemin isleyisini  mesajlarimda uzun uzun yazdim, acikladim.

Ama bir iki iki kisi disinda yontem anlasilmadi. Sanirim simdi anlasildim.

Dogrumuyum? Debugger falan bu yonteme islemiyor.

Yazilimi elbette open source yapmayacagim ama yapsam da hackerin eli kolu bagli.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

SpeedyX

Key doğrulamasını cihazın içinde yaparsan ve cihazda kendini kilitlerse bilgisayar yazılımını opensource bile verebilirsin.
Cihaz kendini kilitlemezse key i kolayca bulurlar.

Cihazın kendini nasıl kilitleyeceği de önemli!

Bu durumda müşteriye özel firmware derlemen gerekecek.
PC programını ise web sitenden bile download ettirebilirsin.

Ben olsam;
Kendi flash memorysine erişime izin veren bir işlemci kullanır, bir hackerlık tespit ettiğimde flashın belirli bir yerine önceden konumlandırmış olduğum bir rutin ile program hafızasının tümünü (o rutinin olduğu yer hariç) sildirirdim.

z

Evet SpeedyX Key doğrulaması kart da yapildiginda yazılım opensource dahi verilebilir.

Yalniz yanlis ID de cihaz kendini kilitlerse ID nin yanlis oldugu hemen anlasilir. Bunun yerine Hackeri oyalayamak gerekir. Yani ID hakkinda dogru yada yanlis kararini vermesini zorlastirmak kafasini karistirmak gerekli.

Onerimde buna cozumu soyle buldum. Yanlis ID de random olarak dogru yada yanlis calissin.

Eger ID ardisil deneniyorsa hackerla biraz da oyun oynanabilir.

Cok hizli ID denenmesi kart tarafindan engellenebilir. Yeterince uzun bit uzunlugu secilirse hacker, kart ID sini denemek yerine milli piyango almaya yonelecektir.

Cihazin tamemen kendini kitleyip calismamasini etik bulmuyorum.
Belki 1 saatlik kitlenme sureci olabilir.

Kart yaziliminin musteriye ozel seri numaralar icermesi en buyuk dezavantaj.

Zaten bu karttan cok satamayacagim. Dolayisi ile kodlar her bir kart icin tekrar derlenebilir.

PC yazilimi da musteriye ozel gorunuyor ama yazilima ID numarasi gir secenegi eklentisi ile tek bir yazilim tum kartlar icin gecerli olur ve internetten dagitilabilir. ID numarasi mail ile yollanir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

SpeedyX

Cihaz kendini kilitlemezse eninde sonunda bulunur o ID :)

Peki neden bukadar şifreleme ile uğraşıyorsun? Bu cihazı senden satın alsam, kolayca kopyalayabilir miyim?

MC_Skywalker

Benim çalıştığım firmada kullanılan yazılım ve donanım israil li bir firmadan alındı. program görünürde USB dongle tarafından korunuryor. dongel içine çok küçük bilgi yazıyor.

kaç kart var.
kaç sunucu var.
ana program hangi sunucuda çalışıyor.
Ana dongle limitiz kullanım ile ana sunucuda takılı
yedek dongle kısıtılı kullunım süresi ve tüm fonksiyonları ile yedek sunucuda.
ve donglelar birbiri ile senkron.

Program satın alan firmaya göre hazırlanıyor ve kartların içindeki yazılımlar firmada yükleniyor.

katların driver ları özel değil. standart PLX PCI ara birim chpi ile yapılmış üzerinde FPGA lar ve diğerleri var.

programı ben kuruyorum. adamlar minicik bir exe gönderiyorlar dongle lar aktif  oluyor ve program çalışmaya başlıyor. o exe nin ömrü var ve sadece ana dongle in takılı olduğu pc de çalıştırılınca işlem yapıyor.

Birde dikkat ettiğim bir konu var microsoftun DMA Allocator için bir exesi var onun yerine adamlar kendi exe lerini kopyalıyorlar.

program update alım zamanı adamlar bizden programın kurulu olduğu dizin yedeğini isitiyorlar gönderi yoruz yenisi benzer şeklide geliyor ve mini exe çalıştırılıp aktif ediliyor.

Belki biraz fikir vermiştir.