.NET verduistering gereedschappen / strategie

stemmen
146

Mijn product heeft verschillende onderdelen: ASP.NET, Windows Forms App en Windows Service. 95% of zo van de code wordt geschreven in VB.NET.

Voor de Intellectuele redenen Property, moet ik de code verduisteren, en tot nu toe heb ik met behulp van een versie van dotfuscator die nu meer dan 5 jaar oud. Ik denk dat het tijd is om te verhuizen naar een nieuwe generatie tool. Wat ik ben op zoek naar een lijst van eisen die ik zou moeten overwegen bij het zoeken naar een nieuwe obfuscator.

Wat ik weet dat ik zou moeten zoeken tot nu toe:

  • Serialization / De-serialisatie . In mijn huidige oplossing, ik zeg gewoon de functie niet op elke categorie gegevens leden verduisteren, omdat de pijn van het niet in staat om gegevens die eerder in series te laden is gewoon te groot.
  • Integratie met bouwproces
  • Werken met ASP.NET . In het verleden heb ik dit probleem gevonden als gevolg van veranderende .dll namen (heb je vaak één per pagina) - die niet alle instrumenten goed te behandelen.
De vraag is gesteld op 05/08/2008 om 17:20
bron van user
In andere talen...                            


31 antwoorden

stemmen
49

We hebben een aantal obfuscators geprobeerd. Geen van hen werken op een groot client / server applicatie die remoting gebruikt. Probleem is dat de client en server delen een aantal DLL's, en we hebben niet gevonden een obfuscator dat het aankan.

We hebben DotFuscator Pro, SmartAssembly, Xenocode, Salamander, en een aantal kleine tijd apps wier namen ontsnappen me geprobeerd.

Eerlijk gezegd, ik ben ervan overtuigd verduistering is een grote hack.

Zelfs de problemen richt zij is niet helemaal een reëel probleem. Het enige wat je echt nodig hebt om te beschermen is connection strings, activeringscodes, beveiligingsgevoelige dat soort dingen. Deze onzin dat een ander bedrijf gaat reverse-engineeren je hele codebase en het creëren van een concurrerend product uit het is iets uit een nachtmerrie voor paranoïde manager, niet de werkelijkheid.

antwoordde op 07/08/2008 om 19:15
bron van user

stemmen
39

Ik ben 'Knee Deep' in dit nu, in een poging om een ​​goede oplossing te vinden. Hier zijn mijn indrukken tot nu toe.

Xenocode - Ik heb een oude licentie voor Xenocode2005 die ik heb gebruikt om te gebruiken voor het verdoezelen van mijn NET 2.0 assemblages. Het werkte prima op XP en was een goede oplossing. Mijn huidige project is .NET 3.5 en ik ben op Vista, ondersteuning vertelde me om het te proberen, maar de 2005-versie niet eens werken op Vista (ongevallen), dus ik en nu moet ik 'PostBuild2008' kopen tegen een gobsmacking prijs van $ 1900. Dit kan een goed hulpmiddel zijn, maar ik ben niet van plan om uit te vinden. Te duur.

Reactor.Net - Dit is een veel meer aantrekkelijke prijs en het werkte prima op mijn Standalone executeable. De Licensing module was ook leuk en zou me hebben gered een hoop inspanning. Helaas, het is het missen van een belangrijke functie en dat is de mogelijkheid om dingen te sluiten van de verduistering. Dit maakt het onmogelijk om het resultaat dat ik nodig had (samenvoegen van meerdere vergaderingen samen, verduisteren sommige, niet-verdoezelen anderen) te bereiken.

SmartAssembly - Ik downloadde de Eval voor dit en het werkte perfect. Ik was in staat om alles wat ik wilde bereiken en de interface was eerste klasse. Prijs is nog steeds een beetje fors.

Dotfuscator Pro - Kan de prijs niet vinden op de website. Momenteel in gesprek om een offerte te krijgen. Dat klinkt onheilspellend.

Confuser - een open source project dat werkt heel goed (voor ppl te verwarren, net zoals de naam al aangeeft). https://confuser.codeplex.com/
(toegevoegd door jgauffin)

Opmerking: ConfuserEx is naar verluidt "gebroken", aldus de kwestie # 498 op hun GitHub repo.

antwoordde op 11/05/2009 om 07:04
bron van user

stemmen
39

Terug met .Net 1.1 verduistering was essentieel: decompiling code was eenvoudig, en je kon gaan van vergadering, IL, naar C # code en hebben het opnieuw gecompileerd met zeer weinig inspanning.

Nu met .Net 3.5 Ik ben er niet helemaal zeker van. Probeer decompiling een 3,5 vergadering; wat je krijgt is een lange lange weg van het samenstellen.

Voeg de optimalisaties van 3,5 (veel beter dan 1.1) en de manier waarop anonieme types, afgevaardigden en zo verder worden behandeld door reflectie (ze zijn een nachtmerrie om opnieuw te compileren). Voeg lambda-expressies, compiler 'magic' like Linq-syntaxis en var, en C # 2 functies zoals yield(wat resulteert in nieuwe klassen met onleesbare namen). Uw gedecompileerd code eindigt een lange lange weg van compileerbaar.

Een professioneel team met veel tijd kon nog reverse engineering het weer terug, maar dan is het hetzelfde geldt voor elke versluierde code. Welke code ze uit die zou unmaintainable en zeer waarschijnlijk erg buggy zijn.

Ik zou aanraden key-ondertekenen van uw assemblages (wat betekent dat als hackers die ze moeten allemaal opnieuw te compileren kan opnieuw compileren), maar ik denk niet dat verwarring is de moeite waard.

antwoordde op 12/08/2008 om 13:19
bron van user

stemmen
21

Als je op zoek naar een gratis zou je kunnen proberen DotObfuscator Community Edition die wordt geleverd met Visual Studio of Eazfuscator.NET .


Sinds 29 juni 2012 , Eazfuscator.NET is nu commercieel. De laatste gratis beschikbare versie is 3.3.

antwoordde op 05/08/2008 om 17:30
bron van user

stemmen
18

Ik gebruik smartassembly. Kortom, kies je een dll en stuurt het terug versluierd. Het lijkt goed te werken en ik heb geen problemen tot nu toe. Heel, heel gemakkelijk te gebruiken.

antwoordde op 05/08/2008 om 17:21
bron van user

stemmen
10

Ik heb geprobeerd bijna elke obfuscator op de markt en SmartAssembly is de beste in mijn mening.

antwoordde op 07/08/2008 om 11:44
bron van user

stemmen
8

Ik heb ook met behulp van SmartAssembly. Ik vond dat Ezrinz .Net Reactor veel beter voor mij op .NET-applicaties. Het verduistert, mono ondersteunen, fuseert assemblages en het heeft ook ook een heel mooi licentie-module om proefversie te maken of de licentie te koppelen aan een bepaalde machine (zeer eenvoudig te implementeren). De prijs is ook zeer concurrerend en toen ik ondersteuning die nodig is ze waar snel. Eziriz

Voor alle duidelijkheid ik ben gewoon een custumer die het product leuk vindt en op geen enkele wijze in verband met het bedrijf.

antwoordde op 22/08/2008 om 18:41
bron van user

stemmen
7

Het korte antwoord is dat je niet kunt.

Er zijn verschillende instrumenten rond, dat maakt het moeilijker voor iemand om uw code te lezen - waarvan sommige zijn opgemerkt door andere antwoorden.

Echter, al deze doen is het moeilijker te lezen - ze verhoging van het bedrag van de inspanning die nodig is, dat is alles. Vaak is dit genoeg om toevallige lezers af te schrikken, maar iemand die vastbesloten is om te graven in uw code zal altijd in staat zijn om dit te doen.

antwoordde op 16/07/2009 om 22:45
bron van user

stemmen
6

We hebben een multi-tier applicatie met een asp.net en winform interface die ook ondersteunt remoting. Ik heb geen problemen gehad met het gebruik van een obfuscator met uitzondering van de encryptie-type dat een lader die problematisch in allerlei onverwachte manieren en gewoon niet de moeite waard in mijn opinie kan worden gegenereerd. Eigenlijk zou mijn advies meer in de trant van "Vermijd het versleutelen van het type lader obfuscators als de pest" te zijn. :)

In mijn ervaring zal elke obfuscator prima werken met elk aspect van .net met inbegrip van asp.net en remoting, je hoeft alleen te intiem met de instellingen en leren hoe ver je het kan duwen in welke gebieden van je code. En neem de tijd om reverse engineering te proberen op wat je krijgt en zien hoe het werkt met de verschillende instellingen.

We gebruikten een aantal door de jaren heen in onze commerciële apps en vestigden zich op Spices obfuscator van 9rays.net omdat de prijs goed is, het doet het werk en ze hebben goede ondersteuning hoewel we echt hebben niet de steun in jaren niet meer nodig, maar om eerlijk te zijn ik denk niet dat het echt zaken die obfuscator u gebruikt, de problemen en de leercurve zijn allemaal hetzelfde als je wilt hebben dat alles goed werkt met remoting en asp.net.

Zoals anderen al hebben gezegd alles wat je eigenlijk doet is het equivalent van een hangslot, waardoor anders eerlijke mensen naar buiten en of waardoor het moeilijker wordt om gewoon een app opnieuw te compileren.

Licensing is meestal de belangrijkste gebied voor de meeste mensen en je moet zeker worden met behulp van een soort van digitaal ondertekend certificaat voor het verlenen van vergunningen toch. Uw grootste verlies zal komen van casual delen van licenties als je niet beschikt over een slim systeem in de plaats, werden de mensen die het vergunningenstelsel te breken nooit te kopen in de eerste plaats.

Het is heel gemakkelijk om dit te ver te nemen en hebben een negatieve invloed op uw klanten en uw bedrijf, doe wat eenvoudige en redelijk is en dan maak je geen zorgen over.

antwoordde op 16/11/2008 om 20:57
bron van user

stemmen
5

Crypto Obfuscator pakken al uw zorgen en scenario's. It:

  1. Uitsluit types / leden uit verduistering op basis van regels. Serialized types / velden zijn een van hen.
  2. Het kan worden geïntegreerd in het bouwproces met behulp van MSBuild.
  3. Ondersteunt ASP.Net projecten.
antwoordde op 09/10/2009 om 10:42
bron van user

stemmen
5

In de afgelopen twee dagen heb ik geëxperimenteerd met Dotfuscator Community Edition gevorderd (gratis te downloaden na het registreren van de basis CE die meegeleverd wordt met Visual Studio).

Ik denk dat de reden meer mensen niet verduistering te gebruiken als een standaard optie is dat het een serieuze gedoe in vergelijking met het risico. Op kleinere testprojecten kon ik de obscure code die wordt uitgevoerd met een veel moeite krijgen. De implementatie van een eenvoudig project via ClickOnce was lastig, maar haalbaar nadat de manifesten handmatig aanmelden bij mage. Het enige probleem was dat bij een fout de stack trace kwam terug versluierd en de CE beschikt niet over een Deobfuscator of nabezinker verpakt.

Ik heb geprobeerd om een ​​echt project dat VSTO basis in Excel verduisteren, met Virtual Earth integratie, veel webservice oproepen en een IOC container en veel van reflectie. Het was onmogelijk.

Als verduistering is echt een kritische eis, moet u uw applicatie met dat in het achterhoofd te ontwerpen vanaf het begin, het testen van de versluierd bouwt als je vooruitgang. Anders, als het een vrij complex project, je gaat eindigen met een serieuze hoeveelheid pijn.

antwoordde op 04/02/2009 om 23:40
bron van user

stemmen
3

Ik vond de Agile.Net bieden vrij goede bescherming voor uw NET assembly, omdat het bieden niet alleen verwarring, maar ook encryptie. Download een gratis trail.
http://secureteam.net/NET-Code-Protection.aspx http://secureteam.net/downloads.aspx

antwoordde op 03/09/2013 om 16:26
bron van user

stemmen
3

Vermijd Reactor. Het is volkomen nutteloos (en ja ik betaald voor een licentie). Xenocode was de beste die ik tegenkwam en kocht een licentie voor ook. De steun was zeer goed, maar ik heb niet veel nodig omdat het net werkte. Ik testte elke obfuscator ik kon vinden en mijn conclusie is dat Xenocode was veruit de meest robuuste en deed het beste werk (ook de mogelijkheid om het verwerken van uw NET exe om een ​​native exe die ik nergens anders te zien posten.).

Er zijn twee belangrijke verschillen tussen de reactor en Xenocode. De eerste is dat Xenocode echt werkt. De tweede is dat de uitvoering snelheid van uw vergaderingen is niet anders. Met de reactor was ongeveer 6 miljoen keer langzamer. Ik kreeg ook de indruk dat de reactor was een eenmanszaak.

antwoordde op 04/05/2011 om 10:43
bron van user

stemmen
3

Je zou kunnen "Dotfuscator Community Edition" gebruiken - het wordt dan ook standaard in Visual Studio 2008 Professional. Je kunt erover lezen op:

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

De "Professional" versie van het product kost geld, maar is beter.

Heb je echt nodig uw code verduisterd? Meestal is er weinig mis met uw aanvraag wordt gedecompileerd, tenzij het wordt gebruikt voor beveiligingsdoeleinden. Als u zich zorgen over mensen "stelen" zijn uw code, niet te zijn; de overgrote meerderheid van de mensen te kijken naar uw code zal zijn voor het leren doeleinden. Hoe dan ook, er is geen volledig effectief verduistering strategie voor NET - iemand met genoeg vaardigheid zal altijd in staat zijn om te decompileren / verandering die je applicatie.

antwoordde op 16/07/2009 om 22:47
bron van user

stemmen
3

Ik heb geen problemen met Smartassembly gehad.

antwoordde op 16/09/2008 om 12:12
bron van user

stemmen
3

Ik heb onlangs geprobeerd leidingen de uitgang van één gratis obfuscator in de andere vrije obfuscator - namelijk Dotfuscator CE en de nieuwe Babel obfuscator op CodePlex. Meer details op mijn blog .

Zoals voor serialisatie, heb ik die code verhuisd naar een ander DLL en opgenomen dat in het project. Ik redeneerde dat er geen geheimen in dat er niet in de XML toch, dus het deed er niet verduistering nodig. Indien er ernstige code in deze klassen gebruiken gedeeltelijke klassen in het hoofdsamenstel moet bedekken.

antwoordde op 11/09/2008 om 12:53
bron van user

stemmen
3

Je moet gebruiken wat is het goedkoopste en meest bekend voor uw platform en noemen het een dag. Verduistering van high-level talen is een moeilijk probleem, want VM opcode streams hebben geen last van de twee grootste problemen inheemse opcode streams doen: functie / methode identificatie en registratie aliasing.

Wat u moet weten over bytecode omkeren is dat het al gebruikelijk dat security testers om direct X86 code opzoeken en bekijken kwetsbaarheden in het. In rauwe X86, kunt u niet per se eens vinden geldig functies, laat staan ​​track een lokale variabele gedurende een functie aan te roepen. In bijna geen geval native code reversers hebben toegang tot de functie en variabele namen --- tenzij ze de herziening van Microsoft code, waarvoor MSFT biedt behulpzaam, dat informatie aan het publiek.

"Dotfuscation" werkt voornamelijk door versluiering functie en variabele namen. Het is waarschijnlijk beter om dit te doen dan de code te publiceren met debug-level informatie, waar de Reflector letterlijk is het opgeven van uw broncode. Maar alles wat je doet dan is dit waarschijnlijk te krijgen in de afnemende meeropbrengst.

antwoordde op 10/09/2008 om 22:38
bron van user

stemmen
2

Hier is een document van Microsoft zelf. Hoop dat het helpt ..., het is vanaf 2003, maar het kan nog steeds relevant zijn.

antwoordde op 16/07/2009 om 22:38
bron van user

stemmen
2

Ik heb verdoezelen code in dezelfde toepassing, omdat .Net 1, en het is een groot probleem van een serviceprogramma perspectief. Zoals u hebt gezegd, kan de serialisatie probleem worden vermeden, maar het is echt gemakkelijk om een ​​fout te maken en iets wat je niet wilt versluierd verdoezelen. Het is gemakkelijk om de bouw te breken, of om de verduistering patroon te veranderen en niet in staat zijn om oude bestanden te openen. Bovendien kan het moeilijk om erachter te komen wat er mis is en wanneer ging zijn.

Onze keuze was Xenocode, en indien ik de keuze maken vandaag weer zou ik de voorkeur aan de code niet verdoezelen, of gebruik Dotfuscator.

antwoordde op 21/08/2008 om 21:31
bron van user

stemmen
1

Er is een goede open source versie, genaamd Obfuscar. Het lijkt goed te werken. Soorten, eigenschappen, velden, methoden kunnen worden uitgesloten. Het origineel is hier: https://code.google.com/p/obfuscar/ , maar aangezien het lijkt niet meer worden bijgewerkt, iemand gevorkte het naar hier: https://obfuscar.codeplex.com/

antwoordde op 19/12/2013 om 05:24
bron van user

stemmen
1

Ik moest een bescherming verduistering / resource gebruiken in mijn laatste rpoject en vond Crypto Obfuscator als een leuk en eenvoudig te gebruiken tool. De rangschikking kwestie is slechts een kwestie van instellingen in deze tool.

antwoordde op 22/04/2011 om 12:18
bron van user

stemmen
1

de vrije manier zou zijn om dotfuscator gebruiken vanuit Visual Studio, anders youd hebben om uit te gaan en kopen een obfuscator zoals Postbuild ( http://www.xenocode.com/Landing/Obfuscation.aspx )

antwoordde op 16/07/2009 om 22:38
bron van user

stemmen
1

Het hangt allemaal af van de programmeertaal die u gebruikt. Lees het artikel: Obfuscated code

antwoordde op 16/07/2009 om 22:31
bron van user

stemmen
1

We gebruiken SmartAssembly op onze ramen client. Werkt prima.

Heeft wat extra problemen te voegen. Afdrukken van uw klas namen in de logbestanden / uitzonderingen moeten worden de-versluierd. En natuurlijk kan een klasse niet maken op basis van zijn naam. Dus het is een goed idee om een ​​blik op uw klant te nemen en te zien welke problemen die u kunt krijgen door verdoezelen.

antwoordde op 04/04/2009 om 12:28
bron van user

stemmen
0

SmartAssembly is geweldig, ik werd gebruikt in de meeste van mijn projecten

antwoordde op 01/12/2010 om 05:49
bron van user

stemmen
0

Soms gebruik ik ook smartassembly. Echter, ik weet niet hoe het werkt voor een webapplicatie. Maar ik zou er graag op wijzen dat als uw app maakt gebruik van het type shareware bescherming, zorg ervoor dat het niet beschikt over een licentie te controleren met een boolean terug. het is te gemakkelijk om byte crack. http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx

antwoordde op 04/04/2009 om 11:53
bron van user

stemmen
0

U kunt ook kijken naar nieuwe code bescherming technologieën, zoals Metaforic en ViLabs en nieuwe software kopie bescherming technologieën zoals ByteShield . Disclosure: Ik werk voor ByteShield.

antwoordde op 03/01/2009 om 19:56
bron van user

stemmen
-1

Verdoezelen is geen echte bescherming.

Als u een .NET-exe-bestand hebt is er een veel betere oplossing.

Ik gebruik Themida en kan vertellen dat het werkt erg goed.

Het enige nadeel van Themida is dat het niet kan beschermen .NET DLL's. (Het beschermt ook C ++ code Exe en DLL)

Themida is veruit goedkoper dan de hier genoemde obfuscators en is de beste in anti- piraterij beveiliging op de markt. Het creëert een virtuele machine werden kritieke onderdelen van de code worden uitgevoerd en loopt meerdere threads die manipulatie of breekpunten door een cracker te stellen op te sporen. Het zet het .NET Exe in iets dat Reflector niet eens als een NET assembly meer te herkennen.

Lees de gedetailleerde beschrijving op hun website: http://www.oreans.com/themida_features.php

antwoordde op 06/03/2014 om 04:03
bron van user

stemmen
-1

Ik probeerde Eziriz demoversie .... ik vond het leuk. Maar nooit de software gebracht.

antwoordde op 04/09/2009 om 04:21
bron van user

stemmen
-2

Probeer om deze dienst te gebruiken http://morpher.com/

Ik gebruikte het voor een project.

antwoordde op 27/12/2013 om 11:22
bron van user

stemmen
-2

Ik heb een product met de naam Rummage geprobeerd en het heeft een goede baan in het geven van je enige controle ... Hoewel het ontbreekt aan veel dingen die Eziriz biedt maar de prijs voor Rummage is ook goed ...

antwoordde op 06/09/2013 om 18:27
bron van user

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