Programım kopyalanmasın (Dongle)

Başlatan SpeedyX, 08 Ekim 2007, 16:41:37

SpeedyX

Selamlar,

Programların kopyalanmaması için hardware olarak takılan dongle'lar ile bunlarla haberleşen yazılımlar arasında nasıl bir haberleşme oluyorda, logic analyzerler ile bir şekilde veriler alınıp, yerine aynı işi yapan cihazlar yapılmıyor?

Dongle ne gibi veriler gönderiyor ve yazılım bu verileri nasıl alıp nasıl işliyor ki DeDe tarzı sistemlerle kırılmıyor?

Mesela programınız registry e bir kayıt yapar ve lisanslı olup olmadığını ordan kontrol eder. Sizde o exe yi decompile edip ne yaptığını(kısmen) anlarsınız ve genellikle je, jne yapılır program yanlış bilgileri doğruymuş gibi algılar. Peki bu dongle ile gönderilen( veya dongle a gönderilen) verilerin kontrolü sırasında da aynı işlem yapılıp program yanıltılamaz mı?

Kısacası dongle nasıl çalışır? Programımın kopyalanmamasını çok zorlaştırmak için ne gibi önlemler almak gerekir?

CaFFeiNe

tam olarak bilmemekle birlikte şöyle bir fikir yürütebilirim

eğer gerçekten lojik analyzer vs gibi cihaz yada port dinleyen programlar ile veri kopyalanamıyorsa veri sürekli değişiyor demektir (code hopping misali)

ilker_32

Hocam bu konuyu uzun zamandır araştırmama rağmen bir sonuç elde edememiştim. Bu konu hakkında detaylı bilgiyede fazla rastlamadım. Yapamayınca peşini bıraktım. Bende sizin kadar meraklıyım Bu başlık altında bu sorunu çözebillirsek çok iyi olur. 8)

SpeedyX

Kendi programım için dongle yapmak istiyorum, ufak bir chip ve usb den haberleşen program benim için zor iş değil, ama gönderilen verileri yine yaptığım başka bir programla pc tarafında dinleyebilirim diye düşünüyorum. dinlersem çözer, kopyasını (emulator) da yaparım. code hopping demişsiniz. Mesela saat bilgisine vs göre sürekli değişen bir kodlama sistemi olsada bir şekilde mantık kurulamaz mı. Aklıma çok değişkenli, sayaçlı encrypt algoritmaları geliyor. Ama yinede bunların program içindeki kontrol rutinlerini tersleyerek herşeyi bitirirler diye düşünüyorum.

OG

Çözülmesi (kopyalanmadıkça) imkansız bir algoritma oluşturmak mümkün ve basit (bence), emüle edilemez. 1 adet 12F675 ile bile yapılabilir düşüncesindeyim.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

CaFFeiNe

Alıntı yapılan: "SpeedyX"Ama yinede bunların program içindeki kontrol rutinlerini tersleyerek herşeyi bitirirler diye düşünüyorum.

örneğin protonu kırarak dediğini yaptılar sanıyorum (o da dongle' lı değilmiydi)

ne kadar dongle filanda kullansan pc tarafındaki programları disasemble edip dallanma vs. komutlarla oynayıp bir şekilde kırıyorlar, ama şöyle bir mantık olabilirmi pc programının bir parçası mesela 50-60KB kısmını direk dongle içine gömsen ve pc programın önce dongle ile bir şekilde şifreli haberleştikten sonra (tabiki code hopping yada algoritmalı birşey yani her haberleşmede farklı bilgiler akacak) dongle ın içine gömdüğün bilgiyi alıp pc programını tamamlayıp çalışır hale getirsen?

program sonlandırıldığındada programı kopyalasan bile işe yaramasa yani illaki dongle gerekse (çünkü pc programının bir kısmı dongle da olacak)

bu seferde dongle ı okuyup çalışan programı RAM den dosyaya aktarabilen pc programları olabilirmi sorusu çıkıyor :)

not: halihazır yazdığınız pc programını şifreleyen crackten koruyan pc programları yokmu?

Ersin

Kirilmaz diye bisey yok.Cubase music programi orjinali usb dongle ile calisiyo.H2O bunu usb dongle i simule ederek kirmis.Yani ciddi birileri kirmak istese kirar, bu programin buna degip degmeyecegine bagli.

OG

Alıntı Yappc tarafındaki programları disasemble edip dallanma vs.
bunu yaparlarsa çözerler elbet.

Ben kendimce iddialıyım, çok basit bir şekilde çok güçlü algoritma kurulabilir. Hattı istediği kadar dinlesinler çözülemez.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Fixxer

Dongle olayını cep telefonları programlarından biliyorum. Yani ceptelefonu programlarının çalışması için dongle gerekiyordu telefonların imei lerini seri numaralarını ve içersine program yüklemek için gereken programı çalıştıran djt4 djt3 programlarının dongle larında 16f876 vardı hep bi şekilde kırmış adamlar ve çatır çatır satıyorlardı fi zamanında. Bir nevi dijital anahtar.
...............................

Göktuğ

Az satılacak ve çok yüksek gelir olmayacak işler için bir ftdi arkasına bir mcu ve onun üzerine konacak iyi bir yazılım sistemi yeterince korur. Çok satılıyorsa ve/veya iyi kar bırakıyorsa birileri kırmaya çalışacaktır normal olarak. İşin mali boyutları sistemin geleceğini belirler.

mavi

google da hasp emulator olarak arat

http://www.brstudio.com/


bu herif bu işin uzmanı
Telecommander Monster Of Network

Burak B

:) Kolay gelsin. Arkadaşlar kimse üstüne alınmasın ancak programcı aptal olduktan sonra ağzınızla kuş tutsanızda gereken bilgiler PC ye geçtiği için (ki geçmek zorunda) o programı çözeceklerdir. Aradaki haberleşmeyi değişken yapmak hiçte zor değil basitçe random bir algo üstüne yerleştirilmiş basit bir şifreleme ile bile logic analyzer her seferinde farklı veriler görecektir ancak karşıda bu haberleşme çözüldüğünde PC ve kilit tarafında aynı bilgi elde edilir. Bunlar önemli şeyler değil önemli olan uygulanabilirlik ve programı analiz eden kişinin gözünü korkutmak. Yoksa kilit felan hikaye ki çoğunuzunda bulduğu gibi  profesyonel pek çok kilitin emulatorleri yazılmış durumda. Yılların firmaları bunlar adamların işi bu düşünün.

[Edit] CaFFeiNe arkadaşım RAM den kopyalama konusunda çok can alıcı bir noktaya temas etmişsin. Tebrik ederim. Malesef haklısında.RAM de çalışır halde bulunan bir program diske yazılarak yeniden yapılandırılabilir. Bknz; Manual Unpacking.

Cep telefonu mevzunda iş daha sağlam neden derseniz gerekli bilgi PC ye değil telefona gider ve bunu analiz etmek için telefonuda ele almak gerekir. Farklı bir mevzu karıştırılmaması için dedim.

Ayrıca bilinen chiplerle nereye kadar yapılabilir. söylendiği gibi ancak küçük çaplı işlerde kullanılırsa belki bir nebze idare eder. Yoksa program ücreti ve yaygınlığı arttıkça birilerinin gözüne girmeye başlayacaktır. Ve sizinde bildiği gibi bir PIC veya benzeri MCU yu üstü kazınmış olsa bile bacak bağlantıları devre yapısı gibi etkenlerle tanımlamak pek te zor değil. Ancak bir FPGA kullanıp birşeyler olursa onda bir nebze etkinlik artabilir. En iyi ve profesyonellerin kullandığı yöntem yine ASIC ler ancak bunlarda dediğim gibi herhalukarda emüle ediliyor.

Ben bu mevzuları çok araştırmıştım baya bir zaman evvel o nedenle konuyla ilgili bişiler yazayım dedim. Amacım heves kırmak değildi sadece ışık tutmak babında. Benim için Türk insanı herşeyin en iyisini yababilecek kapasite ve ahlak yapısındadır. Sülç-ü lisan ettikse affola.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

ise

pc hdd nosuna veya anakart id ye göre basit bir algortima yaparsan çok fazla sorun olmaz. programlar bir şekilde kırılır.  ramdan çalışsada xp memory gutter var alıp hdd ye kopyalanıp yine ida veya softice ile  disassembly edilir kırılır sorun sadece zamandır. onun için bence dongle boşuna masraf etme

Klein

Bir programı profesyonellerden koruyamazsınız. Ama bunlardan koruyamıyorum diye dongle koymamam , boşa para harcamak değildir. Amaç burada profesyonellerden korumak değil ki. O programı kırabilecek biri  büyük ihtimalle yazabilecek kapasiteye de sahiptir. Amaç her önüne gelen programı kopyalayıp kullanmasın. Bu durumda herhangi bir dongle bile işinizi görür. Ayrıca hasp vs... gibi dongle'leri kırmak için disassmbly etmeye de gerek yok. Programın kullandığı DLL in aynısından yapılıp verileri böyle toplayabilirsiniz. Zaten dongle emülatörler de böyle çalışıyor. Önce çalışan dongle takılıyor. senin dll'in  programdan gelen isteği gerçek dll'e  iletiyor. dll den gelen bilgiyi bir köşeye not ettikten donra da programa iletiyor. bütün bilgiler alındıktan sonra da emüle ediyor. Ve emin olun birçok firma  karmaşık ve değişken algoritmalar kullanmıyor. Sadece dongle hafızasındaki veriyi karşılaştırıyor.

SpeedyX

Selamlar,
Alıntı yapılan: "ise"pc hdd nosuna veya anakart id ye göre basit bir algortima yaparsan çok fazla sorun olmaz. programlar bir şekilde kırılır.
Hardware bilgilerini bende düşündüm,


Benim programım belki müthiş birşey değil ama programları koruma yöntemlerini merak ettiğim için ve birazda kopyalarlar rezil oluruz diye korktuğum için dongle konusunu açtım.
Bence elimizden geleni yapmalıyız, zaten isteyenin kırabileceğini biliyorum, bende bu işin içindeyim biraz. Fakat programımı ulu orta yere savunmasız bırakmayıda düşünmüyorum tabiiki.

Şu her seferinde farklı bilgi gönderebilmek için yazdığınız üstü kapalı fikirleri biraz daha açabilir miyiz?

MD5 hala çözülemiyor mu?