Picproje Elektronik Sitesi

BİLGİSAYAR => Donanım ve Yazılım => Konuyu başlatan: z - 21 Aralık 2009, 02:59:31

Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 02:59:31
Elektronik bir kart imalatı yapacağım. Bu kart PC ye Usb üzerinden bağlı. Kartın kullanılabilmesi için windows üzerinde koşan yazılımı da kart ile birlikte vereceğim.

İlerleyen dönemlerde çok gelişkin farklı yazılımlar geliştireceğim.  Kartıma sahip kullanıcılar yeni çıkartacağım yazılımları satın alıp kullanabilecekler.

Fakat kart sahipleri birbirlerinden kopya yazılım aldıklarında çalışmasın istiyorum.

Alacağım önlemlerle ilgili rutinleri şimdiden kart üzerindeki MCU  içine gömmem gerekiyor.

Sözkonusu senaryoya göre yazılımlarımı nasıl korumalı hale getirebilirim?

Her bir karta seri numarası gömebilirim ancak PC yazılımındaki  koruma basit bir seri no karşılaştırmasının çok ötesinde olmalı.
Başlık: Re: Yazılımı koruma
Gönderen: lojikmemo1 - 21 Aralık 2009, 04:21:31
Alıntı yapılan: "bunalmis"Elektronik bir kart imalatı yapacağım. Bu kart PC ye Usb üzerinden bağlı. Kartın kullanılabilmesi için windows üzerinde koşan yazılımı da kart ile birlikte vereceğim.

İlerleyen dönemlerde çok gelişkin farklı yazılımlar geliştireceğim.  Kartıma sahip kullanıcılar yeni çıkartacağım yazılımları satın alıp kullanabilecekler.

Fakat kart sahipleri birbirlerinden kopya yazılım aldıklarında çalışmasın istiyorum.

Alacağım önlemlerle ilgili rutinleri şimdiden kart üzerindeki MCU  içine gömmem gerekiyor.

Sözkonusu senaryoya göre yazılımlarımı nasıl korumalı hale getirebilirim?

Her bir karta seri numarası gömebilirim ancak PC yazılımındaki  koruma basit bir seri no karşılaştırmasının çok ötesinde olmalı.

Bu projenin ne yapacağı ile ilgili verirsen fikir sahibi oluruz daha önce ve bu tip korumalar yapmıştım özelliklr inernet tabanlı olması güvenliği kale kadar sağlam yapmakta vereceğin bilgiler ışığında bir sistem geliştiririz.
Başlık: Yazılımı koruma
Gönderen: ErsinErce - 21 Aralık 2009, 04:41:56
Şu şekilde bir koruma önleminin işinize yaracağını düşünüyorum.

Verilen serial ile yazılım koruma altına alınır.
Bu yazılım kartla iletişime geçtiğinde serial ile program versiyonun kodlanmış bir şekli cihaza gönderilir cihaz ilk kez iletişim kuruyorsa ve serial çözülüp onay alıyorsa bu serial cihazda EEPROM ya da benzeri bir yere sürekli kalacak şekilde kayıt edilir. Eğer bir güncelleme varsa bu versiyonun ve yeni serial sayesinde önceki versiyon seri numarasına ait yazılım mı diye kontrol edilir onay alırsa yeni serial olarak kayıt edilir. Cihaz o serial ve ya güncellemeleri harici çalışmaz.

Açıklarken biraz karışık gibi oldu ama şöyle anlatıyım bide
serial=1234 versiyon=1
serial=2468 versiyon=2
gibi basit bir mantık ve cihazlarda o serial harici çalışmazlar

Kopya yazılımı çalıştırmaları için ya yeni cihaz almak zorundalar, ya da kopyaladıkları yerdeki cihazı =)

Güncelleme ücreti de bir cihaz fiyatından ucuza olursa her halukarda size dönmek zorunda kalırlar =)
Başlık: Yazılımı koruma
Gönderen: sekoli - 21 Aralık 2009, 09:35:55
Selamlar,

PC tarafına hazırlayacağınız yazılıma her ne koruma koyarsanız koyun, eğer ürününüz çok satılan ve aranan bir ürün haline gelirse ve yazılım kırma işlerine bakan insanların eline geçerse mutlaka kırarlar.

O yüzden, windows ortamında yazılım hazırlarken amaç, hep bu adamların işini olduğunca zorlaştırmaktan ibarettir.

Bu işlerle uğraşan biri olarak size naçizane tavsiyem, koruma amaçlı donanımsal çalışan profesyonel bir ürün kullanmanızdır. (HASP vb. gibi) Eğer o pahalı gelirse (ki şu aralar fiyatı çok ucuz, ama sizin projenizin fiyatına eklenince belki pahalı geliyor olabilir) yazılım tabanlı profesyonel ürünler de var.
Eğer o da pahalı gelir derseniz, kendinizin uygulayabileceği bir iki yöntemden bahsedebilirim.

İyi çalışmalar.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 10:01:27
Lojikmemo1

Koruma açısından programın ne olacağının öneminin olmaması gerekir. Program hakkında (http://bikomak.com/UsbCnc.html)

Programı internetle alakası olmayan makinelerde de çalıştırabilmeliyim.

Sekoli

HASP türü yapıları bilmiyorum. Ancak çıplak bir yazılıma kıyasla yazacağım programın bir donanımla birlikte kullanılıyor olması, güvenlik açısından bir avantaj oluşturuyor.

Koruma yöntemleri için detaylara girebilirmiyiz?
Başlık: Yazılımı koruma
Gönderen: Analyzer - 21 Aralık 2009, 10:25:54
Selam,

Zamanında donanımsal korumalarla haşır neşir olmuş biri olarak, dongle korumayı şöyle izah edebilirim. Bir donanımsal kilit ile yazılım korumalı bir tünel üzerinden sürekli iletişimde bulunur. Pc tarafındaki yazılım ilk olarak donanımsal kilit ile arasında dışarıdan müdahale edilmesi güç bir tünel oluşturur. Ardından yazılım, kilite seed adı verilen veriler gönderir. Bu seed'ler donanım kilidi tarafından işlenir (grow-up) ve tekrar yazılıma gönderilir. Normal veri gönder hesaplasın geri göndersin mantığından farklıdır. Çünkü iletilen seed e karşılık her seferinde farklı bir kod gönderilir. (Emülasyona karşı) Mantık çok kısaca budur. Bir ikinci konu ki, bu aslında donanım korumadan daha önemlidir. Yazılım koruma yöntemi. Ticari satılan kilitler, korunan yazılımı bir envelope içerisine alırlar. Bu envelope, bootloader mantığı ile düşünebilirsiniz. Envelope, korunan yazılımın baş kısmına yerleştirilen bir kod parçası ve asıl programı şifreleyerek gizler. Envelope öncelikle dongle'ı sıkı bir orjinallik testinden geçirir. Eğer orjinal olduğunu düşünüyorsa, programı bellekte veya diskte bir yere açar ve ana yazılım bu sefer seed göndermeye devam eder. Bu ne avantaj sağlar, softice gibi debugger'lar ile kodu trace etmeniz güçleşir. Envelope kısmını görebilirsiniz ancak şifreli programa müdahale pratikte mümkün olmaz. Tabi envelope'u da yaklaşık 4-5 senedir şifreliyorlar, yeni başlayan cracker'lere karşı. Google ile şunları araştırabilirsiniz : Hasp, Sentinel dongle, AsPack, Asprotect (favorimdi), Softice, Exetools, Delphi Decompiler..

Analyzer
Başlık: Yazılımı koruma
Gönderen: muuzoo - 21 Aralık 2009, 10:26:54
Alıntı yapılan: "sekoli"Selamlar,

PC tarafına hazırlayacağınız yazılıma her ne koruma koyarsanız koyun, eğer ürününüz çok satılan ve aranan bir ürün haline gelirse ve yazılım kırma işlerine bakan insanların eline geçerse mutlaka kırarlar.

O yüzden, windows ortamında yazılım hazırlarken amaç, hep bu adamların işini olduğunca zorlaştırmaktan ibarettir.

Bu işlerle uğraşan biri olarak size naçizane tavsiyem, koruma amaçlı donanımsal çalışan profesyonel bir ürün kullanmanızdır. (HASP vb. gibi) Eğer o pahalı gelirse (ki şu aralar fiyatı çok ucuz, ama sizin projenizin fiyatına eklenince belki pahalı geliyor olabilir) yazılım tabanlı profesyonel ürünler de var.
Eğer o da pahalı gelir derseniz, kendinizin uygulayabileceği bir iki yöntemden bahsedebilirim.

İyi çalışmalar.

Çok iyi bilmemekle beraber, bu tarz dongle korumalarıda kolayca aşılabiliyor. İnternette bulunan 2-3 küçük program ile dongle dump edip, işlemek oldukça kolay.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 21 Aralık 2009, 11:18:29
dongle korumaları çeşit çeşit. bazısı var ki usb bellek gibi. sizin programınız da onun içinde yüklü. BUnların kırılabildiğini duymadım.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 11:41:46
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.
Başlık: Yazılımı koruma
Gönderen: sekoli - 21 Aralık 2009, 11:59:24
Alıntı yapılan: "bunalmis"Lojikmemo1

Koruma açısından programın ne olacağının öneminin olmaması gerekir. Program hakkında

Programı internetle alakası olmayan makinelerde de çalıştırabilmeliyim.

Sekoli

HASP türü yapıları bilmiyorum. Ancak çıplak bir yazılıma kıyasla yazacağım programın bir donanımla birlikte kullanılıyor olması, güvenlik açısından bir avantaj oluşturuyor.

Koruma yöntemleri için detaylara girebilirmiyiz?

Tekrar selamlar,

Analyzer arkadaşımız gayet güzel açıklamış.
Fakat sizinde bahsettiğiniz gibi, yazılımınızın sizin ürettiğiniz bir donanımla kullanılacak olmasından dolayı bir avantajınız var. Belki bu avantajı kullanarak kendi donanımsal kilit mantığınızı oluşturabilirsiniz. Bunun içinde Analyzer 'ın bahsettiği keywordleri araştırarak bu konudaki temel yöntemleri öğrenebilirsiniz. Cracker'ların nasıl çalıştığını anlayabilirseniz, onlara karşı bir yöntem geliştirmek daha kolay oluyor.

Kendi kilit mantığınızı oluşturacağınızı varsayarsak şu konu başlıklarına dikkat etmek gerekecektir diye düşünüyorum:
* Kodun "asıl işi yapan yerinde" (sadece programın başlangıcında değil) rastgele olarak donanımınızı kontrol edin. (bu rastgelelik örneğin zamana göre olabilir)
* Kodun içerisine fake stringler ve fonksiyonlar ekleyin (örn. CheckDongle gibi bir fonksiyon ismi) ama asıl kontrol işini alakasız isimli fonksiyonda yapın. Asla kontrolü çağrıştıran değişken adı ayda stringler kullanmayın  (örn. Win32ListView gibi)
* Çok bilinen debuggerlar için kontrol koyabilirsiniz (Win32dasm, softice gibi) Bu tip debuggerlar kodunuzu debug etmek için çalıştırmak zorundadırlar. Siz programınızın bir yerlerinde bu debuggerların çalışıp çalışmadığını kontrol edebilirsiniz.
* Yazılımınız crackli olduğunu anlarsa hemen sonlanmasın, bazen normal çalışsın, bazende saçma hatalar versin. Bu crackcilerin işini zorlaştırır.
* Cihazınızla yapacağınız haberleşmeyi mümkünse şifreleyin
* Koruma ile ilgili kodların bir kısmını bir DLL in içine koyun. Programın rastgele yerlerinde bu DLL in değişmediğini kontrol edin.
* Yazılımınız bittiğinde fazla yaygın olmayan bir packer ile sıkıştırın. Tecrübesiz crackerların bir kısmını elemiş olursunuz.

Şu anda aklıma gelenler bunlar. Sizinde araştırmanız sonucunda daha başka teknikler olduğunu da göreceksiniz. Şimdiden kolay gelsin.  :D

Alıntı YapÇok iyi bilmemekle beraber, bu tarz dongle korumalarıda kolayca aşılabiliyor. İnternette bulunan 2-3 küçük program ile dongle dump edip, işlemek oldukça kolay.

@muuzoo, HASP gibi çok bilinen markalar için emülatörler olduğunu duymuştum. Fakat Aladdin dışında bir çok marka ve model var. Bunlar HASP kadar yaygın olmadığından emülatörleri de yok. Belki böyle bir ürün de kullanılabilir.
Başlık: Yazılımı koruma
Gönderen: sekoli - 21 Aralık 2009, 12:30:52
Alıntı yapılan: "bunalmis"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.

Maalesef crackerlar için brute force herhalde en son çaredir. Kimse uğraşmaz. Onun yerine mantık; sizin kodunuzdaki kontrol yerini bulup oraya bir jump atmaktır. Bu yüzden açıkcası yönteminizin etkin olduğunu düşümüyorum.
Başlık: Yazılımı koruma
Gönderen: azimli - 21 Aralık 2009, 12:37:45
üretilen her işlemci için ayrı ayrı o işlemcinin markasına ve serisine göre ID işlemci üretim numarası verildiğini bir ara duymuştum.Ve aynı serideki hiçbir mikro işlemcinin bu üretim seri numarası birbirinin aynısı olmazmış.

Böyle bir şey varmı acaba?

Bir işlemcinin üretiminden gelen sabit bir seri numarası varmı?

Nasıl tespit edilir?

Böyle bir numara varsa bu iş için değerlendirlmesi mümkünmüdür?

Böyle bir numara yoksa işlemcinin flash belleği programlanırken buraya böyle bir numara gömülebilir diye düşünüyorum günümüzdeki işlemciler kullanımları sırasında bile flash belleğine veri yazıp silip okuyabiliyor.

Şartları uydurulduğunda Flash belleğini bile komple silebiliyor.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 12:42:51
Alıntı YapMaalesef crackerlar için brute force herhalde en son çaredir. Kimse uğraşmaz. Onun yerine mantık; sizin kodunuzdaki kontrol yerini bulup oraya bir jump atmaktır. Bu yüzden açıkcası yönteminizin etkin olduğunu düşünmüyorum.

Fakat Brute Force yapmaya mecbur. Önerime dikkat ederseniz kart, pc ye ben doğru kartım yada yanlış kartım one göre  doğru çalış yada yanlış çalış demiyor. Dolayısı ile PC yazılımında dallanma noktası yok.

Anahtar doğruysa kart içindeki MCU doğru çalışıp çalışmayacağına kendi karar veriyor ve PC deki yazılım karşısındaki kartın kendiyle uyuşup uyuşmadığından hiç haberi olmuyor.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 13:04:01
Çalışan bir program, kendi kendinin checksum değerini hesaplayabilirmi?
Başlık: Yazılımı koruma
Gönderen: teknikelektronikci - 21 Aralık 2009, 13:16:08
bunlamiş hocam yanlış anlamayında siz ve z hocam aynı yerdemi çalışıyorsunuz yoksa aynı kişilermisniz :) merakımdan soruorum yanlış anlamayın
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 13:30:22
Ben sürekli zaman bölümündeyim. Z, ayrık zaman bölümünde. Sonuçta çok farklıyız fakat ikizden de yakınız.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 21 Aralık 2009, 13:47:44
hmm. galiba burada nik terbiyecisi var.
Başlık: Yazılımı koruma
Gönderen: Analyzer - 21 Aralık 2009, 13:55:25
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.

Selam,

Bu yapı için zayıf diyebiliriz. Sonuçta derlenen program bir debugger ile açılır. Paket içinden kontrol yapan kısımlar, ya apiler ile ya da ilgili fonksiyonlar, breakpoint'ler ile durdurulur. Ardından kontrol gerçekleştiren fonksiyonlar devre dışı bırakılır ya da emule edilir.
Bir önceki mesajda da basitçe izah ettim. Cracker donanımla ilgilenmez, donanım kontrolü yapan programla ilgilenir. Yani aslında bu bir yazılım problemidir. Yoksa istenirse 2^1024 haneli anahtarla çalışılsın. Bir anlam ifade etmez. Brute force çoğu zaman denenmez, ilgilenilmez. Donanım şimdilik kenarda beklemeli, donanımsal kilit nasıl kırılır, onun dökümanları incelenmeli. Mesela Winrar dosyasını nasıl şifreleyip koruyor onu araştırmak lazım.

Analyzer

Not : Ticari donanım kilitleri kolayca emule ediliyor deniyor, Auton programı mevcut. Biri emule etse de programı kullanan CAx piyasası bir rahatlasa :)
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 14:17:59
Önerdiğim yöntem tam okunmadı diye düşünüyorum.

İki kişiye sattığım iki PC yazılımını da debugger ile açın göreceğiniz tek farklılık key bilgisi olacaktır.

Bu da hackeri brute force yapmaya zorlar.

Eğer key bilgisini kart PC ye gönderiyor ve kontrolu PC yazılımı yapıyor olsaydı haklısınız. Fakat keyi PC karta yolluyor ve kontrol kart tarafında yapılıyor.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 21 Aralık 2009, 14:26:06
kart isterse takla atsın. neticede 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.

işter hacker efendi, yazılımı ikna ediyor ve kararı hemen vermesini sağlıyor. bilmemkaç bitlik şifren algoritman hiç işe yaramıyor. orayı baypas yapıyor.

Benim önerim yazılımın büyük bir kısmının cihazın içinden gelmesidir.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 14:32:14
İş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.
Başlık: Yazılımı koruma
Gönderen: sekoli - 21 Aralık 2009, 14:32:23
Alıntı yapılan: "bunalmis"Önerdiğim yöntem tam okunmadı diye düşünüyorum.

İki kişiye sattığım iki PC yazılımını da debugger ile açın göreceğiniz tek farklılık key bilgisi olacaktır.

Bu da hackeri brute force yapmaya zorlar.

Eğer key bilgisini kart PC ye gönderiyor ve kontrolu PC yazılımı yapıyor olsaydı haklısınız. Fakat keyi PC karta yolluyor ve kontrol kart tarafında yapılıyor.

Şimdi tabi siz böyle deyince şunu bilmek gerekiyor. PC deki yazılım ne iş yapacak? Cihaz ne cihazıdır?
Sonuçta eğer cihaz çalışmaya karar verdiğinde cihazla ilgili bir takım işlemlerin yansıması PC de olacaksa, ve kullanıcılarla etkileşim PC kısmında ise Analyzer üstadın da dediği gibi yönteminiz yetersiz kalır. Tabi bu benim görüşüm.
Başlık: Yazılımı koruma
Gönderen: azimli - 21 Aralık 2009, 14:34:03
bunalmis hocam,

bir önceki karetekit kedi resminizi çok beğenmiştim artık onu kullanmayacaksanız lütfen bana verebilirmisiniz?

müsade ederseniz onu ben kullanayım hep bir kedim olsun istemiştim ve onu çok sevmiştim.

onu bana verirseniz marka patentinide almayı düşünüyorum patentçi bir arkadaşa bu konuda iş vereceğim.
Başlık: Yazılımı koruma
Gönderen: z - 21 Aralık 2009, 14:42:03
Kedi sizin olsun. Kediyi daha yavru iken internette bulmuş ve bugüne kadar beslemiştim.

Z yi gerçekten merak ediyorsanız Z yi çok iyi araştırmalısınız. Avatarımdaki eli öpülesice de Z ile alakalı.

Biliyorum bilmece gibi konuşuyorum ama zaten Z büyük bir bilmecedir ve kontrolla ilgilenen herkez Z yi iyi tanımalıdır.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 21 Aralık 2009, 14:45:22
Ne yaparsanız yapın mutlak koruma diye birşey sözkonusu değildir. Her güvenlik önlemi tıpkı bir asma kilit gibi olup DOSTA ve İŞİ BİLMEYEN MERAKLILARA KARŞIDIR. Bu kilidin kırılması için gerekli ekipmanla KONTROLLÜ güç uygulanması yeterlidir. Sağlam bir parolayı kırmak her ekipmanı kullanabilen, her imkana sahip biri için yıllar sürebilirken girilen her parolanın programca doğru kabul edilmesini sağlamak assembly bilen biri için en fazla bir kaç saat sürer. Sonuçta yazılımı piyasaya dağıtacaksınız ve kodlarınız herhangi biri için herhangi bir zamanda dis edilmeye hazır bekleyecek ! Hatta dis etmeden bile bir hex editörü ile programınızda bir kaç değer değiştirilerek istenen sonuç elde edilebilecek. Bu aşamada yazılımda fonksiyonlarını çağırdığınız DLL dosyalarının yerlerine başka dosyalar konulabilir, ana programınızın kodları her zaman değiştirilebilir.

PC işletim sistemleri çalışacak her program için bellekte fiziksel adresler ayırır. Koşacak ana kodların dışında program içinde kullanılan her nesnede yeri geldiğinde belleğe yüklenir. Siz istediğiniz kadar bilgiyi, istediğiniz yerde, istediğiniz yöntemlerle (3DES, RC5, Serpent, Twofish vs.) üstüste defalarca şifreleyerek korumaya çalışsanızda, datalarınızı arrayler içinde saklamaya çalışsanızda, programı geliştirdiğiniz derleyicinin (C++, VB, Delphi, *.NET vs.) assembly kod korumasını açsanızda; programınız şifrelenmiş bilgileri kullanma aşamasında ayrılan fiziksel belleğin bir alanında gerçek bilgilere çevirecektir. İşte bu noktada her halükarda güvenlik bitmiştir.

Donanımsal korumalar ise biraz daha zor olmakla birlikte her zaman kırılmaya müsaittir. Data trafiğini takip etmek için tek gereken donanım sürücünüzün bir kopyasının ayrıca çalıştırılmasıdır. İletişimi ister paralel, seri, usb port üzerinden ister PCI slot üzerinden vs. vs. nereden yaparsanız yapın; iletilen dataları kaydetmek, data trafiğine göre programın davranışlarını izlemek çok kısa sürede sonuca ulaşmayı sağlar. Koşacak programınızın işletim sistemindeki start exe si hariç tüm bölümünü veya bazı kısımlarını makine dilinde donanımınıza kaydetseniz ve yeri geldiğinde donanımdan yükleyerek çalıştırsanız bile start.exe nizde yapılacak küçücük bir tadilat ile data takibi ile elde edilmiş bu kodların değiştirilmesini, her defasında kodlar donanımdan okunsa bile okunan bu kodların görmezden gelinip değiştirilmiş kodların başka bir yerden çağrılıp kullanılmasını engelleyemez.

Donanım tarafından bakıldığında ise ben sizin programınızı kırmak istesem ne yaparım ?

Diyelimki PC programınız her 100ms zamanda bir donanımınız ile iletişime geçiyor ve MCU nuz bu iletişimin zamanını ve/veya bu iletişimdeki dataları kullanarak çeşitli doğrulamaları yapıyor. Bu süre aşılırsa veya iletilen datalar yanlış ise çalışmıyor veya yanlış çalışıyor. Donanım sürücüsünü siz yazsanız bile başka bir program tarafından kullanılmasını hiç bir şekilde engelleyemeyeceğinize göre USB iletişimini snopy veya benzeri bir programla takibe alır data trafiğini incelerim. İlk bakışta iletişimin düzenli olarak her 100 ms de yapıldığını ilk 3-5 saniye içinde öğrenirim ve ardından eğer var ise iletilen dataları incelerim. Program çalıştığı süre boyunca sonsuz sayıda data kullanamayacağınıza göre ve transferler mutlak bir döngü içinde gerçekleneceğine göre USB iletişimi için tanımladığınız data uzunluğunda (Örneğin 64 bayt) veya kullandığınız gerçek uzunluktaki datanın tekrarını ararım. Yüzlerce bin defa farklı data kullansanız bile dosya içinde bu tekrar bilgisini bulurum. PC programınızda 100 ms de bir kesme oluşacağına göre açarım hex editörünü kesme girişine bir nop veya return komutu ile kesmenizi devre dışı bırakır, kendi yazdığım ufacık bir program ile sizin sürücünüzü kullanıp her 100 ms de orjinal iletimdeki data formatına uygun iletişimi sağlar, sizin programınızıda kendi programım içinden çağırıp çalıştırırım.

Veya diyelimki PC programınız versiyonunu donanıma bildiriyor ve MCU nuz kendinde kayıtlı no ile karşılaştırıyor, eğer PC versiyonu farklı ise çalışmıyor. Bu bildirimi kod akışı içinde istediğiniz yerlerde istediğiniz sayıda donanıma bildirip kontrol edilmesini sağlayabilirsiniz ama sonuçta kontrol sonrası programın çalışmayı durdurma bilgisi veya yanlış davranışı versiyon numarasının bulunması noktasında bir anahtar teşkil edecek. Donanıma bildirmek üzere versiyon numarasını kullanıcının girmesini bile isteseniz, MCU tarafında bu bilginin MD5 ile geri dönüşsüz şifreleme sonucunun karşılığını bile kontrol etseniz sonuçta bu data donanıma iletiliyor ve bu ham datanın donanıma girişteki son halini yine biliyorum ve data trafiğinde bu bilgiyi bulup yeni yazılım çalışırken donanıma eski yazılımın numarasının bildirilmesinin sağlar, donanımın yeni PC yazılımı ile çalışmasını sağlarım.

Bunlar sadece basit birer örnek.


Bunları size fikir vermesi açısından yazdım ve benim kısıtlı bilgimle ilk aklıma gelenler. İş konunun uzmanı bir profesyonele intikal ettiğinde belki başka yöntemlerde vardır diye düşünüyorum :)

İşin içine PC tarafı girince data yönü ne olursa olsun, kontrol hangi tarafta yapılırsa yapılsınmaalesef güvenlik diye bir şey söz konusu olmuyor. PC yazılımını geliştirdikçe donanım yazılımınıda geliştirmeniz en mantıklı yol olur. Bu sayede eski MCU yazılımı yeni özelliklere sahip olmayacağı için PC yazılımı kırılsa bile MCU yeni özelliklere sahip olmayacaktır. Fakat bu durum yeni PC yazılımını satın alacak müşterilerin donanımınıda güncellemek gerektireceğinden geçici olarak hizmet kesilmesini veya telefon hattı/net üzerinden programlama için ek masrafların doğmasına sebep olacaktır.

Yüksek miktarlarda para harcayan çok büyük firmalar bile hala kodlarının güvenliğini sağlayamıyorlar. Microsoftun işletim sistemlerinden, bilgisayarınızda kurulu programlara kadar bir göz atın. Nette kırılmış halini bulamayacağınız hiç bir program yok. Yaygın kullanılan programların son versiyonları bile yayınlandıktan sonra bir kaç gün içinde kırılmış olarak bulunabiliyorlar. Maalesef her yeni güvenlik önlemi vatandaşın işini 3-5 saat uzatmaktan başka bir işe yaramıyor :)

Yukarıda arkadaşımızın bahsettiği gibi programınızın kırılma riski piyasada tutulması ile doğru orantılı olabileceği gibi işi bilen her hangi bir müşteriniz tarafından zevk için bile kırılabilir.

Konuyla ilgili olarak Türkçe kısa bir makale;

1. bölüm (http://www.csharpnedir.com/articles/read/?id=899)

2. bölüm (http://www.csharpnedir.com/articles/read/?filter=&author=&cat=cs&id=901&title=.NET%20ve%20Uygulama%20G%C3%BCvenli%C4%9Fi%20-%202)
Başlık: Yazılımı koruma
Gönderen: azimli - 21 Aralık 2009, 14:50:29
hocam resim için teşekkür ederim.

becerebilirsem onu forumda kendi simge alanıma ekleyip marka başvurusunda da bulunacağım.

cnc hereket sistemlerinde x,y,z ekseni olduğunu biliyor ve görüyorum ve z nin burdan geldiğini de z kendisi yanlış değilsem bir ara söylemişti.

biz onuda sizide seviyoruz ve takdir ediyoruz.

az iyiliğinizi görmedik sağ olun var olun.

bu dünyanın diğer  dünyasıda olduğuna inanan biri olarak sizin yardımlarınızla birisi birşeyleri başardıysa ve insanlığa faydalı bir şeyler yapabildiyse bu işlerin diğer tarafa faydası her iki taraf içinde ortak olur düşüncesindeyim

işin simetriği ise,

bir kişi yanlış işlere yönlendirilip yanlış işler öğretiliyorsa o işlerin insanlığa zararı diğer tarafta ortak olur düşüncesindeyim.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 21 Aralık 2009, 14:58:11
Alıntı yapılan: "hasangurlek"bazı yararlı bilgiler...
Hazır gelmişken Sizden usb konusunda biraz bilgi alabilir miyim?.

Yapacağım cihaz için özel ve güzel bir USb class gerekli.
- Sürücü gerekmeyecekse cihaz USBTMC class olabilir.
- HID olmayacak. fakat sürücü ve inf dosya gerekmeyecek
-Bulk veya isochronous transfer yapacak
- Midi veya ses kartı gibi görünmeyecek (Proton ile her 2 sinden de yaptım . sürücü gerekmiyor. cihaz çalışıyor fakat karizmayı çizmemek için başka bir USB class gerek)

Sizden bir BULK transfer yapan CDC olmayan hem de sürücü gerektirmeyen bir USB device Class name  öğrenebilir miyim? Sizin şu ticari cihaz hangi Class ? Yaptığım şablon içine uygun descriptor 'ı yazarak aleti  kolayca başka bir sınıfa dönüştürebiliriyorum. Scanner filan tanımladım onlara  da sürücü gerekiyor  inf dosya gerekiyor.  Yalnız ses aygıtı veya midi olunca gerekmedi. onuda ben sevmedim. Harici disk tanımladım (SCSI.. protocol)ondan gelen bilgileri okumayı beceremedim.

Şimdi başka Class  gerekli. Ne kullanayım ?
Başlık: Yazılımı koruma
Gönderen: teknikelektronikci - 21 Aralık 2009, 15:57:36
Alıntı yapılan: "azimli"hocam resim için teşekkür ederim.

becerebilirsem onu forumda kendi simge alanıma ekleyip marka başvurusunda da bulunacağım.

cnc hereket sistemlerinde x,y,z ekseni olduğunu biliyor ve görüyorum ve z nin burdan geldiğini de z kendisi yanlış değilsem bir ara söylemişti.

biz onuda sizide seviyoruz ve takdir ediyoruz.

az iyiliğinizi görmedik sağ olun var olun.

bu dünyanın diğer  dünyasıda olduğuna inanan biri olarak sizin yardımlarınızla birisi birşeyleri başardıysa ve insanlığa faydalı bir şeyler yapabildiyse bu işlerin diğer tarafa faydası her iki taraf içinde ortak olur düşüncesindeyim

işin simetriği ise,

bir kişi yanlış işlere yönlendirilip yanlış işler öğretiliyorsa o işlerin insanlığa zararı diğer tarafta ortak olur düşüncesindeyim.

hocam mesajım silinmiş sanırım  varsın gelsin silinsin sorun değil ama ben halen anlamadım eğer yeri burası değilse bana özelden yazabilirmisiniz gercekten merak ettim :)
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 21 Aralık 2009, 16:35:56
Alıntı yapılan: "wsxwsx"
Alıntı yapılan: "hasangurlek"bazı yararlı bilgiler...
Hazır gelmişken Sizden usb konusunda biraz bilgi alabilir miyim?.

Yapacağım cihaz için özel ve güzel bir USb class gerekli.
- Sürücü gerekmeyecekse cihaz USBTMC class olabilir.
- HID olmayacak. fakat sürücü ve inf dosya gerekmeyecek
-Bulk veya isochronous transfer yapacak
- Midi veya ses kartı gibi görünmeyecek (Proton ile her 2 sinden de yaptım . sürücü gerekmiyor. cihaz çalışıyor fakat karizmayı çizmemek için başka bir USB class gerek)

Sizden bir BULK transfer yapan CDC olmayan hem de sürücü gerektirmeyen bir USB device Class name  öğrenebilir miyim? Sizin şu ticari cihaz hangi Class ? Yaptığım şablon içine uygun descriptor 'ı yazarak aleti  kolayca başka bir sınıfa dönüştürebiliriyorum. Scanner filan tanımladım onlara  da sürücü gerekiyor  inf dosya gerekiyor.  Yalnız ses aygıtı veya midi olunca gerekmedi. onuda ben sevmedim. Harici disk tanımladım (SCSI.. protocol)ondan gelen bilgileri okumayı beceremedim.

Şimdi başka Class  gerekli. Ne kullanayım ?

Bu başlık yeri değil ama :)

Açtığınız başlıktaki linki bir arkadaşımız örnek kod istediği için vermiştim. USBTMC diye bir sınıf yok. Vatandaş projesine bu ismi vermiş.

Sürücüsü olmayan bir donanımı nasıl kullanacaksınız ? Aygıt sınıfı ne olursa olsun her donanımın bir sürücüsü mutlaka vardır. HID (0x3), Veri depolama (0x8), yazıcı (0x7) vs. tipi her sınıfın sürücüleri windows altında bulunduğu için yazılım geliştirmenize gerek kalmaz, sürücü dosyasındaki hazır fonksiyonları PC yazılımızda kullanırsınız. Aygıt bire bir olarak herhangi bir sınıfa ait olduğunu, alt sınıf ve protokol değerlerinide kullanarak işletim sistemine bildirdiği zaman sürücü dosyaları otomatik olarak o aygıta atanır.

Eğer aygıt ana sınıfıyla birlikte alt sınıfını ve/veya kullandığı protokolü işletim sistemine bildirmiyorsa veya alt sınıfın üst sınıfla uyuşmaması vb. gibi birbiriyle uyuşmayacak şekilde hatalı bildirimde bulunuyorsa ki çoğu zaman aygıt reddedilir veya sistem mavi ekrana düşer veya sistemin tanıdığı bir aygıt değilse inf dosyası olmadanda donanım için yüklenecek sürücüleri işletim sistemine bildiremezsiniz. Bunun dışında inf dosyaları ile; işletim sistemine sistem kaydedicilerinde açılacak anahtarlar, sürücülerin kaynağı ve kopyalanacağı dizin, kullanılacak ikon, üretici bilgisi vs. bildirilir.

Transfer tipleri aygıt uçnoktalarının transfer tipine göre tanımlanmasının dışında PC tarafındaki sürücülerin desteğinide gerektirir.

Kullandığınız sınıf ne olursa olsun o sınıfa ait sürücüleri kullanır fakat tanımlayıcılardaki metin katarlarıyla istediğiniz bilgiyi kullanıcıya gösterebilirsiniz. Örneğin kullandığınız ana sınıf 0x0D diye işletim sistemi kurulum yaparken kullanıcıya bu bir güvenlik aygıtı demez veya kurulumdan sonra aygıt yöneticisinde güvenlik aygıtı olarak görüntülenmez. Bizim geliştirdiğimiz aygıt 0x2 yani iletişim ve iletişim kontrolü sınıfında.

Harici diskten kastınız sanırım mass storage tipi aygıt. Bu tip aygıtların windowsdaki sürücüsü usbstor dosyasıdır. Aygıtın PID/VID değerlerini usbstor.inf dosyasındaki değerlerden biriyle eşleştirirseniz aygıtınız sisteme otomatik olarak kurulur. Eğer kurulumu yapıpta PC yazılımı tarafında API lerle ilgili problem yaşıyorsanız sınıf kütüphanelerinden System.Management ve System.IO alanlarından ilgili fonksiyonları kullanmalısınız.

PC tarafında hazır bulunan sürücülerden hangisinin fonksiyonları sizin için uygunsa onu seçebilirsiniz. Hiç biri sizin aygıt için uygun değilse LIBUSB yi kullanabilirsiniz.
Başlık: Yazılımı koruma
Gönderen: controller - 22 Aralık 2009, 01:19:43
Programı .NET tabanlı bir dil ile yazıp, "reflector" tarzı disassembler  programlara karşı da oluşan EXE yi "dotfuscator" gibi bir program ile obfuscation işlemine tabi tutarsanız native programlama dillerine göre biraz daha iyi koruma sağlayabilirsiniz. zira .NET ile yazılmış program EXE leri Win32dasm tarzı programlar ile disassembly edilemez.
Başlık: Yazılımı koruma
Gönderen: ErsinErce - 22 Aralık 2009, 01:36:55
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.
Başlık: Yazılımı koruma
Gönderen: lojikmemo1 - 23 Aralık 2009, 00:30:06
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.
Başlık: Yazılımı koruma
Gönderen: vsalma - 23 Aralık 2009, 13:44:47
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
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 16:27:00
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.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 16:56:16
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 :)
Başlık: Yazılımı koruma
Gönderen: nonstradam - 23 Aralık 2009, 17:01:38
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.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 18:38:46
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 ?
Başlık: Yazılımı koruma
Gönderen: z - 23 Aralık 2009, 19:08:28
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.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 23 Aralık 2009, 19:12:29
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
Başlık: Re: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 19:29:15
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 !
Başlık: Yazılımı koruma
Gönderen: z - 23 Aralık 2009, 19:36:04
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.
Başlık: Yazılımı koruma
Gönderen: SpeedyX - 23 Aralık 2009, 19:59:02
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.
Başlık: Yazılımı koruma
Gönderen: z - 23 Aralık 2009, 20:26:44
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.
Başlık: Yazılımı koruma
Gönderen: SpeedyX - 23 Aralık 2009, 21:26:12
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?
Başlık: Yazılımı koruma
Gönderen: MC_Skywalker - 23 Aralık 2009, 21:52:13
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.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 22:05:45
Alıntı yapılan: "bunalmis"İlerleyen dönemlerde çok gelişkin farklı yazılımlar geliştireceğim.  Kartıma sahip kullanıcılar yeni çıkartacağım yazılımları satın alıp kullanabilecekler.

Fakat kart sahipleri birbirlerinden kopya yazılım aldıklarında çalışmasın istiyorum.

Alıntı yapılan: "bunalmis"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.

Alıntı yapılan: "bunalmis"İki kişiye sattığım iki PC yazılımını da debugger ile açın göreceğiniz tek farklılık key bilgisi olacaktır.


Alıntı yapılan: "bunalmis"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.

Aptallığımı mazur görün ama "Hiç bir şey anlayabilmiş değilim"

Yapmaya çalıştığınız olay ilk mesajınızda bahsettiğiniz konu değilmi ?

yani

1-Tüm müşterilerinizdeki kartlar aynı yazılıma (özel seri numaraları hariç) sahip birbirinin aynı donanımlar olacak,
2-Para ödeyip yeni PC yazılımını satın alan müşterilerinizin ellerindeki kart ile yeni PC yazılımını kullanabilmesi için kart üzerindeki yazılımı değiştirmek zorunda kalmayacaksınız, (her kart kontrollerde kullandığı kendine özel benzersiz bir ID ye zaten sahip)
3-PC tarafındaki (geliştirilmiş) yazılımı, eski yazılıma sahip müşterileriniz başkaslarından kopyalayıp kullanamayacak, (çünkü PC yazılımındaki kimlik bilgisi ile karttaki bilgi birbirini tutmayacak)
4-Yeni PC yazılımı kullanmak isteyen müşterileriniz bunu satın alacak (Yeni PC yazılımıda eski PC yazılımında olduğu gibi müşteride bulunan karttaki ile aynı kimlik bilgisine sahip olacak yani karta gönderilen doğru bilgiye)

3. ve 4. sıradakileri gerçekleştirebilmek için kart PC den verilerle birlikte gelen kimlik bilgisinin doğruluğuna göre hareket edecek.

Geliştirdiğiniz yeni mantığa göre PC yazılımı versiyonunu, kimlik numarasını, ID sini vs. bir data katarını karta iletecek, kart PC den gelen bu bilgiye göre PC yazılım versiyonunun kendine ait olup olmadığını kontrol edecek ve kontrol sonucuna göre hareket edecek.

Eğer müşteriniz bir başka müşterinizden yeni PC yazılımını kopyalar ve kartı kumanda etmek için kopya olan bu yazılımı kullanırsa karta PC yazılımı tarafından gönderilen bilgi yanlış olacağı için alet hemen ses çıkartmayacak ama bir müddet sonra veya takip eden belli sayıdaki komuttan sonra saçmalayacak.

Kart yeni versiyon PC yazılımı ile doğru olarak çalışmayacağı içinde müşteriniz hem yeni, hemde eski PC yazılımı elinde olduğu halde eski yazılımı kullanmak zorunda kalacak.

Yanlış anladığım bir nokta varsa lütfen düzeltin.
Başlık: Yazılımı koruma
Gönderen: z - 23 Aralık 2009, 22:32:33
Onerimi tartisalim diye yazdim zaten, gozumden kacan bir sey varsa konusalim.

1- İlerleyen dönemlerde çok gelişkin farklı yazılımlar geliştireceğim.  Kartıma sahip kullanıcılar yeni çıkartacağım yazılımları satın alıp kullanabilecekler. (OK)

2- Fakat kart sahipleri birbirlerinden kopya yazılım aldıklarında çalışmasın istiyorum. (OK)

3- 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. (OK)

4- İki kişiye sattığım iki PC yazılımını da debugger ile açın göreceğiniz tek farklılık key bilgisi olacaktır. (OK)

5- 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. (OK)


Alıntı YapAptallığımı mazur görün ama "Hiç bir şey anlayabilmiş değilim"

Yapmaya çalıştığınız olay ilk mesajınızda bahsettiğiniz konu değilmi ?


1-Tüm müşterilerinizdeki kartlar aynı yazılıma (özel seri numaraları hariç) sahip birbirinin aynı donanımlar olacak (OK)

2-Para ödeyip yeni PC yazılımını satın alan müşterilerinizin ellerindeki kart ile yeni PC yazılımını kullanabilmesi için kart üzerindeki yazılımı değiştirmek zorunda kalmayacaksınız (OK)

3-PC tarafındaki (geliştirilmiş) yazılımı, eski yazılıma sahip müşterileriniz kullanamayacak (OK)

4-Yeni PC yazılımı kullanmak isteyen müşterileriniz bunu satın alacak (OK)

3. ve 4. sıradakileri gerçekleştirebilmek için kart PC den verilerle birlikte gelen kimlik bilgisinin doğruluğuna göre hareket edecek. (OK)

Geliştirdiğiniz yeni mantığa göre PC yazılımı versiyonunu, kimlik numarasını, ID sini vs. bir data katarını karta iletecek, kart PC den gelen bu bilgiye göre PC yazılım versiyonunun kendine ait olup olmadığını kontrol edecek ve kontrol sonucuna göre hareket edecek. (OK)

Eğer müşteriniz bir başka müşterinizden yeni PC yazılımını kopyalar ve kartı kumanda etmek için kopya olan bu yazılımı kullanırsa karta PC yazılımı tarafından gönderilen bilgi yanlış olacağı için alet hemen ses çıkartmayacak ama bir müddet sonra veya takip eden belli sayıdaki komuttan sonra saçmalayacak. (OK)

Kart yeni versiyon PC yazılımı ile doğru olarak çalışmayacağı içinde müşteriniz hem yeni, hemde eski PC yazılımı elinde olduğu halde eski yazılımı kullanmak zorunda kalacak. OK. (Cunku yazilim yeni ama yeni ID yok elinde, arkadasindan yazilimi aldi arkadasinin ID si o karta uymaz, dolayisi ile eski yazilimi kullanabilir)

Alıntı YapYanlış anladığım bir nokta varsa lütfen düzeltin.

Bu kart uzerinde diyelimki gelecek zamanda 20 yeni parali yazilim yapacagim.

Simdiden kart icine en az 20 tane ID numarasi koyacagim.

Her yazilim cikarttigimda musterim o yazilimi satin aldiginda kendisine o yazilim icin gerekli ID kodu verecegim.

Simdi diyeceksiniz ki kart uzerinde nasil bir yazilim var. Kart temel fonksiyonlari iceriyor. Bu temel fonksiyonlarin ne olacagini daha simdiden on gorebiliyorum.

Bu fonksiyonlari gurupluyorum. 1. program f1,f2,f3,f4 fonksiyonu kullanabilir. f5 i kullanamaz. Cunku bunu ID belirliyor.

2. gelistirecegim parali yazilim 1. parali yazilimdaki fonksiyonlara ilave olarak f5() fonskiyonu kullanacak.

PC tarafinda yazilim karttan bu fonksiyolari verdigi parametrelerle islemesini istiyor.

Benzetim yaparak ornek vermem gerekirse,

C diline ait math fonksiyonlari karta gommus olalim.
Nedir bunlar Sin(x), Cos(x), ln(x), hyp(x), Atn(x) gibi.

PC tarafinda bunlardan herhangi birinin ya da bir kacininin hesaplanmasini karttan talep edeceksin. ID numarani verdiginde bu ID ile
hesaplayabilecegin fonksiyonlar belli.

Eger gelen ID ve istek fonskiyon bu ID nin gecerli olmadigi bir ust seviyeli fonksiyonun hesaplanmasini talep ediyorsa, kullanici uc kagitci demektir.

Yani kullanici arkadasindan kopya yazilim almis ve ID kismina kullandigi eski programin ID sini cakmis demektir.

Halbuki bu kisi benden parayla programi almis olsaydi kendisine kartin bu program icin gecerli ID numarasini da vermis olacaktim.
Başlık: Yazılımı koruma
Gönderen: z - 23 Aralık 2009, 22:48:01
Alıntı yapılan: "SpeedyX"Cihaz kendini kilitlemezse eninde sonunda bulunur o ID :)

Cihazin  kilitlenmesine gerek yok. Tek tek ID numaralarini denemen gerekir. Her bir deneme saniyeler mertebesinde zaman alacagi icin ortaya inanilmaz uzun deneme suresi cikar.

Kilitlemeyi derhal yapmak tehlikeli, aksi halde denenen  ID nin yanlis oldugu derhal anlasilir. Bunun yerine bir sure sonra karti gecici kitlemeye zorlamak daha iyi ve etik olur. (Kitleme derken kartin bir daha kullanilamamasi anliyorum buna karsiyim)

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

Cihaz MCU icerdigi icin MCU nun kod korumasini kirmak gerekir. Dolayisi ile sistemin gucu MCU nun kod koruma gucu ile sinirli demektir.

Ayrica zaten donanimi yapip kodlarini yazabilecek kisi benden kart alacagina kendi sistemini gelistirir ve programlarini yazar.

Benim amacim, yazilimlariminin Mach2 Mach3 gibi kirilip illegal kullanilmasini engellemek.

Mach programlarini kac kisi legal kullaniyor?

Mach fiyatindan daha asagiya yazilim + donanim verecegim.
Başlık: Yazılımı koruma
Gönderen: KAZIMUGUR - 23 Aralık 2009, 22:57:42
Alıntı YapMach programlarini kac kisi legal kullaniyor?

Amatör işi gibi dursada boş program değil ve kullanıcısı da lisanslısı da çok.  :roll:
Ortalıkda 2 lisans dosyası var.
İkisi de eksik.
İşlediği kodların sonlarına doğru kendini belli eder !!!
Yaptığı işe göre çok ucuz olduğu için lisans korkutmuyor.

Lisansızları bildiği halde aşırı tedbir almıyor.
Tanınmak alışılmak daha etkin sanırım.
Başlık: Yazılımı koruma
Gönderen: SpeedyX - 23 Aralık 2009, 23:08:32
Zaten sistem çok populer olursa, bazı arkadaşlar o MCU nun kod korumasınıda kırıp hexini internette dağıtmaya başlarlar. Yine de bu dünyanın sonu olmasa gerek.

Cihaz içinde ID kontrolü fikri iyi bence. Nasılsa her müşteri için farklı firmware olacak.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 23 Aralık 2009, 23:39:32
Alıntı yapılan: "bunalmis"Simdiden kart icine en az 20 tane ID numarasi koyacagim.

Her yazilim cikarttigimda musterim o yazilimi satin aldiginda kendisine o yazilim icin gerekli ID kodu verecegim.

Bu fonksiyonlari gurupluyorum. 1. program f1,f2,f3,f4 fonksiyonu kullanabilir. f5 i kullanamaz. Cunku bunu ID belirliyor.

2. gelistirecegim parali yazilim 1. parali yazilimdaki fonksiyonlara ilave olarak f5() fonskiyonu kullanacak.

Kart yazılımının tamamen bitirildiğini ve 20 ID nin kartta tanımlanmış olacağını baştan belirtmeniz gerekirdi diye düşünüyorum. İlk başta başlığı yanlış açmışsınız, bu konunun "YAZILIM KORUMA" ile hiç bir alakası yok konu "YETKİ KISITLAMASIDIR" ve varalon özelliklerin yetkiye dayalı kullanımını ifade eder.

20 ID nin 19 unun yeni yazılım olmadan kullanılamaması bu bilgilerin sadece karttan elde edilebileceği sonucunu doğurur. Sizin bileceğiniz bu bilgiler ne iletişim takibi, nede PC yazılımı ile elde edilemez.

Bir whitehacker olarak nacizane tavsiyelerim;

1- USB iletişim hızı küçümsenmeyecek kadar fazladır. Full speed hızda saniyede 12.582.912 bayt data iletilir. 512 bit ID niz var ise 196608 ihtimal (kart yazılımı gözardı edilirse) bir saniyede denenebilir. Bunun için her yanlış ID alımında 10 sn, 1 dakika gibi bir süre için kartın iletişimini durdurun.
2- ID bilgilerini USB tamponunun müsade ettiği ölçüde 1024, 2048, 4096  bit gibi yüksek değerlerden oluşturun, yanlış ID alımında kartı detached pozisyonuna geçirip hattan düşürerek aygıt bağlantısının fiziksel olarak kesilip tekrar bağlanmasını sağlayın.
3- USB iletişimi doğru yapıldığında kesinlikle hatalı data transferi mümkün değildir. Aldığınız her yanlış ID bilgisinde bir sayaç değerini artırın. Örneğin 5 denemeden sonra durumu kullanıcıya bildirin ve yine örneğin 10 deneme sonrası kartın hiç bir özelliği kullanılmayacak şekilde kilitleyin.
4- PC yazılımı internet bağlantısı olan bir bilgisayarda çalışıyorsa 5. yanlışta PC yazılımı ile kendinize mail gönderilmesini sağlayın, mail gelen müşterinizi acilen arayıp PC de problem olup olmadığını sorarak durumu açıkca bildirin. (Oto-mail gönderme işinden satış sözleşmesinde mutlaka bahsedin)
5- İnternet bağlantısı olmayan bir bilgisayarda kullanıcıya kalan deneme sayısını olabildiğince abartılı olarak sürekli gösterin. Müşteriniz dürüstse sizi arar.
6- PC yazılımınız karta her bağlandığında yanlış deneme sayısını kontrol edin, son bağlantıda hata sayısı 0 olupta başka bir yazılımla kurcalama sonucu hata sayısı 5 e çıkmış olabilir.

Ve son olarak her müşterilerinizin kartlarında saklı 20 ID bilgisini güvenli bir kasada saklayın :)
Başlık: Yazılımı koruma
Gönderen: z - 24 Aralık 2009, 04:49:08
Ornegin asagidaki alinti yaptigim paragrafi zamaninda yazmistim. Ancak belki de bazi seyleri tam dusundugum gibi ifade edemedim. Bunda konunun gec aliginlanmasi ve karsit cevaplar da etkili olmuştur.

Alıntı YapHer 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.

Yontemin ise yaracagi konusunda hemfikir olmamiza sevindim.

Su ana kadar kart uzerinde olacak uygulamaya ozel fonksiyonlari coktan yazip bitirdim. Simdi sadece burada konustugumuz yonteme iliskin guvenlik konularinin yazilimlari ve mevcut fonksiyonlarla iliskilendirilmesi kaldi.

Yalniz yetki sinirlamasi ve yazilim korumasi gibi iki kavrami ortaya atmanizi dogru bulmuyorum. Amacimiz, yazilimlarimin kacak kullanimini engellemekti ve yontem bunu sagladi.

Bu mantigi herhangi bir programi korumak icin de kullanabiliriz. PC  yazilimindaki bazi fonksiyonlar yazilipdan aslinip ucuz bir donanim icine atilabilir ve yeri geldiginde donanimdan hesaplamasi talep edilebilir.

Sonucta guvenlik donanim guvenligi ile limitli.

Son olarak, gizli kapakli konularin uluorta konusulmasi durumunda daha guvenilir cozumler uretilebilecegini dusunuyorum.

Aksi halde gelistirilen algoritma gizlenirse bunun guclu olduguna sadece siz karar verebilir ve yanilabilirsiniz.
Başlık: Yazılımı koruma
Gönderen: nonstradam - 24 Aralık 2009, 10:37:24
Alıntı yapılan: "SpeedyX"Zaten sistem çok populer olursa, bazı arkadaşlar o MCU nun kod korumasınıda kırıp hexini internette dağıtmaya başlarlar. Yine de bu dünyanın sonu olmasa gerek.

Cihaz içinde ID kontrolü fikri iyi bence. Nasılsa her müşteri için farklı firmware olacak.

hocam bu imkansız diye biliyorum. böyle birşey mümkünmü. eski 16C serilerini bir şekilde kırıyorlarmış ama artık bu durum imkansız diyebiliyorum yanlışmıyım.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 24 Aralık 2009, 11:29:45
Alıntı yapılan: "bunalmis"Ornegin asagidaki alinti yaptigim paragrafi zamaninda yazmistim. Ancak belki de bazi seyleri tam dusundugum gibi ifade edemedim. Bunda konunun gec aliginlanmasi ve karsit cevaplar da etkili olmuştur.

Alıntı YapHer 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.

Yontemin ise yaracagi konusunda hemfikir olmamiza sevindim.

Su ana kadar kart uzerinde olacak uygulamaya ozel fonksiyonlari coktan yazip bitirdim. Simdi sadece burada konustugumuz yonteme iliskin guvenlik konularinin yazilimlari ve mevcut fonksiyonlarla iliskilendirilmesi kaldi.

Yalniz yetki sinirlamasi ve yazilim korumasi gibi iki kavrami ortaya atmanizi dogru bulmuyorum. Amacimiz, yazilimlarimin kacak kullanimini engellemekti ve yontem bunu sagladi.

Bu mantigi herhangi bir programi korumak icin de kullanabiliriz. PC  yazilimindaki bazi fonksiyonlar yazilipdan aslinip ucuz bir donanim icine atilabilir ve yeri geldiginde donanimdan hesaplamasi talep edilebilir.

Sonucta guvenlik donanim guvenligi ile limitli.

Son olarak, gizli kapakli konularin uluorta konusulmasi durumunda daha guvenilir cozumler uretilebilecegini dusunuyorum.

Aksi halde gelistirilen algoritma gizlenirse bunun guclu olduguna sadece siz karar verebilir ve yanilabilirsiniz.

Bu mantıkta yetkilendirme ID sinin korunmasındaki temel unsur yeni PC yazılımı olmadan kart içindeki diğer ID lerin iletişimin hiç bir aşamasında asla kullanılmaması ve her kartın ve PC yazılımının farklı ID ler ile çalışmasıdır. Dolayısıyla PC yazılımının yayınlanması gibi bir durumda söz konusu değil, sonuçta her PC yazılımının içerdiği anahtar bilgi bir diğeriyle uyumlu olmayacak ve bu ID ler aslında yazılımı değil müşteriyi işaret edecek. Bu noktada PC yazılımları aynı versiyona bile sahip olsa bir diğer müşterinizin kartı ile uyuşmayacak. Bankaların online sitelerinde kullandığı mantık bunun bir benzeridir. Her müşteri farklı bir ID ve farklı bir sertifikaya sahiptir. Müşteri ID si altındada yetki ID leri bulunur. Muhasebeci havale bilgilerini girer ama havaleyi yapma noktasında sistem ID bilgisinin seviyesine bakar ve yetkisiz olduğunu görerek izin vermez. Fakat bu işe yetkili olan ID ile giriş yapılırsa sistem kendinde kayıtlı bilgi ile bunu doğrular ve havaleyi onaylamaya izin verir. Başka bir örneği ise ticari yazılımlardır, ön muhasebe elemanı irsaliyeyi, faturayı vs. düzenler, yazdırır ama muhasebeleştiremez. Bu tip işlemlerin tümü kullanıcıya özel yetki atamasına bağlıdır.

Her müşteriye özel farklı ID ler belirlemeniz, her PC yazılımının müşterinizdeki kartta kayıtlı ID lerden sadece birini barındırması ve kart yazılımında PC yazılımı tarafından gönderilen ID bilgisine göre yetki seviyesi atamanız %100 güvenliği sağlar, MCU in korumalarını açmanız dışında başka bir önleme ihtiyacınız yok.
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 24 Aralık 2009, 12:15:56
Yani her müşteriye özel yazılım ve donanım verilecek.
Bir müşterinin yazılımı başka bir müşterinin donanımı ile çalışmayacak, çalışması için gerekli kırılabilecek bilgileri de içinde bulundurmayacak şeklinde özetlenebilir mi?  Eğer öyle ise güncelleme için her müşteriye ayrı servis verilecek.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 24 Aralık 2009, 12:32:59
Alıntı yapılan: "wsxwsx"Yani her müşteriye özel yazılım ve donanım verilecek.
Bir müşterinin yazılımı başka bir müşterinin donanımı ile çalışmayacak, çalışması için gerekli kırılabilecek bilgileri de içinde bulundurmayacak şeklinde özetlenebilir mi?

Eğer öyle ise güncelleme sorunu ortaya çıkar her müşteriye ayrı servis verilecek. 2000 USD ve üzeri  projeler için bence uygundur.

Alıntı yapılan: "bunalmis"Su ana kadar kart uzerinde olacak uygulamaya ozel fonksiyonlari coktan yazip bitirdim.

Kartın yazılımı tüm özelllikleri barındıracağı için upgrade sözkonusu olmaz. Tek sıkıntı üretim aşamasında her MCU e farklı bir hex kodu veya eprom datası yazılması zorunluğu olur. Müşterideki kartta bulunan diğer bir ID ile eşleşen ve kullanım yetkisini belirleyen PC yazılımı ise müşteri satın aldığı zaman net üzerinden veya CD ile müşteriye özel gönderilebilir. PC yazılımı için daha kolay yol yetkiyi artıran yeni ID nin programa elle girilmesi olur. Müşteriye ID netten gönderilir, müşteri programa elle girer veya teamviewer tipi bir programla satıcı online bağlantı kurup yeni ID yi kendide girebilir. Online bağlantı ile girilecek ID text kutusu parola giriş alanı olarak tanımlanırsa satıcı ID yi girerken PC başındaki müşteri karakterleride göremez, birazda hava atılır :)
Başlık: Yazılımı koruma
Gönderen: wsxwsx - 24 Aralık 2009, 12:43:17
İşlemciye hep aynı hex yazılır. Daha sonra ilk çalışmada işlemci kendine has bir ID üretir ve hafızasına kaydeder. Ardından ID üretme ile ilgili program hafızasını siler.  Bu kısım zaten üretilen cihazların test esnasında tamamlanacağı için müşteriye asla ulaşmaz. Zaten kod koruma da vardır.

Yakın bir zamanda benzer proje yapmıştım. İlk çalıştırmada pic hafızasına bazı ayarları kaydediyor. Kart üzerindeki dirençlerle bölünmüş gerilimlere bakıyor.  Daha sonra o dirençleri değiştirseler bile işlemci daha pahalı olan diğer kartı desteklemiyor.

Ayrıca pic karttan ayrılırsa kendini imha ediyor programını siliyordu. Fakat  sahada çeşitli sorunlar çıktı. Program  bazen yanlışlıkla hafızayı silme rutinlerinden  başlarsa  yine silinmiş oluyordu. Programın neden oradan başladığı da muamma. Wdt kullanılmamıştı. garanti kapsamında cihazları güncelledik. fakat müşterinin işleri aksamıştır. Hoş olmadı.

Daha kapsamlı birşey lazım. Para verip cihazı ve programı alan kişi ayrıca key girmekle uğraşmasa iyi olur. Bunun yerine arıza çıksın. zorunlu servis verilsin.  Program bazı hata mesajları verir.  sonra yetkilikişi telefonda  ince ayar yaptırır. sadece kendi bildiği bazı kodların girilmesini ister. yada internetten bağlanıp kendisi girer.

Ancak bir kere girilen kod  tekrar girilmez. Örneğin 112342312 nolu hata için telefonda 432523234 girin düzelir demişsek, o hata asla tekrar oluşmaz. hep farklı hatalar çıkar.  zamana bağlı bir fonksiyon başka başka hatalar üretir.
Başlık: Yazılımı koruma
Gönderen: fatihkuzucu - 24 Aralık 2009, 13:01:39
Alıntı yapılan: "hasangurlek"Tek sıkıntı üretim aşamasında her MCU e farklı bir hex kodu veya eprom datası yazılması zorunluğu olur.

Üretilen kartlar tek hex ile üretilebilir. Üretimden cıktıktan sonra kalite aşamasında karta yapıstırılacak ID etiketleri olur. Buradaki etiket numarası daha onceden hazırlanmıs bir pc programına girilir. O program belirlenen bir fonksiyona göre 20 ID olusturur ve karta usb yada uart yolu ile baglanarak bir hafıza alanına kaydeder. Boylece uretimde kullanılan çalışanlar da IDlere direk olarak ulasamamıs olur. Karttaki ID leri kimse bilmez o kucukpc programını yazan dısında.
PC yazılımının paketlenmesi sırasında gene kucuk bir pc programı hazırlanır kart uzerindeki etiket numrası girilir. Buna gore verilecek yetki seviyesi de girilirse bir dosya olusturabilir. Bu dosyada kaydedilecek yazılıma otomatik eklenir. Son hali cd ye kaydedilerek kartın yanında paketlenir.......

Bunlar biraz uzun sürecler. Tabi seri uretimde bu tip asamaları sistematige oturtmak gerek. Az adetli uretimlerde bunlar ureticinin yapacagı işlere dönüşürse cok zaman kayıpları olacaktır. Sürekli satış aşamasından IDli bitmiş ürün beklentileri olacaktır.
Başlık: Yazılımı koruma
Gönderen: SpeedyX - 24 Aralık 2009, 14:07:50
Alıntı yapılan: "nonstradam"hocam bu imkansız diye biliyorum. böyle birşey mümkünmü. eski 16C serilerini bir şekilde kırıyorlarmış ama artık bu durum imkansız diyebiliyorum yanlışmıyım.
Üzerine kimyasalı dökünce içi ortaya çıkan tüm işlemciler için imkanlı bu.
Sadece kod koruma bitinin yerini bilip oraya gerekli lojik işareti vermek yeterli. Bu konuda uzman firmalar bile var artık. (made in china)
Başlık: Yazılımı koruma
Gönderen: peko - 24 Aralık 2009, 15:13:13
Alıntı YapSadece kod koruma bitinin yerini bilip oraya gerekli lojik işareti vermek yeterli

Teorikte böyle birşey düşünülebilir, ancak pratikte gerçekten imkansız birşey gibi duruyor. Hatta imkansız demeyelim de, ne için bu çaba desek daha doğru olur..? Zaten bunu yapacak kişi ya da kurumlar bunu yapabilecek kapasiteye sahiplerse, gördükleri bir ürünü koplayalama yerine tasarlamaya zaman harcamayı tercih ederler diye düşünüyorum.
En azından ellerinde kendi tasarımları olur geliştirirler vs.vs...

ilginç bi iş açıkçası..
Yaparken görüp öyle inanmak isterim :)
Başlık: Yazılımı koruma
Gönderen: azimli - 24 Aralık 2009, 15:45:26
endüstriyel mikro işlemcilerin içine atılan ve işlemcinin flash belleğinde bulunan kod korumalı programın alınamayacağı konusunda;

enazından Microchip dsPIC30Fxxxx serisi için artık emin olabilirsiniz alınabiliyor.
bir ara bende ciddi ciddi bu işlemciler için bu konuyu araştırdım elde ettiğim sonuçlar programın alınabildiği yönde idi işlemci yongası içerisinde flash bellekteki program kodları bir şekilde alınabiliyor.

ama bunu mimariyi iyi bilenler yapabiliyor.bu işlemci mimarileride zaten bilinen bilgiler.

ama programı alınabiliyor diye her şeyin sonu asla değil eskiden amatörken bu bana korku verirdi ama işleri ilerlettikçe artık eskisi gibi korkmuyorum.

bu programı yazan kişinin bakış yönüne göre kendini ikna durumuna göre bir nevi avantaj aslında.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 24 Aralık 2009, 18:13:03
Alıntı yapılan: "wsxwsx"İşlemciye hep aynı hex yazılır. Daha sonra ilk çalışmada işlemci kendine has bir ID üretir ve hafızasına kaydeder. Ardından ID üretme ile ilgili program hafızasını siler.  Bu kısım zaten üretilen cihazların test esnasında tamamlanacağı için müşteriye asla ulaşmaz.

Buda oldukça mantıklı bir uygulama olur. Fakat programlama öncesi basit bir yazılımla orjinal hex dosyadaki ID değerleri ile MCU in DevID değerlerinin benzersiz yeni değerlerle değiştirilerek gereken sayıda hex dosya üretilmesi ve atanan bu değerlerin bir veritabanına kaydedilmesi daha hızlı çalışma sağlayabilir. Tabi üretim fazla olmayacaksa bunlar manuel olarakta yapılabilir.
Başlık: Yazılımı koruma
Gönderen: Klein - 24 Aralık 2009, 19:14:13
Korumanın nasıl yapılabileceği ile ilgili onlarca şey söylenmiş. Hepsinin doğru ve yanlış tarafları vardır.

Benim esas takıldığım şey şu:
Koruma gerçekten gerekli mi? ticari açıdan başarıyı getirir mi?
Sizce microsoft programları koruma açısından başarısız mı? yoksa gerçekten korunması istenmiyor mu?

Microsoft'a ticari başarıyı getiren şey  programlarının mükemmel oluşu mu?  yoksa kolayca temin edilip , kolayca kurulup , kolayca alışılıp,  sonra kolayca vazgeçilemez oluşu mu?

Sizce Mach2, Mach3 gibi  bir program yazdırmak isteyen, ya da böyle bir programu lisans bedeli ödeyerek kendi ürünlerinde  kullanmak isteyen bir firma  bu işi yaptırmak için önce kime ulaşmaya çalışacaktır? Ya da ilk aklına kim gelecektir?  Dünyada onbinlerce kullanıcısı olduğu için tanınırlığı yüksek olan bir firma mı? yoksa  daha kaliteli ama  kullanıcısı az olduğu için tanınmayan bir firma mı?

Amaç ticari başarı ise , dünyada bunun örnekleri oldukça fazla. Ve gördüklerimin tamamı da oldukça kolay kırılabilen programlar. Ve bence esas müşteri kitlesi de zaten kırık program kullanan kişiler değil.  Ve bence onlardan kaybettiği paranın kat kat fazlasını , onların sağladığı tanınırlık sayesinde kurumsal firmalardan zaten kazanıyor.  Dünyada satılan bilgisayarların  tamamına yakınının  windows işletim sistemiyle geldiği , bu bilgisayarları üreten veya satan   firmaların  işletim sistemine para ödediği düşünülürse  kırık program kullananların  çok da önemli bir kitle olmadığı  görülebilir.

Hayatımın bir döneminde (97-2002) yılları arasında. bazı firmalara  danışmanlık , bazılarına da sistem destek hizmeti veriyordum. BSA nın ilk ses getiren eylemlerini yaptığı dönemlerdi. Hizmet verdiğim firmaların  programlarını lisanslama çalışması başlattık.  Bazı firmalar "microsoft office" lisanslarının yüksekliğinden dolayı "Openoffice"  kullanmayı tercih etti.  İlk başta mantıklı görünen bir karardı. Ama bir süre sonra gördük ki:
İnsanlar "Microsoft office" programına alışmışlar  ve yeni programa alışmak istemiyorlardı. Görünüşte her şey aynıydı. Ama değildi. Bir menünün  sıralamasının değişmesi ,  bir özelliğin kısayolunun değişmesi bile  ofis çalışanlarını isyan ettirmeye yetti. Ancak birkaç firma  ısrarla yeni programa alışmayı denedi ve başardı. Ancak diğeleri  birkaç ay içinde  "Microsoft" programlarına geçti.

İşte o zaman  Microsoft'un satış stratejisini anladım. Önce seni tanısınlar , sonra seni sevsinler , sonra senden vazgeçemesinler , tasilatı daha sonra nasıl olsa yaparsın.

Son olarak önerim şu olur:
Çok basit bir  koruma koyun.  Bırakın uğraşıp kıran kırsın. Program mümkün  olduğu kadar yayılsın.  Birileri programdan haberdar olsun , birbirlerine önersin , programı alanın karta da ihtiyacı olsun, o kartı alan da başkasına önersin ve kullanıcı kitleniz genişlesin.
Başlık: Yazılımı koruma
Gönderen: KAZIMUGUR - 24 Aralık 2009, 19:38:15
@klein ustanın fikirlerine aynen katılıyorum.
Vakit nakitdir.
Çok zaman kaybettin !
Mükemmelliyetcilik her zaman başarı ile sonuçlanmaz.
Başarı , geminin yüzmesidir , uçması değil .
Başlık: Yazılımı koruma
Gönderen: Erol YILMAZ - 24 Aralık 2009, 20:08:32
Catia diye bir CAD-CAM programı var,
Tam lisansını satın almaya kalkarsanız sanırım 100 bin$ lara varan
fiyatlar çıkabiliyor.

Devasa bir yazılım yığını.  her 6 ayda yeni bir revizyonu çıkar.
ve tek bir DLL dosyasını update ederek kırılır.

Bana hiç inandırıcı gelmiyor bu koruma tekniği ama
sonuçta ben bile öğrendim Catia yı :)

Kendilerine hiç masrafı olmadan "eğitim" verdiler yani.
Korumayı çok önemseyen Unigraphics ise giderek kullanımı kaybolan bir
yazılım oldu.
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 24 Aralık 2009, 21:24:21
Donanıma sahip olmayıpta PC programını kopyalayan birileri olacakmıdır acaba ? Eğer böyle birileri çıkarsa faremiyi kontrol edecekler ki program kitleler arasında yayılacak, reklamı yapılacak ?

Microsoft ürünlerine koruma istemese hiç birine serial vermez ! ve ürünlerini sözleşmeyle satar geçer. Microsoftun ürün satış rakamlarının yarısına yakın bir miktarda lisanssız program kullananlara kesilen cezaların olduğunu biliyormusunuz ? Büyük ihtimal NET platformunu geliştirmek için 9 yıldır harcadığı parayı bu gelirlerden elde etmiştir. Türkiye'de lisanssız kullanılan bir office uygulaması tespit edildiğinde açıktan 4.000 YTL para talep ediliyor, ödemeyenleri 2 yıla hapis cezası bekliyor. Benim kardeşim 26 makinedeki sadece 2 yazılım için 8.000 TL para ödedi ve sadece ikinci el olarak alınan bir makinedeki yazılım lisansı hakkında bilgileri yoktu. Diğerinin sebebi ise parası ödendiği halde makinenin faturasında ilgili yazılımdan bahsedilmemesiydi. İstenen parayı ödemeyen biri olabilirmi ? Ödemeyi yapanların yazılımıda nezaketen lisanslanıyor tabi. Microsoft yazılımlarını bilişim suçları kanunu çıkmadan öncede lisanssız kullananlar vardı, çıktıktan sonrada. Fakat kanun çıkmadan önce piyasada bir microsoft elemanı bile gezmiyordu ! Microsoftun yazılımlarının kırılmasına müsade etme sebebi budur, reklam değil !

Ayrıca Microsoft eski işletim sistemlerinin bile kodlarını açıklayabilmiş değildir. Halen üzerindeki şaibeler devam ediyor ve açıkça suçlandığı konularda bile cevap vermiyor. Hakkındaki suçlamaların en büyüğü ise herkesin vakıf olduğu arkasında bazı istihbarat örgütlerinin bulunduğu ve bilgi akışının tepesinde olduğudu iddiasıdır. Bu imkana sahip olabilmek için yazılımları kullananlara üste para verecek çok örgüt var.

OpenOffice in MS ofisten hiç bir farkı yoktur, aksine örneğin bir word programını kıyasladığınızda açık bir şekilde hızlı olduğunu farkedersiniz. MS programları gibi arka planda internet bağlantısı aramaz ! OpenOfis yazılımları kaydettiğiniz çalışma dosyalarına; işlemcinizin, anakartınızın seri nosu, modeminizin mac adresi, aktif bağlantınızın IP numarası gibi kendini ilgilendirmeyen özel bilgileride kakmaz !
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 24 Aralık 2009, 21:39:34
Alıntı yapılan: "Allegro"
Devasa bir yazılım yığını.  her 6 ayda yeni bir revizyonu çıkar.
ve tek bir DLL dosyasını update ederek kırılır.

Maalesef yazılım ortamı böyle hocam. HDD i kodla doldursanız bir kaç satırlık tadilat herşeyi çökertiyor. Yukarıda bir yerde program yazdığını zanneden birinin kod dis edilmişmi kontrolünü yani isdebuggerPresent fonksiyonunu kullanmasına bir örnek göstermiştim. Vatandaş isdebuggerPresent fonksiyonunu kernelden çağırıp kullanmış ama kod dis edildiğinde bununda çok kolay bir şekilde atlatılacağını düşünememiş. Halbuki kernel32 yi fiziksel belleğe yükledikten sonra isdebuggerPresent fonksiyonunun bellek adresini öğrenip, direk bellekteki decimal 139 bilgisini kontrol etseydi en az 5-6 tane disassembler programını ve hekırların en az %90 ını ıskartaya çıkartabilirdi :)
Başlık: Yazılımı koruma
Gönderen: Erol YILMAZ - 24 Aralık 2009, 21:49:21
demek istediğim şey şu,

Bu adamlar yazılımın kopyalanmasını istiyor :)

Korumak gibi amaçları yok.
Başlık: Yazılımı koruma
Gönderen: bigbey - 25 Aralık 2009, 09:35:42
Boardmaker versiyon 3.0 kırılmış değil demekki yöntemi doğru kullanıyorlar.
Başlık: Yazılımı koruma
Gönderen: KAZIMUGUR - 25 Aralık 2009, 09:51:15
Kaç kişi ilgileniyor-kullanıyor ?
Başlık: Yazılımı koruma
Gönderen: hasangurlek - 25 Aralık 2009, 14:19:04
Alıntı yapılan: "bigbey"Boardmaker versiyon 3.0 kırılmış değil demekki yöntemi doğru kullanıyorlar.

Ah Ah, DOS ortamının dostu BROADMAKER ve ETA (muhasebe) programları, en vefalı DOS dostları, gemiyi terketmeyi birtürlü beceremeyenler ve yan gelip yatanlar ! Projelerini geliştiren elemanlarının maliyetlerini satış patlamaları sonrası yüksek bulup, düşük ücrete bilgisiz servis mühendisleri çalıştırmayı tercih edip gelişmelere kapalı kalanlara en güzel örnekler. Bir zamanların devleri iken en alt sıralara düşenler.
Başlık: Ynt: Yazılımı koruma
Gönderen: muzdaq - 05 Temmuz 2010, 12:06:27
Bugun gördüğüm link konuyla oldykça ilgili... 
http://life-is-a-hack.blogspot.com/2010/07/free-laundry-for-everybody.html
Başlık: Ynt: Yazılımı koruma
Gönderen: radres - 05 Temmuz 2010, 12:16:31
Alıntı yapılan: bunalmis - 21 Aralık 2009, 14:42:03
Kedi sizin olsun. Kediyi daha yavru iken internette bulmuş ve bugüne kadar beslemiştim.

Z yi gerçekten merak ediyorsanız Z yi çok iyi araştırmalısınız. Avatarımdaki eli öpülesice de Z ile alakalı.

Biliyorum bilmece gibi konuşuyorum ama zaten Z büyük bir bilmecedir ve kontrolla ilgilenen herkez Z yi iyi tanımalıdır.

Güzel resim tercihi. Lotfi A. Zadeh
Başlık: Ynt: Yazılımı koruma
Gönderen: t2 - 05 Temmuz 2010, 12:18:12
Alıntı yapılan: bigbey - 25 Aralık 2009, 09:35:42
Boardmaker versiyon 3.0 kırılmış değil demekki yöntemi doğru kullanıyorlar.
Bunu kırmak için 1 tane satın alınmış full versiyona sahip olmak gerek.

Kıracak kişi buna para bağlamaz. Satın alacak kişi de zaten satın almıştır. Alın kırın diye birilerine vermesi  mümkün tabi fakat  bunu yapması için bir sebep olması lazım. Meslea Bmaker firması adama kelek yapmıştır. hakkını yemiş, küfür etmiştir.  yardımcı olmamıştır ne haliniz varsa görün demiştir....
Başlık: Ynt: Yazılımı koruma
Gönderen: RcALTIN - 05 Temmuz 2010, 12:55:45
Aklıma gelen basit bir öneri paylaşacağım, belki fikir verebilir umuduyla. Ülke olarak yakında üzerinde chip barındıran kimlik kartlarına geçiyoruz, biliyorsunuz. Eğer bu kimliklerdeki en basitinden tcno, ciltno hatta benzersiz(?) kimlik kartı id'si bilgilerini okumak mümkün olabilirse her kişi için programı tc.no(v.s)'ya göre lisanslayarak kimlik kartlarını dongle olarak kullanma yoluna gidilebilir. Aklıma şöyle bir esti çünkü bu kartların kopyalanmasının imkansız olduğu iddia ediliyordu, yanlış bilmiyorsam bolu ilimizde şuan kullanılmaktalar. Biraz muallakta, kullanım alanı sınırlı(yalnızca Türk vatandaşlarının kullanabilecek olması) ve ütopik bir düşünce olsa da belki zihninizde yıldırımlar çakmasını sağlayabilir. :)
Başlık: Ynt: Yazılımı koruma
Gönderen: OG - 05 Temmuz 2010, 14:09:58
Dongle kullanmak şartı ile programın korunabileceğine inanıyorum. Koruma algoritmasında biraz şeytani mantık gerekiyor.
Başlık: Ynt: Yazılımı koruma
Gönderen: ibo1973 - 05 Temmuz 2010, 15:13:06
amaç programı korumaksa bence programın değişkenlerinden bir kaç tanesinin hesablanma işi kart kısmına aktarılırsa program zaten çalışmıyıcaktır düzgün olarak.

istenirse birde her kart için version belirlenir version bilgisine göre program çalışır yada çalışmaz
Başlık: Ynt: Yazılımı koruma
Gönderen: muhittin_kaplan - 05 Temmuz 2010, 21:43:05
Dongle Bitti (Usb Bellek Boyutunda oldu). Pek Kasılmadım Çünki Kırılmak İstenince Kırılıyor. Jabba Proje diye bir projedeki Class ı kullandım. şimdi bizim eşraf deniyor.