Fikir Teatisi
-
Merhaba
Bir yazılımınız var ve sadece belli sayıda kişilere verdiniz. Fakat bu yazılımın sadece sizin kurmuş olduğunuz bilgisayarlarda çalışıyor olduğunu, bir nevi yazılımınızın başkaları tarafından kullanılmıyor olduğunu nasıl kontrol ederdiniz.
Not: Bilgisayarlar çevirimiçi / Kullanıcılar düşük seviye kullanıcı / Yapmış olduğunuz yazılım C# & MSSQL destekli.
Fikri olan yazabilir mi? Benim de bir fikrim var ancak çok mu uç düşünüyorum bilemedim. Biraz beyin fırtınası olsun.
Bende birkaç şey yazacağım bir vakit sonra..
-
Hdd id
-
SUPERBICO bunu yazdı
Hdd id
İlk cevap gayet güzell.. bende Mac düşünmüştüm.
peki veri kontrolünü nasıl post ettirmeli... eposta & web service vs...
-
ben şöyle bir şey yaptım bir uygulamamda,
hdd id + mac adresi + kurulum tarihini hashleyen bir algoritmam var. bunu tersine çözüp bu bilgileri elde edebiliyorum geri.
Uygulama kurulumdan sonra ilk açılışta dbdeki lisans alanını kontrol ediyor. eğer boş ise bir web service ile bana lisans requesti atıyor. dolu ise de valid bir lisans mı diye kontrol ediyor.
web service ise bana sms atıyor. Bende bir exe üzerinden lisans üretip tabloya giriyorum. Uygulama tekrar açıldığında lisanslamış oluyor
-
sLeymN bunu yazdı
ben şöyle bir şey yaptım bir uygulamamda,
hdd id + mac adresi + kurulum tarihini hashleyen bir algoritmam var. bunu tersine çözüp bu bilgileri elde edebiliyorum geri.
Uygulama kurulumdan sonra ilk açılışta dbdeki lisans alanını kontrol ediyor. eğer boş ise bir web service ile bana lisans requesti atıyor. dolu ise de valid bir lisans mı diye kontrol ediyor.
web service ise bana sms atıyor. Bende bir exe üzerinden lisans üretip tabloya giriyorum. Uygulama tekrar açıldığında lisanslamış oluyor
Abi biraz alakasiz bir detay ama hash zaten geri cevrilmesi istenmedigi durumlarda kullanilmiyor mu?
-
whopper bunu yazdısLeymN bunu yazdı
ben şöyle bir şey yaptım bir uygulamamda,
hdd id + mac adresi + kurulum tarihini hashleyen bir algoritmam var. bunu tersine çözüp bu bilgileri elde edebiliyorum geri.
Uygulama kurulumdan sonra ilk açılışta dbdeki lisans alanını kontrol ediyor. eğer boş ise bir web service ile bana lisans requesti atıyor. dolu ise de valid bir lisans mı diye kontrol ediyor.
web service ise bana sms atıyor. Bende bir exe üzerinden lisans üretip tabloya giriyorum. Uygulama tekrar açıldığında lisanslamış oluyor
Abi biraz alakasiz bir detay ama hash zaten geri cevrilmesi istenmedigi durumlarda kullanilmiyor mu?
I Ih. şöyle düşün; Giri ABCDE olsun, hash'lediğin algoritman da her harfi alfabedeki bir sonraki harfle değiştirsin ve sonuç olarak BCDEF verecektir, böylece herkes sonucu görür ama sadece elinde algoritma olanlar asıl girinin ABCDE olduğunu bilebilir.
-
Tersine Mühendislik olayı çok gelişti her türlü patlatıyorlar nerdeyse, o sebeple söylenenlerin yanı sıra, server client mantığı olması daha güvenli olacaktır.
-
SweetyVolty bunu yazdıwhopper bunu yazdısLeymN bunu yazdı
ben şöyle bir şey yaptım bir uygulamamda,
hdd id + mac adresi + kurulum tarihini hashleyen bir algoritmam var. bunu tersine çözüp bu bilgileri elde edebiliyorum geri.
Uygulama kurulumdan sonra ilk açılışta dbdeki lisans alanını kontrol ediyor. eğer boş ise bir web service ile bana lisans requesti atıyor. dolu ise de valid bir lisans mı diye kontrol ediyor.
web service ise bana sms atıyor. Bende bir exe üzerinden lisans üretip tabloya giriyorum. Uygulama tekrar açıldığında lisanslamış oluyor
Abi biraz alakasiz bir detay ama hash zaten geri cevrilmesi istenmedigi durumlarda kullanilmiyor mu?
I Ih. şöyle düşün; Giri ABCDE olsun, hash'lediğin algoritman da her harfi alfabedeki bir sonraki harfle değiştirsin ve sonuç olarak BCDEF verecektir, böylece herkes sonucu görür ama sadece elinde algoritma olanlar asıl girinin ABCDE olduğunu bilebilir.
yanlışın var, dediğin şey encryption algoritması oluyor hocam. hashing daha çok veriyi özetlemek ve benzersize yakın bir sonuç üretmekle ilgili. geri dönüştürülememesi de veri kaybından kaynaklanıyor. verdiğin örnekten gidecek olursak, bir hashing algoritması şuna benzer şekilde işler;
Alfabenin harflerini 0dan başlayarak indexlersek; (A=0, B=1, C=2, D=3, E=4, F=5, ...) ve girilen verinin(ABCDE) bu index toplamlarını alıp(11) mod3 sonucunu alırsak(2), kendimizce veriyi hash'lemiş oluyoruz. farkedeceğin üzere birden fazla girdi aynı çıktıyı verebilir bu algoritma ile. bu yüzden de algoritmayı biliyor olsan da geri çeviremezsin, deneme yanılmayla da sonsuz bir sonuç kümesi var.
Neyse konuya dönersek, cihaza özel id üretmek için şu fonksiyonu kullanabilirsin;
public static string GetUDID() { string drive = string.Empty; //Find first drive foreach (DriveInfo compDrive in DriveInfo.GetDrives()) { if (compDrive.IsReady) { drive = compDrive.RootDirectory.ToString(); break; } } if (drive.EndsWith(":\\")) { //C:\ -> C drive = drive.Substring(0, drive.Length - 2); } string volumeSerial = getVolumeSerial(drive); string cpuID = getCPUID(); //Mix them up and remove some useless 0's return sha256String(cpuID.Substring(13) + cpuID.Substring(1, 4) + volumeSerial + cpuID.Substring(4, 4)); } private static string getVolumeSerial(string drive) { ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":"""); disk.Get(); string volumeSerial = disk["VolumeSerialNumber"].ToString(); disk.Dispose(); return volumeSerial; } private static string getCPUID() { string cpuInfo = ""; ManagementClass managClass = new ManagementClass("win32_processor"); ManagementObjectCollection managCollec = managClass.GetInstances(); foreach (ManagementObject managObj in managCollec) { if (cpuInfo == "") { //Get only the first CPU's ID cpuInfo = managObj.Properties["processorID"].Value.ToString(); break; } } return cpuInfo; }
-
whopper bunu yazdısLeymN bunu yazdı
ben şöyle bir şey yaptım bir uygulamamda,
hdd id + mac adresi + kurulum tarihini hashleyen bir algoritmam var. bunu tersine çözüp bu bilgileri elde edebiliyorum geri.
Uygulama kurulumdan sonra ilk açılışta dbdeki lisans alanını kontrol ediyor. eğer boş ise bir web service ile bana lisans requesti atıyor. dolu ise de valid bir lisans mı diye kontrol ediyor.
web service ise bana sms atıyor. Bende bir exe üzerinden lisans üretip tabloya giriyorum. Uygulama tekrar açıldığında lisanslamış oluyor
Abi biraz alakasiz bir detay ama hash zaten geri cevrilmesi istenmedigi durumlarda kullanilmiyor mu?
Hocam soyle dusun bir sistem kurdun a kisisi hile yapmis onunda hashi 3veb3i olsun sen bu hashli kisiyi hile yaptigini yakaladin kim oldugunu nerden bileceksin hash i geri cevirmen lazim ki mesela isminin a oldugu ortaya ciksin
2 li algoritmada guzel hash olusuyor
A=2
B=4
C=8
D=16
Tarzinda sonsuza kadar 2 nin kati seklinde gidiyor mesela kisinin adi DCA olsun 16+8+2=26 rakamini uretti birde bunun siralamasini kuracak algoritma kur suan elinde 26 var hangilerinin toplami A C D nin peki bunun dogru kombinasyonu icinde algoritma lazim onuda uret 26 ile birlestir alsana hash
Konuya gelirsek hocam ben Mac korumasi koyuyorum genelde programlarima basit son kullanici oldugu icin giris paneli oluyor giris panelinde kullanici adi sifre ile eslesmis durumda Mac oluyor o hesaba baska pc den baglanilamiyor sen Maci guzel sifrelersen her program acilisinda kontrol etsin o kullanici adi sifrenin sahibi o pc degilse girmesin
-
süpersiniz arkadaşlar. cevap mesajları ufkumu açtı.