begood Posted September 29, 2010 Report Posted September 29, 2010 M-am gandit sa incep cateva threaduri care sa aiba la baza exact asta : iti vine o idee (chiar si incompleta) de rezolvare a problemei in cauza, o spui.Tema zilei :Esti programator de soft, ai realizat un produs.Vrei sa-l vinzi. Ce sistem de protectie folosesti pentru a impiedica "crackerii" sa-l compromita ?Daca este compromis, cum faci sa ai expunere cat mai mare pe piata "neagra", pe scurt cum iti faci reclama eficienta bazandu-te pe piraterie ?Astept pareri. Va rog fara flame si abateri de la subiect. Quote
Guest Nemessis Posted September 30, 2010 Report Posted September 30, 2010 Protectie 100% eficienta nu exista, asta e clar pentru toata lumea. Cele mai eficiente metode anti-crack sunt cele bazate pe protectia DRM sau care citesc elemente hardware si permite rularea softului doar pe o singura masina. Am vazut chiar in cazul mIRC o chestie foarte interesanta care a stopat in mod vizibil crackuirea clientului. Orice modificare cat de mica adusa la mirc32.exe face executabilul inutilizabil.In cazul pirateriei probabil add-on-urile foarte utile dar cumva pe baza client/server side ar avea sanse de monetizare. La fel, odata cu instalarea unui add-on se poate face un re-check al softului pentru a revalida licenta, in caz contrar softul sa devina inutilizabil. Quote
phantomas90 Posted September 30, 2010 Report Posted September 30, 2010 pe masura ce se instaleaza softul in calculator calculeaza MD5(sau ma rog, ceva infailibil, ca am inteles ca MD5 poate avea un duplicat) la fiecare fisier.Executabilul sa nu fie gata compilat ci odata calculate acele sume sa fie introdusa o parte de cod inainte de compilare care sa le verifice integritatea. Dupa care se compileaza executabilul. Si normal si partea cu acele DRM (de la nemessis ). Nu stiu exact ce sunt dar in mare am inteles care e rolul lor. Quote
begood Posted September 30, 2010 Author Report Posted September 30, 2010 pe masura ce se instaleaza softul in calculator calculeaza MD5(sau ma rog, ceva infailibil, ca am inteles ca MD5 poate avea un duplicat) la fiecare fisier.Executabilul sa nu fie gata compilat ci odata calculate acele sume sa fie introdusa o parte de cod inainte de compilare care sa le verifice integritatea. Dupa care se compileaza executabilul. Si normal si partea cu acele DRM (de la nemessis ). Nu stiu exact ce sunt dar in mare am inteles care e rolul lor.Nu vad cum ai putea face asa ceva, avand in vedere ca md5-urile le faci la cod deja compilat. Sau n-am inteles eu bine ceva.Oricum, daca faci crc si le stochezi undeva tot in executabil, ele pot fi modificate ulterior pentru a permite modificarea executabilului -> nu-s deloc folositoare. Quote
mike_vio Posted September 30, 2010 Report Posted September 30, 2010 (edited) Sa citeasca din timp in timp serialul hardului si sa il trimita la o aplicatie client online care il verifica cu serialele deja stocate intr-o tabela. Daca nu e gasit primeste un cod ca sa nu mearga aplicatia. Serialele care sunt ok stocate in tabela, trebuie sa aiba o dovada a platii, ce e in plus sa nu mearga. Ma rog, are si neajunsuri dar serialul hardului nu se schimba oricat ar reinstala SO-uri noi.Sau sa isi verifice serialul cu ce e in tabela - in cazul in care e in spatele unui ruter. Edited September 30, 2010 by mike_vio Quote
wvw Posted September 30, 2010 Report Posted September 30, 2010 Vechi, dar buneprotec.htm: HOW TO PROTECT BETTER Quote
phantomas90 Posted September 30, 2010 Report Posted September 30, 2010 Nu vad cum ai putea face asa ceva, avand in vedere ca md5-urile le faci la cod deja compilat. Sau n-am inteles eu bine ceva.Pai ma gandeam sa fie exe programul care executa compilarea si sa ai geva de genu in el:"creeaza executabil.pas"write(in executabil.pas,"tot codul")compileaza(executabil.pas)[end]" iar programul care face acesti pasi sa fie tot in format exe. Dupa care se sterge executabil.pas ramanand executabil.exe.Acele MD5 sa se calculeze pentru celelalte fisiere (*.dll, *.dat).Verificarea ma gandisem la ceva de genu:begin program executabil.exevariable check de tip booleancheck:=false;if (md5(1.dll)="1284378nfd10")and(md5(2.dll)="1235fds'')and(bla bla bla) then check:=true;*****************************if check=true then <ruleaza> else write("acest program a fost compromis")****************************************[end]Acum partea asta cu if (md5(1.dll)="1284378nfd10")and(md5(2.dll)="1235fds'')and(bla bla bla) then check:=true; sa fie scrisa de catre executabilul care apeleaza compilatorul avand ca parametru executabil.pas adica codul sursa separat undeva dupa headerul de la codul sursa si inainte de inceperea rularii propriu-zise.Nu stiu daca m-am facut inteles, asa m-am gandit eu cand am vazut acest topic.Am incercat sa dau exemple de cod intr-un amestec de pascal cu pseudocod.O sa incerc sa fac un set de fisiere care sa faca chestia asta asa cum am gandit-o eu si sa vad daca merge. Quote
Vlachs Posted October 1, 2010 Report Posted October 1, 2010 astea cu sa folosesti server-ul lor nu prea e buna pentru mine ca potential client, adica daca imi cade netu eu nu pot sa lucrez sau il pun pe alt pc si ala nu are net atunci ce fac Quote
mike_vio Posted October 1, 2010 Report Posted October 1, 2010 Sunt softuri care merg doar online, plus ca fiind vorba de un soft care il vinzi ar trebui as asiguri si un suport online. Quote
crs12decoder Posted October 1, 2010 Report Posted October 1, 2010 atata timp cat programele vor exista pe localhost, e imposibil sa le controlezi. deci nu pot fi programe 100% necrackuibile. Decat daca sunt folosite cumva online, pe un server. Iar tu ca si client sa ai acces la el prin internet.Tot ceea ce exista la tine pe calculator e 100% modificabil mai usor sau mai greu.Asta pentru ca orice cerere a programului poate fi satisfacuta in mod artificial. Deci indiferent ce masura de securitate se ia asupra unui executabil, executabilul poate fi modificat in asa fel incat sa anuleze masura de securitate. Quote
phantomas90 Posted October 1, 2010 Report Posted October 1, 2010 atata timp cat programele vor exista pe localhost, e imposibil sa le controlezi.Doar la nivel de idee pornind de la virusi: Un executabil care se schimba la fiecare rulare. Adica l-ai deschis, si-a facut verificarile de securitate asupra validitatii licentei dupa care inainte de inchidere compileaza alt executabil si se autosterge. Asta daca iti faci singur compilatorul si il pui in acelasi *.exe cu executabilul [nu hexare].Schimband modul de apelare a resurselor( *.dll, *.db etc) nu se va putea crea un crack general valabil pentru fiecare produs vandut.Am citit undeva ca era odata un compilator delphi care adauga codul de virus la fiecare program creat. Iti creezi diferite metode de verificare a licentei si la fiecare compilare sa foloseasca cate una( ca si cand in interiorul programului ar fi niste checkbox-uri cu metode si bifeaza alta de fiecare data). Iar executabilul propriu zis sa faca diferite requesturi prin calculator, sa apeleze tot felul de variabile globale chiar daca nu le foloseste( si acestea tot la fel: altele de fiecare data). Mai poti de altfel sa schimbi pasul la care se face verificarea licentei( odata exact dupa deschidere, a doua oara inante de a salva datele etc). Astfel la reverse engineering nu o sa scoata aceleasi comenzi ASM.REPET: Nu prea ma pricep, doar mi-am dat cu parerea. Quote