Instrumente de NET confuzionare / strategie

voturi
146

Produsul meu are mai multe componente: ASP.NET, Windows Forms App și servicii Windows. 95% sau astfel de cod este scris în VB.NET.

Din motive de proprietate intelectuală, am nevoie pentru a umbri codul, iar până acum am fost folosind o versiune de dotfuscator care are o vechime de acum peste 5 ani. Mă gândesc că este timpul să se mute la un nou instrument de generare. Ceea ce caut este o listă de cerințe pe care ar trebui să ia în considerare atunci când caută un nou Obfuscator.

Ceea ce știu că ar trebui să caut până în prezent:

  • Serializare / De-serializarea . În soluția mea actuală, pursimplu spun instrumentul nu a umbri nici membriidateclasădeoarece durerea de a nu fi capabila încărca date carefost serializate anterior este pursimplu prea mare.
  • Integrarea cu Process Build
  • Lucrul cu ASP.NET . In trecut, am găsit această problematicăcauza schimbării .dll nume (multe ori trebuie câte una pe fiecare pagină) - care nu toate instrumentelemâner bine.
Întrebat 05/08/2008 la 17:20
sursa de către utilizator
În alte limbi...                            


31 răspunsuri

voturi
49

Am încercat un număr de obfuscators. Nici unul dintre ei lucrează pe un mare client app / server care utilizează Remoting. Problema este că, client și server parts unele DLL-uri, iar noi nu am găsit nici un Obfuscator care se poate descurca.

Am încercat DotFuscator Pro, SmartAssembly, XenoCode, Salamander, și mai multe aplicații de timp mici, ale căror nume scapă-mă.

Sincer, eu sunt convins de disimulare este un hack mare.

Chiar și problemele abordate nu este în întregime o problemă reală. Singurul lucru pe care într-adevăr nevoie pentru a proteja este siruri de caractere de conectare, codurile de activare, lucrurile sensibile de securitate, cum ar fi asta. Acest nonsens că o altă companie va inversați întreaga dumneavoastră și de a crea un codebase produs concurent de la ea este ceva de la cosmarul unui manager paranoic lui, nu realitatea.

Publicat 07/08/2008 la 19:15
sursa de către utilizator

voturi
39

Sunt „genunchi“ în acest moment, încercând să găsească o soluție bună. Aici sunt impresiile mele de până acum.

Xenocode - Am o licență veche pentru Xenocode2005 pe care am folosit pentru a utiliza pentru obfuscating NET mea 2.0 ansambluri. Ea a lucrat bine pe XP și a fost o soluție decentă. Proiectul meu actual este .net 3.5 și sunt pe Vista, sprijin mi -a spus să - i dea un du - te , dar versiunea 2005 chiar nu funcționează pe Vista (accidente) , așa că am și acum am să cumpere „PostBuild2008“ , la un preț gobsmacking de $ anul 1900. Acest lucru ar putea fi un instrument bun , dar nu am de gând să aflu. Prea scump.

Reactor.Net - Acesta este un punct de preț mult mai atractiv si a functionat bine pe meu autonomă Executeable. Modulul de licențiere a fost , de asemenea , frumos și mi - ar fi salvat o grămadă de efort. Din păcate, lipsește un element cheie și care este posibilitatea de a exclude lucruri de confuzia mintală. Acest lucru face imposibilă pentru a obține rezultatul am nevoie (Merge mai multe ansambluri împreună, umbri unii, nu-umbri altele).

SmartAssembly - Am descarcat Eval pentru acest lucru și a mers impecabil. Am fost capabil să realizeze tot ceea ce am vrut și interfața a fost prima clasă. Punctul Pretul este încă un pic cam piperat.

Dotfuscator Pro - Nu s -a putut găsi pe site - ul de pret. În prezent , în discuții pentru a obține o ofertă de preț. Sună de rău augur.

Confuzor - un proiect open source , care funcționează destul de bine (pentru a confunda PPL, așa cum sugerează și numele). https://confuser.codeplex.com/
(adăugat de jgauffin)

Notă: ConfuserEx este relatărilor , „rupt“ în conformitate cu Numărul # 498 pe repo lor GitHub.

Publicat 11/05/2009 la 07:04
sursa de către utilizator

voturi
39

Înapoi cu .Net 1.1 disimulare a fost esențială: Codul decompilării a fost ușor, și ai putea merge de la asamblare, la IL, la C # cod și l-au compilat din nou, cu foarte puțin efort.

Acum, cu .Net 3.5 Nu sunt deloc sigur. Încercați decompiling un ansamblu de 3.5; ceea ce obțineți este un drum lung lung de la compilarea.

Adăugați optimizările de la 3,5 (mult mai bine decât 1.1) și modul în care tipurile anonime, delegați și așa mai departe sunt tratate de reflexie (ele sunt un coșmar pentru recompilați). Adăugați expresii lambda, compilator „magic“ cum ar fi LINQ-sintaxă și var, și C # 2 funcții cum ar fi yield(ceea ce duce la noi clase cu nume imposibil de citit). Codul dvs. decompiled sfarseste un drum lung lung de la compilable.

O echipa de profesionisti cu o mulțime de timp, ar putea încă inversați-l înapoi din nou, dar același lucru este valabil și pentru orice cod ascuns. Ce cod au ieșit din care ar fi unmaintainable și foarte probabil să fie foarte buggy.

Mi-ar recomanda-cheie semnarea ansambluri (ceea ce înseamnă, dacă hackerii pot recompila unul trebuie să recompilați toate), dar nu cred că disimulare merită.

Publicat 12/08/2008 la 13:19
sursa de către utilizator

voturi
21

Dacă vă căutați pentru unul gratuit ați putea încerca DotObfuscator Community Edition , care vine cu Visual Studio sau Eazfuscator.NET .


Începând cu 29 iunie 2012 , Eazfuscator.NET este acum comercial. Ultima versiune disponibilă gratuită este 3.3.

Publicat 05/08/2008 la 17:30
sursa de către utilizator

voturi
18

Am fost folosind smartassembly. Practic, alegeți un DLL și returnează-l disimulat. Se pare să funcționeze bine și am avut nici o problema pana acum. Foarte, foarte usor de utilizat.

Publicat 05/08/2008 la 17:21
sursa de către utilizator

voturi
10

Am încercat aproape fiecare ofuscarea pe piață și SmartAssembly este cel mai bun în opinia mea.

Publicat 07/08/2008 la 11:44
sursa de către utilizator

voturi
8

Am fost , de asemenea , folosind SmartAssembly. Am constatat că Ezrinz Net Reactor mult mai bine pentru mine pe NET. Acesta obfuscates, susține Mono, fuzionează ansambluri și , de asemenea , are , de asemenea , un modul de licențiere foarte frumos pentru a crea versiune de încercare sau a conecta licența la o anumită mașină (foarte ușor de implementat). Pretul este , de asemenea , foarte competitivă și atunci când am avut nevoie de sprijin în cazul în care acestea rapid. Eziriz

Doar să fie clar că sunt doar un custumer care îi place produsul și nu în nici un fel legate de companie.

Publicat 22/08/2008 la 18:41
sursa de către utilizator

voturi
7

Răspunsul scurt este că nu poți.

Există diverse instrumente în jurul valorii de care se va face mai greu pentru cineva să citească codul - dintre care unele au fost semnalate de către alte răspunsuri.

Cu toate acestea, toate acestea fac este de a face mai greu de citit - acestea cresc cantitatea de efort necesară, care este tot. Adesea, acest lucru este suficient pentru a descuraja cititorii ocazionali, dar cineva care este hotărât să sape în codul va fi întotdeauna în măsură să facă acest lucru.

Publicat 16/07/2009 la 22:45
sursa de către utilizator

voturi
6

Avem o aplicatie cu mai multe nivele, cu o asp.net și interfață Winform care suportă, de asemenea, Remoting. Am avut probleme cu folosind orice ofuscarea, cu excepția tipului de criptare care generează un încărcător care poate fi problematică în tot felul de moduri neașteptate și pur și simplu nu-l merită, în opinia mea. De fapt, sfatul meu ar fi mai mult de-a lungul liniilor de „Evitați criptarea obfuscators de tip încărcător, cum ar fi ciuma“. :)

În experiența mea orice ofuscarea va lucra bine cu orice aspect al .net, inclusiv asp.net și Remoting, trebuie doar pentru a deveni intim cu setările și să învețe cât de departe poți împinge în ce zone ale codului. Și ia timp pentru a încerca tehnici de inginerie inversă asupra a ceea ce a obține și a vedea cum funcționează cu diferitele setări.

Am folosit mai multe de-a lungul anilor în aplicațiile noastre comerciale și decontate pe condimente ofuscarea din 9rays.net, deoarece prețul este corect, ea face treaba și au un sprijin bun, deși am într-adevăr nu au nevoie de sprijin în anii mai, dar să fiu sincer nu cred că într-adevăr probleme pe care le utilizați ofuscarea, problemele si curba de invatare sunt toate la fel, dacă doriți să-l lucreze corect cu remoting și asp.net.

După cum au menționat alții tot ce fac cu adevărat este echivalentul unui lacăt, păstrând altfel de oameni onești afară și sau de a face mai greu pentru a recompilați pur și simplu o aplicație.

Licențiere este, de obicei zona-cheie pentru majoritatea oamenilor și ar trebui să fie cu siguranță, folosind un fel de sistem certificat semnat digital de licențiere, oricum. Cea mai mare pierdere va veni de la partajarea casual licențe în cazul în care nu aveți un sistem inteligent în loc, oamenii care rupe sistemul de licențiere nu au fost niciodată de gând să cumpere în primul rând.

Este foarte ușor de a lua acest prea departe și au un impact negativ asupra clienților dumneavoastră și afacerea dvs., face ceea ce este simplu și rezonabil și apoi nu vă faceți griji despre asta.

Publicat 16/11/2008 la 20:57
sursa de către utilizator

voturi
5

Crypto Obfuscator abordează toate preocupările și scenariile dumneavoastră. Aceasta :

  1. exclude în mod automat tipuri / membri din disimulare bazate pe reguli. Tipuri de serializate / câmpurile sunt una dintre ele.
  2. Acesta poate fi integrat în procesul de construire folosind MSBuild.
  3. Sprijină proiectele ASP.Net.
Publicat 09/10/2009 la 10:42
sursa de către utilizator

voturi
5

În ultimele două zile am fost experimente cu Dotfuscator Community Edition avansat (un download gratuit după înregistrarea CE de bază, care vine la pachet cu Visual Studio).

Cred că motivul pentru care mai mulți oameni nu folosesc disimulare ca opțiune implicită este că este un hassle grav în comparație cu riscul. Pe proiecte de testare mai mici, am putut obține codul disimulat care rulează cu o mulțime de efort. Implementarea unui simplu proiect prin intermediul ClickOnce a fost supărătoare, dar realizabil după semnarea manual manifestele cu Mage. Singura problemă era că eroare urmelor din stivă și s-au întors disimulat CE nu are un deobfuscator sau clarificator ambalate.

Am încercat să umbri un proiect real, care este VSTO cu sediul în Excel, cu integrarea Virtual Earth, o mulțime de apeluri Webservice și un container și IOC mulțime de reflecție. A fost imposibil.

În cazul în care este într-adevăr disimulare o cerință critică, ar trebui să proiectați aplicația cu asta în minte de la început și testând disimulat construiește pe măsură ce avansați. În caz contrar, dacă este un proiect destul de complex, vei termina cu o cantitate serioasă de durere.

Publicat 04/02/2009 la 23:40
sursa de către utilizator

voturi
3

Am găsit Agile.Net oferă o protecție destul de bună pentru asamblare dvs. Net deoarece oferă nu numai disimulare , ci și de criptare. Descărcați o pistă liberă.
http://secureteam.net/NET-Code-Protection.aspx http://secureteam.net/downloads.aspx

Publicat 03/09/2013 la 16:26
sursa de către utilizator

voturi
3

Evitați Reactor. Este complet inutil (si da, am plătit pentru o licență). Xenocode a fost cel mai bun am întâlnit și a cumpărat o licență pentru prea mult. Suportul a fost foarte bun, dar nu am nevoie de ea de mult ca ea doar a lucrat. Am testat fiecare ofuscarea am putut găsi și concluzia mea este că xenocode a fost de departe cel mai robust și a făcut cel mai bun loc de muncă (de asemenea, posibilitatea de a posta procesul de exe .NET la un exe nativ care nu am văzut nicăieri altundeva.).

Există două diferențe principale între reactor și xenocode. Prima dintre ele este faptul că Xenocode chiar funcționează. Al doilea este că viteza de execuție a ansamblurilor dumneavoastră nu este diferită. Cu reactor a fost de aproximativ 6 milioane de ori mai lent. Am, de asemenea, impresia că reactorul a fost o operațiune de un singur om.

Publicat 04/05/2011 la 10:43
sursa de către utilizator

voturi
3

Ai putea folosi "Dotfuscator Community Edition" - este vorba în mod implicit în Visual Studio 2008 Professional. Puteți citi despre el la:

http://msdn.microsoft.com/en-us/library/ms227240%28VS.80%29.aspx
http://www.preemptive.com/dotfuscator.html

Versiunea „Professional“ a produsului costa bani, dar este mai bine.

Chiar ai nevoie de disimulat codul? De obicei, există foarte puțin în neregulă cu cererea dumneavoastră fiind decompiled, cu excepția cazului în care este utilizat în scopuri de securitate. Dacă sunteți îngrijorat de oameni „fura“ codul, nu fi; marea majoritate a oamenilor se uită la codul va fi în scop de învățare. Oricum, nu există nici o strategie eficientă în totalitate de disimulare pentru NET - cineva cu suficient de calificare va fi întotdeauna în măsură să decompila / modificare pe care o aplicație.

Publicat 16/07/2009 la 22:47
sursa de către utilizator

voturi
3

N-am avut probleme cu Smartassembly.

Publicat 16/09/2008 la 12:12
sursa de către utilizator

voturi
3

Am încercat recent de conducte de ieșire a unui ofuscarea liber în altă ofuscarea liber - și anume Dotfuscator CE și noul ofuscarea Babel pe CodePlex. Mai multe detalii pe blogul meu .

În ceea ce privește serializare, m-am mutat acest cod într-un alt DLL și incluse ca în proiect. Am motivat că nu au existat secrete acolo care nu sunt în XML, oricum, așa că nu avea nevoie de disimulare. Dacă există vreun cod serios în aceste clase, folosind clase parțiale în ansamblul principal ar trebui să-l acopere.

Publicat 11/09/2008 la 12:53
sursa de către utilizator

voturi
3

Ar trebui să folosiți ceea ce este mai ieftin și cel mai bine cunoscut pentru platforma si numesc o zi. Confuzie de limbaje de nivel înalt este o problemă grea, deoarece VM fluxuri OpCode nu suferă cele mai mari două probleme fluxuri OpCode native face: funcția de identificare / metodă și registru aliasing.

Ce trebuie să știți despre bytecode inversarea este faptul că este deja o practică standard pentru testeri de securitate pentru a examina codul X86 drept și pentru a găsi vulnerabilități în ea. În X86 prime, nu pot neapărat găsi chiar și funcții valide, să nu mai vorbim urmări o variabilă locală pe parcursul unui apel de funcție. În aproape nici un caz face inversoare de cod nativ au acces la funcții și nume de variabile --- excepția cazului în care acestea sunt revizuirea codului Microsoft, pentru care MSFT prevede în mod util aceste informații către public.

„Dotfuscation“ funcționează în principal prin funcția și nume de variabile de codare. Este, probabil, mai bine să facă acest lucru decât să publice cod cu informații la nivel de depanare, în cazul în care reflectorul este literalmente renunțarea la codul sursă. Dar tot ceea ce faci dincolo de acest lucru este probabil să intre în diminuarea revine.

Publicat 10/09/2008 la 22:38
sursa de către utilizator

voturi
2

Iată un document de la Microsoft ei înșiși. Sper că vă ajută ..., este din 2003, dar ar putea fi totuși relevant.

Publicat 16/07/2009 la 22:38
sursa de către utilizator

voturi
2

Am fost obfuscating cod în aceeași aplicație, deoarece Net 1, și a fost o mare durere de cap dintr-o perspectivă de întreținere. După cum ați menționat, problema serializare poate fi evitată, dar este foarte ușor de a face o greșeală și umbri ceva ce nu a vrut disimulat. Este ușor pentru a rupe construi sau pentru a schimba modelul de disimulare și să nu fie în măsură să deschidă fișiere vechi. În plus, poate fi dificil pentru a afla ce a mers prost și unde.

Alegerea noastră a fost Xenocode, și au fost eu pentru a face alegerea din nou, astăzi, aș prefera să nu umbri codul sau utilizați Dotfuscator.

Publicat 21/08/2008 la 21:31
sursa de către utilizator

voturi
1

Există o versiune mai bună open source numit Obfuscar. Pare să funcționeze bine. Tipuri, proprietăți, domenii, metode pot fi excluse. Originalul este aici: https://code.google.com/p/obfuscar/ , dar din moment ce nu pare să fie mai actualizat, cineva l bifurcat aici: https://obfuscar.codeplex.com/

Publicat 19/12/2013 la 05:24
sursa de către utilizator

voturi
1

A trebuit să folosesc o protecție disimulare / resursă în ultimele rpoject mea și a găsit Crypto Obfuscator ca un frumos și simplu de utilizat instrument. Problema serializarea este doar o chestiune de setări în acest instrument.

Publicat 22/04/2011 la 12:18
sursa de către utilizator

voturi
1

calea liberă ar fi utilizarea dotfuscator din cadrul Visual Studio, altfel v - ar trebui să iasă și să cumpere un ofuscarea ca Postbuild ( http://www.xenocode.com/Landing/Obfuscation.aspx )

Publicat 16/07/2009 la 22:38
sursa de către utilizator

voturi
1

Totul depinde de limbajul de programare, pe care îl utilizați. Citiți articolul: ascuns al codului

Publicat 16/07/2009 la 22:31
sursa de către utilizator

voturi
1

Folosim SmartAssembly pe clientul nostru ferestre. Funcționează foarte bine.

Adaugă unele probleme suplimentare prea. Imprimarea numele dvs. de clasă în fișierele jurnal / excepții trebuie să fie de-disimulat. Și, desigur, nu se poate crea o clasă de numele său. Deci, este o idee bună să aruncăm o privire la client și să vedeți problemele pe care le puteți obține de obfuscating.

Publicat 04/04/2009 la 12:28
sursa de către utilizator

voturi
0

SmartAssembly este mare, am fost folosit în cele mai multe dintre proiectele mele

Publicat 01/12/2010 la 05:49
sursa de către utilizator

voturi
0

De asemenea , am folosi smartassembly. Cu toate acestea, nu știu cum funcționează pentru o aplicație web. Cu toate acestea, aș dori să subliniez faptul că , dacă aplicația utilizează o protecție de tip shareware, asigurați - vă că nu verifică o licență cu un profit boolean. este prea ușor de octet fisura. http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx

Publicat 04/04/2009 la 11:53
sursa de către utilizator

voturi
0

Ați putea dori , de asemenea , să se uite la noi tehnologii de protecție , cum ar fi codul Metaforic și ViLabs și a noilor tehnologii de protecție împotriva copierii de software , cum ar fi ByteShield . Dezvaluirea: Eu lucrez pentru ByteShield.

Publicat 03/01/2009 la 19:56
sursa de către utilizator

voturi
-1

Obfuscating nu este o protecție reală.

Dacă aveți un fișier .NET Exe există o mult mai bună soluție.

Eu folosesc Themida și pot spune că funcționează foarte bine.

Singurul dezavantaj al Themida este că nu poate proteja .NET DLL-uri. (Acesta protejează, de asemenea, cod C ++ în exe și DLL-uri)

Themida este de departe mai ieftin decât obfuscators menționat aici și este cel mai bun anti piraterie de protecție de pe piață. Se creează au fost executați sunt părți critice ale codului o mașină virtuală și se execută mai multe fire care detectează manipularea sau punctele de întrerupere stabilite de un biscuit. Acesta convertește Exe .NET în ceva care Reflectorul nu chiar mai recunoaște ca un ansamblu .NET.

Vă rugăm să citiți descrierea detaliată de pe site - ul lor: http://www.oreans.com/themida_features.php

Publicat 06/03/2014 la 04:03
sursa de către utilizator

voturi
-1

Am încercat versiunea demo Eziriz .... mi-a plăcut. Dar niciodată nu a adus software-ul.

Publicat 04/09/2009 la 04:21
sursa de către utilizator

voturi
-2

Încercați să utilizați acest serviciu http://morpher.com/

Am folosit-o pentru un singur proiect.

Publicat 27/12/2013 la 11:22
sursa de către utilizator

voturi
-2

Am încercat un produs numit scotocire și face o treabă bună, oferindu-vă un anumit control ... Deși nu are multe lucruri pe care le oferă Eziriz dar prețul pentru scotocire este prea bun ...

Publicat 06/09/2013 la 18:27
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more