Jump to content
begood

[brainstorming] Soft de vanzare

Recommended Posts

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.

Link to comment
Share on other sites

Guest Nemessis

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by mike_vio
Link to comment
Share on other sites

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.exe

variable check de tip boolean

check:=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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...