cobradera Posted April 30, 2010 Report Posted April 30, 2010 Salut! Am de facut o aplicatie in C# si ma gandesc la metode de a o proteja sa nu fie redistribuita pentru ca vreau sa ruleze doar pe calculatoarele unde este instalata. Calculatoarele sunt conectate in retea toate si au un workgroup definit. O varianta la care m-am gandit ar fi sa mi se detecteze workgroup-ul si daca nu e exact cum e scris in program sa nu ruleze aplicatia. Ce sugestii aveti? Quote
CyberWolf08 Posted May 1, 2010 Report Posted May 1, 2010 Poti sa incerci sa faci un master server care sa contina o lista cu mac-urile calculatoarelor pe care poate sa ruleze aplicatia si apoi consulti acea lista. De preferinta ca serverul respectiv sa fie pe intranet si lista sa fie criptata.Oricum daca cineva chiar vrea sa ruleze aplicatia o sa poata... Quote
cobradera Posted May 1, 2010 Author Report Posted May 1, 2010 Este si asta o idee. Calculatoarele sunt toate intr-o retea si exista si un server pe care va fi gazduita baza de date a aplicatiei. As putea sa fac o tabela cu mac-urile calculatoarelor si sa le verific. O alta idee la care m-am gandit ar fi sa am ceva de genul:<br /> un generator de licenta(cod de genul xxxx-xyxz-xxxy-xxxx sau alte variatii), apoi codul este introdus in program si programul trimite date(gen nume firma, workgroup, mac, codul, etc.) la un server pentru activare si dupa activare sa nu mai poata fi folosita pe alt calculator.<br /> Toata treaba este ca nu am reusit sa iau workgroup-ul calculatorului meu in C#. Am reusit doar sa iau numele calculatorului si al userului sa le afisez intr-un textbox.Ceva idei cum as putea sa afisez si workgroup-ul? Quote
loki Posted May 1, 2010 Report Posted May 1, 2010 Pune in primul rand in calcul urmatoarea varianta: daca userul isi reinstaleaza windows, aplicatia va mai functiona?- daca vrei sa functioneze nu lua in calcul workgroupul. Poate unii nici nu il seteaza, il lasa "workgroup", nu e important. Singurele date de luat in calcul sunt componentele: mac, procesor, plm. Daca obtii mac-ul ii mai lipesti un sir si ii storci un md5.Uite ce poti lua in calcul: Volume Serial Number de pe hard disc. Se genereaza random in momentul formatarii (il vezi la comanda "dir"). Mi se pare ca nu e modificabil.- daca vrei sa nu functioneze dupa ce reinstalezi windows poti sa te legi de orice din calculator, poate chiar si de serialul windows. Quote
CyberWolf08 Posted May 1, 2010 Report Posted May 1, 2010 (edited) Dupa vreo 10 minute am reusit sa modific niste cod de pe net sa imi returneze numele workgroupului. Am folosit NetGetJoinInformation. Codu e aici Edited May 1, 2010 by CyberWolf08 Quote
cobradera Posted May 1, 2010 Author Report Posted May 1, 2010 Dupa vreo 10 minute am reusit sa modific niste cod de pe net sa imi returneze numele workgroupului. Am folosit NetGetJoinInformation. Codu e aiciMultumesc CyberWolf08. Am pus codul acum l-am rulat si imi afiseaza ORKGROUP. Il testez mai tarziu sa vad de ce afiseaza asa. Quote
CyberWolf08 Posted May 1, 2010 Report Posted May 1, 2010 Multumesc CyberWolf08. Am pus codul acum l-am rulat si imi afiseaza ORKGROUP. Il testez mai tarziu sa vad de ce afiseaza asa.Greseala mea. Eliberam niste memorie degeaba check this out. Quote
cobradera Posted May 1, 2010 Author Report Posted May 1, 2010 (edited) Greseala mea. Eliberam niste memorie degeaba check this out.Multumesc, am testat codul si merge. Eu ma gandesc sa folosesc workgroup-ul si altceva(numele calculatorului, mac-ul, sau sa vad cum fac ceva de genul serial number pentru program) si sa il activez pe un server sau in alt fel ca sa nu mai poata fi folosit in alta parte.Acum daca tot te-ai complicat sa gasesti o solutie pentru asta, tu cum ai proteja un program?<Cred ca as putea sa folosesc MAC-ul sau ID hardului sau al placii de baza si cu workgroup-ul> Edited May 2, 2010 by cobradera alternativa Quote