|
[ IgorArsic @ 15.10.2005. 12:57 ] @
| Da li neko ko ima iskustva u tome moze malo da mi objasni zastitu softwera, kreiranje shareware programa i sve ostalo vezano za to.
Kako zastiti svoj program ?
Kako napraviti Trial verziju ?
Kako napraviti registraciju, da se posle unosa serijskog broja i nekog koda aplikacija otkljuca ?
Imam neke kontrole OnGuard, Protector itd ali mi nije bas najjasnije kako rade ?
Hvala unapred. |
[ overflow @ 15.10.2005. 14:16 ] @
Toplo preporučujem ICELicense... postoji poseban program kojim administriraš licenciranje (kreiranje licenci,produženje i sl.), a na tebi je da u tvoj projekat smeštiš odgovarajuću komponentu i jako jednostavno i intuitivno podesiš istu.
[ Nemanja Avramović @ 15.10.2005. 16:41 ] @
ja sam imao par ideja za zastitu programa, i planiram sve da ih spojim u jednu... samo da razradim rad sa DLL-ovima... (to mi nesto ne ide)
u svakom slucaju, ne kontam kako ne razumes kako napraviti trial...
1) kreiras program
2) dodas opciju za unos serijskog broja
3) osiromasis program (free version)
4) pri unosu s/n-a to se upise "negde"
5) aplikacija proverava da li je unet s/n, i ako jeste, enable-uje neke dodatne opcije
p.s. za trial mozes koristiti brojac koji ce se smanjivati pri svakom pokretanju programa, a pri unosu pravog s/n-a taj brojac se onemoguci...
[ Passwd @ 15.10.2005. 18:17 ] @
da, da... to vam je odlicna idjea
ajde neka slozi netko primjercic da nesto isprobam 
[ IcyImpact @ 15.10.2005. 18:18 ] @
Slaba zastita, jako slaba...
[ Nemanja Avramović @ 15.10.2005. 22:53 ] @
to je samo ideja...
[ mulaz @ 15.10.2005. 23:00 ] @
i kako kod trial vezije brojac koji odbrojava.. gde stavlja broj dana? mislm.. kad predje 1. dan.. gde upise da je presao 1 dan? u registar? neki file tamo negde? i kako zastititi da ne moze neko promenuti brojeve?
secam se puno programa kod kojih sam morao da vracam sstem clock tamo negde u 1998 da su mi opet radili :)
[ Nemanja Avramović @ 17.10.2005. 12:18 ] @
zapisuj gde hoces
a sto se tice toga da niko ne moze da menja - encrypt
[ IgorArsic @ 17.10.2005. 16:07 ] @
Hvala na brzom odgovoru, usput sam resio problem.
JaHvram, Otprilike sam tako i uradio medjutim upravo sam imao problem sa vracanjem datuma unazad i onda to nije vredelo. Medjutim kontrola "mxProtector" mi je resila problem, posto vuce vreme iz biosa uporedjuje sa windowsom, to kriptuje i smesta u regisrty. Tako da bilo koja promena sistemskog vremena u windowsu poziva izuzetak. Nadam se da je to OK, sta ti mislis i sta se desava ako je racunar na mrezi pa se vreme sinhronizuje sa nekim serverom.? Da li postoji onda verovatnoca da server vrati vreme na klijentu za par sekundi ili cak minut i sta ako se to desi pred ponoc (23:59) znaci vratilo bi se vreme za jedan dan???
PS:
Znam da i to moze da se nekako krekuje ali za prosecnog korisnika ce biti vise nego dovoljno, sto mi i zavrsava posao.
Ako nekome zatreba lako se moze naci na netu ova komponenta, nalaze se u kompletu
MaxComponents i besplatne su.
Hvala jos jednom
Pozdrav
[ IgorArsic @ 17.10.2005. 16:12 ] @
overflow, mulaz
takodje hvala na odgovorima pogledacu ICELicense...
[ Nemanja Avramović @ 17.10.2005. 18:00 ] @
Pa najverovatnije postoji mogucnost za pomeranjem jedan dan u nazad, ali, uzmi procentualno koliko ljudi sinhronizuje sat sa nekim serverom minut pred ponoc, i koliko ce im znaciti taj jedan dan duze?
Drugim recima - opusti se 
[ Samo polako @ 17.10.2005. 19:52 ] @
Ha ha, baš tako, opusti se...
[ Passwd @ 17.10.2005. 20:16 ] @
Ne postoji zastita koja se ne moze "maknuti"...
Danas sutra, vise cete se namuciti oko zastite nego oko samog programa.
I najbolja i najcvrsca zastita moze samo usporiti krekovanje, ali i sprijeciti NE MOZE!
Sta je tu je, opusti se 
[ miksi @ 17.10.2005. 22:08 ] @
Toliko price oko zastite, a ja pitam sve vas da li koristite licencirani Delphi i ako ne, koja je svrha (moralna) zastite "vasih" par linija kodova !@#$%
[ Trodmi @ 17.10.2005. 22:48 ] @
Vezi za serijski broj hard diska i/ili ploce i dovidjenja, prijatno. Ne verujem bas da prosecan korisnik ima ASM znanja da ti to izmeni. Stari Clipper-asi koriste ovu glupu foru: stave neki fajl (obican txt ili nesto drugo, sadrzaj samog fajla nije bitan) u neki pod,pod,pod,pod direktorijum i onda po startovanju programu proverava se da li postoji taj i taj fajl u tom i tom direktorijumu sa tim i tim imenom. Ako postoji ---> Guli dalje else ---> poruka "mojne da kopiras moj super moderni Clipper program". Inace u mojoj carsiji se vecinom koriste knjigovodstveni programi radjeni u Clipperu. Toliko o korisnku...
[Ovu poruku je menjao Trodmi dana 17.10.2005. u 23:56 GMT+1]
[ IgorArsic @ 17.10.2005. 23:42 ] @
Trodmi thanks, resio sam problem,
Usput koristim licencirani Delphi.
Pozdrav
[Ovu poruku je menjao IgorArsic dana 18.10.2005. u 00:50 GMT+1]
[ Passwd @ 18.10.2005. 13:46 ] @
Kako ne razumijete..
Ti mozes napraviti provjeru serijskim brojem, glupu provjeru sa upisivanjem u fajlove/DLL-ove, razno razne brojeve HDD-a.......ali kad krekera ne zanima kakva je tvoja provjera (i od koliko se je stranica koda napravio  ), kad je njemu bitan samo onaj zadnji skok (koji provjerava IF tocno then program radi ELSE ne radi) i samo tu zadnju (od xx stranica koda) izmjeni (il ju navodi da skace na drugu adresu il ju nopuje....)..a sve ostale "zastite", ukljucujuci i pakovanje i razno razne druge sigurnosne mjere mogu krekeru samo oduzet malo vise vremena da nadje taj kljucni skok....ali ga nikako ne mogu zaustaviti u tome
Jer mnogima nije bitno da se sazna koji je serijski il sta vec, vec da program radi bez da su ga kupili...
Za takve stvari ne bi trebalo optuzivati krekere vec ljude koji su izmislili disemblere i time sve omogucili...
[ Nemanja Avramović @ 18.10.2005. 16:54 ] @
Daj da vidim koji ce cracker da se muchi oko mog programa... znas kako kazu neki ljudi: Kad ti neko iskrekuje program, onda si poznat!
Trebas biti Adobe, Corel, Macromedia, Microsoft, itd... da bi te krekovali
Mislim, postoje i krekovi za manje poznate (naglasavam: poznate) programe, ali, kad moj program bude bio TOLIKO poznat da ga neko krekuje (domaci crackeri, nemojte sad da napadate moje programe), onda cu biti srecan 
[ IgorArsic @ 18.10.2005. 17:46 ] @
Upravo tako.....
[ broker @ 19.10.2005. 00:01 ] @
Ispravnije je: krekovace ti program ako ga dovoljno ljudi korisiti. Ne mora to uopste da bude program na nivou velikih igraca.
Usput, ja sam po definiciji dakle poznat, jer na netu postoji krek za jedan moj program. :) Krek doduse ne radi, posto ja ipak nisam sisao vesla i znam da zastitim program, ali ipak je krek :)
[Ovu poruku je menjao broker dana 19.10.2005. u 01:01 GMT+1]
[ Nemanja Avramović @ 19.10.2005. 12:27 ] @
da, tako je ispravnije!
ajde podeli s nama ideju o zastiti? 
plizzzzzzzzzz
[ broker @ 19.10.2005. 13:51 ] @
Passwed vam je rekao glavnu caku. Kakvu god vratolomiju korsitili da utvrdite da li j eprogram registrovan ako sve to zavrsite sa IF, dzabe ste krecili jer je potrebna promena sam jednog bajta u kodu da sve vase provere budu iskljucene.
Trik je sledeci: koristite podatke o registraciji kao funkcionalni deo programa, ako podatak nije ispravan, program nece ispravno raditi. IF korsitite samo da utvrdite neispravnost registracije kako bi ste obezbedili da program u takvim situacijama prepozna da registracije nije dobra i da obezbedi ispravan prekid tekuce funkcije ili rada celog programa. Hakeru time komplikujete, jer kada on iskljuci proveru, on ne obezbedjuje da program radi, nego da program radi neispravno. ako naprvite dovoljan broj ovakih kvaka, osigurali ste svoj rogram,ne zato sto je on neprobojan, nego zato sto ce hakeru trebati mnogo vremena da prokljuvi sta se desava, a time drasticno smanjujete veroatnocu da ce se sa tim baktati.
Onaj krek sto sam pomenuo, upravo je to uradio, sklonio je dve od mnogo veceg broja provera registracije, a time sto ih je uklonio, samo je uklonio obavestenje da program nije registrovan a dobio da program dalje radi neispravno.
Kada koristite kljuceve za registraciju, klasicna provera izgleda ovako: kodkorisnika se generise neki podatak koji je jedinstven za njega, on to posalje vlasniku a vlasnik na onsovutogaizgenerise kljuc za program. Program proverava a li kljuc odgovara pocetnom podatku tako sto i on izglenerise kljuc pa uporedi pa ako jeklkjuc isti, program je registrovan. Takvu zastitu razbijaju tako sto nadju kod koji generise kljuc, iscupaju ga i od njega naprave generator kljuceva.
Kljuceve korsitite ali u kljuc uisite neke podatke koji se koriste u samom programu kao bitni elementi. Kod proere apliakciaj uopste ne mora da proverava da li je sam kljuc neispravan nego korsti podatke iz njega takve kakvi su a samo utvrdjuje da li su oni neispravnu u smislu da zna sta da uradi u tom slucaju. Ako neko skine proveru, a podatak je neispravan, program ce raditi neispravno.
Dobra mesa su sve rutine koje vrse izracunavaja. Ako deo formule za racun bude i neki podatak iz kljuca, a kljuc je neispravan, sam racun postaje neispravan. Moete bitiprilicno mstoiti, i ici dotle da pravite razne svinjarije, kao sto je recimo da se neka dugmad vide ili ne vide ili da se neki dijalozi otvaraju na pogresnim mestima, ili cak da se podaci iz dijaloga ne koriste kako treba. Stovis zackoljica smislite to ce krakeru biti vece smaranje da ih otklanja. Ipak, nikada nemojte ugradjivati destruktivan kod, kod koji ce da unistava.
Vazno je da zaboravite na modularno programiranje koda za zastitu. Trudite se da svaka zackoljica bude uradjena drugacije, pisite drugaciji kod, korsitite razlicite promenjljive, jer svaka uniformnost u kodu znaci da ce kraker otkrivsi jednu zackoljicu, lako da nadje i eliminise i ostale. Za ovo ej bitno da imate predstavu kako radi kompajler i sta ce da napravi kada vas Delphi kod prevede u masinski. Delphi ima veoma dobar kompajler koji moze da optimizacijom, od naizgled razlicitog Delphi koda, napravi isti ili vrlo slican masinski. To je bitno jer kraker radi sa masinskim kodom. Dobar kraker, gledajuci masinski kod prepoznaje Delphi komande. Nocito se nemojste zeznutisa promenljivama. Delphi kompajler je vrlo inteligentn i cesto ce u masinkom kodu promenljive i konsante koje ocigledno imaju iste vrednosti, sastaviti u jednu. Obratite paznju na konstante. Njihove vrednosti su u exe najcesce upisane bas onako kako su definisane t eumeju vrlo cesto a otkriju mnogo detalja o samom programu. Bitne vrednosti drzite kao promenljive, kodirane na neki nacin, tako da nisu ocigledno citke.
Ovakve zastite nisu jednostavne da se naprave. Zahtevaju pre svega analizu gde se u kod mogu umetnuti zackoljice i mnogo vremena da se te zackoljice ugrade u program. Upravo zato se ne moze dati neko konkretnije uputstvo osim ovako uopsteno jer svaka zastita je razlicita od programa do programa.
E da, ako korsitite gotove komponente ili biblioteke za zastitu, racunajte da vam je program vec razbijen, jer ako je haker razbio jedan program koji koristi taj kod, razbice i svaki sledeci i to rutinski.
[Ovu poruku je menjao broker dana 19.10.2005. u 14:53 GMT+1]
[ IcyImpact @ 19.10.2005. 15:56 ] @
Citat: Toliko price oko zastite, a ja pitam sve vas da li koristite licencirani Delphi i ako ne, koja je svrha (moralna) zastite "vasih" par linija kodova !@#$%
Nema tu nikakvog velikog morala - veliki i mali softverski paketi moraju biti dobro zasticeni da bi zastitili svoje intelektualno vlasnistvo i da bi se zastitili od neovlastene upotrebe.
[ Passwd @ 19.10.2005. 17:00 ] @
broker, lijepo si ti to sve opisao, ali takvu zastitu pravi kreker razbije za 2 minute
jedina dobra stvar koju sam cuo (Srki_82) je ta da se program sastoji od 2 dijela..
korisnik ima klijent koji se pokretanjem spaja na neki savrseno zasticeni server..i kod se upise u klijentu i posalje se zahtjev serveru, a server provjeri key i ako je dobar daje instrukcije da bi program mogao raditi, u suprotnom posalje neku instrukciju za unistenje programa...
znaci kreker bi u tom slucaju trebao hakovati web server a ne program...a to je nesto sasvim drugo
[Ovu poruku je menjao Passwd dana 19.10.2005. u 18:05 GMT+1]
[ IcyImpact @ 19.10.2005. 19:04 ] @
Citat: ...na neki savrseno zasticeni server...
Sto ne postoji...
Citat: znaci kreker bi u tom slucaju trebao hakovati web server a ne program...a to je nesto sasvim drugo
Sto nakon nekog vremena ne bi bio prevelik problem.
[ Passwd @ 19.10.2005. 19:15 ] @
Nije to samo tako....
Prvo se mora razbit sifra od servera pa onda ukrast programov server (koji moze biti enkripitiran-znaci da radi samo na tom serveru a ne i na tvom racunalu), i recimo da ima neki elite haker (kakvih nema  ) koji je to uspio, i onda jos treba krekovat program server...i prebacit ga na neki drugi server te preusmjerit klijent na taj drugi server...mislim dignem spomenik tko to napravi 
[ Burgos @ 19.10.2005. 19:44 ] @
Citat: Passwd: (kakvih nema  )
Keep dreaming, child
[Ovu poruku je menjao Burgos dana 19.10.2005. u 20:45 GMT+1]
[ McKracken @ 19.10.2005. 20:06 ] @
@Paswd:
Yeah, right! ;)
[ IcyImpact @ 19.10.2005. 20:14 ] @
Citat: i recimo da ima neki elite haker (kakvih nema....
Ima, ali vrlo vrlo malo.
[ Passwd @ 19.10.2005. 20:16 ] @
Da, da, da...samo mi recite onda zasto ti vasi elite hakeri+crackeri nisu uspjeli krekovati officijalni server WoW-a vec su radili nove servere? 
[ Nemanja Avramović @ 19.10.2005. 22:43 ] @
samo je potrebno da znas sta ce vratiti super-zasticeni server
onda odes u %WINDIR%\system32\drivers\etc\hosts
i tu upises
www.super-zasticeni-server.com 127.0.0.1
(ili obrnuto... znam da moze, zezao sam se tako sa yahoo-om)
podignes svoj server i napravis skriptu koja ce vratiti ono sto vraca super-zasticeni server
[Ovu poruku je menjao JaHvram dana 19.10.2005. u 23:44 GMT+1]
[ engineer @ 20.10.2005. 09:57 ] @
JaHvram je u pravu, svaka komunikacija sa nekim eksternim delom programa (bilo da je u pitanju dll, drugi program ili neki server) se vrlo lako otkriva, tako da zastita brzo pada u vodu.
Svojevremeno sam koristio HASP hardverske kljuceve koji se kace na paralelni port racunara, ali sam odustao kada sam video koliko se lako detektuje komunikacija programa sa hardware-om. Dzabe je HASP uredjaj savrseno napravljen (do danas niko nije uspeo da provali hardware HASP-a) kada sa komunikacija vaseg programa sa dll-om koji pristupa HASP-u lako otkriva i simulira. Haker treba samo da edituje / zameni dll tako da uvek vraca podatke kao kada je HASP prikacen na port.
[ Srki_82 @ 20.10.2005. 10:56 ] @
Pa, Passwd je to i rekao... nisu uspeli da crackuju nego su napravili nove servere za WoW :)
[ Nemanja Avramović @ 20.10.2005. 13:26 ] @
pa da, ali poenta je opet da je zastita na neki racin razbijena
[ Passwd @ 20.10.2005. 13:31 ] @
Znaci postoji recimo winamp i ne mogu ga krekovat, i naprave novi program da bude totalno isti winampu i kazu da su krekovali orginalni winamp 
[ engineer @ 20.10.2005. 13:50 ] @
Citat: Passwd: Znaci postoji recimo winamp i ne mogu ga krekovat, i naprave novi program da bude totalno isti winampu i kazu da su krekovali orginalni winamp :D Kakve ima veze sta je krekovano?!? Tebe bi, kao programera, trebalo da zanima da li je zastita razbijena i da li neko koristi tvoj program za dzabe, zar ne?
Btw1. primer sa winamp-om bas i nije odgovarajuci.
Btw2. winamp jeste krekovan - postoji keymaker.
[Ovu poruku je menjao engineer dana 20.10.2005. u 14:53 GMT+1]
[ broker @ 20.10.2005. 14:11 ] @
Citat: Passwd:
broker, lijepo si ti to sve opisao, ali takvu zastitu pravi kreker razbije za 2 minute
Pa ne bih bas rekao. Isprobano je u praksi i odlicno se pokazalo.
No rado bih cuo, na koji nacin bi ti takvu zastitu razbio za 2 minuta.
[ IcyImpact @ 20.10.2005. 14:55 ] @
Citat: Da, da, da...samo mi recite onda zasto ti vasi elite hakeri+crackeri nisu uspjeli krekovati officijalni server WoW-a vec su radili nove servere?
Bit ce i to slomljeno.
Citat: pa da, ali poenta je opet da je zastita na neki racin razbijena
Pa nije bas razbijena, nego zaobiđena. Ali gamere to ne zanima, oni se igraju.
[ Nemanja Avramović @ 20.10.2005. 17:23 ] @
Citat: Passwd: Znaci postoji recimo winamp i ne mogu ga krekovat, i naprave novi program da bude totalno isti winampu i kazu da su krekovali orginalni winamp 
ne, ja sam pricao o serveru koji proverava da li je s/n dobar (primer samo)... ti ne simuliras ceo serverski software nego izvalis da server npr. vraca "ok" ako je s/n dobar i onda ti podignes svoj server i namestis mu da vrati "ok" (naravno, bez ikakve provere)
Citat: Tebe bi, kao programera, trebalo da zanima da li je zastita razbijena i da li neko koristi tvoj program za dzabe, zar ne?
to je sushtina!
Citat: Pa nije bas razbijena, nego zaobiđena. Ali gamere to ne zanima, oni se igraju.
upravo to... znam da sam lose napisao, ali da - oni se igraju 
[ Passwd @ 20.10.2005. 18:31 ] @
Citat: JaHvramti ne simuliras ceo serverski software nego izvalis da server npr. vraca "ok" ako je s/n dobar i onda ti podignes svoj server i namestis mu da vrati "ok" (naravno, bez ikakve provere)
Ako server treba samo vratit "ok" onda se moze odmah krekovat klijent jer je server bespotreban, a sta ako server sve racuna, daje izgled klijentu (forme), ubacuje plug-inse, posluzuje DLL-ove potrebne da program radi, sve radi i daje upute a korisnik je povezan samo sa klijentom..znaci krekeri ne mogu odvojit program od glavnog servera jer program nece radit..a da bi dobio upute provjerava se key koji server provjeri..itd itd..
Citat: broker: Pa ne bih bas rekao. Isprobano je u praksi i odlicno se pokazalo.
No rado bih cuo, na koji nacin bi ti takvu zastitu razbio za 2 minuta.
Kreker vidi cijeli kod tvog programa (to znas vec), znaci njemu nista nije skriveno, samo treba gledat kod i pohvatat o cemu se radi 
Jedino nam preostaje da mu neki dio programa nije dostupan (da ga ne moze otvorit "ispod haube", a za to je jedino rjesenje koristenje web servera)
Citat: engineer: Kakve ima veze sta je krekovano?!? Tebe bi, kao programera, trebalo da zanima da li je zastita razbijena i da li neko koristi tvoj program za dzabe, zar ne?
Pa ako netko napravi cijeli novi server onda to vise nije moj program, on ga je sam napravio jer klijent samo povezuje korinika sa serverom...onda je to njegov program
Citat: engineer: .
Btw2. winamp jeste krekovan - postoji keymaker.
Winamp je bio samo primjer ako nisi shvatio...
[ Nemanja Avramović @ 20.10.2005. 20:17 ] @
pa ako server sve to radi naci cu alternativu  jer ce mi na dialup-u to malo sporije raditi 
[ marcha @ 20.10.2005. 22:16 ] @
Zastita od crackovanja po meni ima smisla za male projecte koji imaji pretenziju da postanu globalni proizvod. Mali="jednostavni za upotrebu" zato sto za njih nece trebati neka obuka korisniku. A i u tom slucaju pustite neku prvu free verziju u promet na netu pa ako ljudi pokazu interesovanje onda se bavite komercjalizacijom koja bi ukljucila i adekvatnu zastitu u narednoj verziji koja ce biti full ali "zasticena". Da ne bi dosli u situaciju da ste potrosili tonu vremena na zastitu proizvoda koji sam sebe stiti svojom nekomercijalnošću.
M$ zaposljava i debelo placa na hiljade ljudi da rade na zastiti, pa ipak u celom svetu redovno kruze nelegalne instalacije njihovih proizvoda pre nego se nadju na trzistu.
Prava zastita je ZASTITA AUTORSKIH PRAVA i INTELEKTUALNE SVOJINE, ali kako ces zastiti softver koji si razvio nelegalnim alatom?
Najezim se kad me potencijani korisnik mog programa ili neki poznanik pita "A kakvu si zastitu stavio?". Ja odgovaram iskreno : "Nikakvu". Zastita za nas koji se bavimo poslovnim sovtverom je nasa drzava u kojoj se zakoni menjaju bar tri puta godisnje tako da korisnik ako odluci da ti ne placa odrzavanje ili upgrade moze da se slika:)
BTW za razvoj koristim legalno kupljen D7. :)
Ako smatrate da imate vredan softver uclanite se u BSA i neka onda oni brinu umesto Vas.
http://www.bsa.org/serbiaandmontenegro/
[ Nemanja Avramović @ 21.10.2005. 16:15 ] @
na ovom BSA sajtu ne videh ishta korisno....
[ Vdjuric @ 25.10.2005. 03:05 ] @
[ broker @ 25.10.2005. 11:23 ] @
Citat: Passwd:
Citat: broker: Pa ne bih bas rekao. Isprobano je u praksi i odlicno se pokazalo.
No rado bih cuo, na koji nacin bi ti takvu zastitu razbio za 2 minuta.
Kreker vidi cijeli kod tvog programa (to znas vec), znaci njemu nista nije skriveno, samo treba gledat kod i pohvatat o cemu se radi
Jedino nam preostaje da mu neki dio programa nije dostupan (da ga ne moze otvorit "ispod haube", a za to je jedino rjesenje koristenje web servera)
Kreker uvek vidi kod programa, a onaj koji ne vidi mu i ne treba jer je njemu potreban samo onaj kod koji izvrsava zastiti a on mora da mu bude vidljiv.
no, kvaka dobrog pristupa u zastiti je u tome da shvatis da sve sto je jedan covek napravio drugi moze da razvali i da je besmisleno uopste se truditi da se napravi nerazvaljvia zastita. Cilj je narpaviti zastitu za cije razvaljianje je potrebno previse vremena i truda, tako da se krakeru ne isplati to da radi.
Dakle, stos je da napravis kod koji je tesko pratiti i razumeti, tako da kraker ne moze da se lako snadje i brzo pronadje ono sto mu treba. Eh kad bi to bilo tako, da svako ko ima pristup masinskom kodu moze lako da vidi sta aplikacija radi, onda ne bi programi bili tako skupi, jer bi tehnologije bilo lako kopirati.
Citat: Ako server treba samo vratit "ok" onda se moze odmah krekovat klijent jer je server bespotreban, a sta ako server sve racuna, daje izgled klijentu (forme), ubacuje plug-inse, posluzuje DLL-ove potrebne da program radi, sve radi i daje upute a korisnik je povezan samo sa klijentom..znaci krekeri ne mogu odvojit program od glavnog servera jer program nece radit..a da bi dobio upute provjerava se key koji server provjeri..itd itd..
Hajde da se malo spustis na zemlju. Ako napravis takvu viseslojnu apliakciju ona je i dalej apliakcija, pa ce krakeru biti dostupni svi nejgovi delovi, ukljucujuci i serveski (iz prostog razloga sto klijentu moras da isporucis i serverski deo, osim u slucaju da stvarno smatras da je normalno da korisniku prodas "browser", a da se apliakcija nalazi na tvom serveru)
[ 0.C00L @ 25.10.2005. 15:59 ] @
Moguce je napraviti takvu zastitu koja ce i pored cinjenice da se mora izvrsavati na kompjuteru krajnjeg korisnika biti izuzetno tesko "razbiti". Ovakva zastita se bazira na sledecem principu:
- Postoji jedan key file koji sadrzi sledece podatke:
+ Ime na koje glasi licenca
+ Seriski broj
+ Enkriptovan kljuc koji dekriptuje unutrasnje zasticene delove koda koji su dostupni samo u full verziji.
++ Kako radi ovaj enkriptovani kljuc? Ako npr. uzmemo obican string u formatu DWORD(tajni delimetar)DWORD(tajni delimetar)MD5HASH_seriskog_broja i verifikaciju tacnosti licence baziramo na proveri MD5HASH_seriskog_broja dok su ova dva ili vise DWORDova ne proveravaju! Zasto? Zato sto se ova dva DWORDa koriste samo za dekripciju internih zasticenih delova koda. Ako oni nisu ispravni program ce se jednostavno srusiti pri dekripciji bez ikakve provere ili obavestenja! Zasto nema obavestenja? Zato sto bi taj podatak omogucio bruteforce. Bez ovog podatka bruteforce je nemoguc posto postoji DWORD*DWORD kombinacija a bez parametra koji bi nam rekao da li je dekripcija ispravna moramo testirati svaki slucaj!
++ Enkriptovani kljuc se zasniva na stringu DWORD(tajni delimetar)DWORD(tajni delimetar)MD5HASH_seriskog_broja koji se enkriptuje pomocu 512-1024b RSA enkripcijom. Posto je ovo asimetricna enkripcija da bi iko napravi keygen potrebno je da nadje tajni kljuc i njegov koeficijen. Zasto koristiti tajne delimetre? Jer je onda nemoguce falsifikovati RSA enkriptovani string! Tajni delimetri se nigde ne proveravaju a ako se RSA enkriptovani string checksumuje i proverava i on nemoguce je napraviti keygen!
Da li ovo postoji ili je ovo samo teorisko lupetanje? Da ja sam napravio ovakav slican nacin zastite kojim sam zastitio moj program koji sam nakon toga izlozio krakerskom svetu (program je inace jedan od veoma dobrih inline patchera i koristi ga veliki broj crackera)... Od tog dana je proslo vise od sest meseci a program nije crackovan!
Postoji li slabost ovakvog sistema? Da naravno, kao i svaka idealna zastita i ova pati od bolesti cardovanja tacnih keyfajlova. Kada se jednom keyfajla docepa cracker moguce je saznanje o tacnom formatu tacnog seriskog broja (tajni delimetri) ali to ga idalje ostavlja na tome da mora da bruteforceuje RSA. Kada bi ova zastiti koristila i hardware id bila bi veoma tesko provaljiva cak i u slucaju kardovanja...
Ja sam rekao svoje, ko je razumeo, razumeo :) Mada nisam sve opisao posto postoji preplitanje izmedju podataka tako da je nemoguce manipulisanje vec postojece licence...
[Ovu poruku je menjao 0.C00L dana 25.10.2005. u 17:01 GMT+1]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|