NET obfuscation verktøy / strategi

stemmer
147

Min produktet har flere komponenter: ASP.NET, Windows Forms App og Windows Service. 95% eller så av koden er skrevet i VB.NET.

For immaterielle grunner, jeg trenger å obfuscate koden, og til nå har jeg brukt en versjon av dotfuscator som nå er over 5 år gammel. Jeg tenker det er på tide å flytte til en ny generasjon. Hva jeg ser etter er en liste over krav som jeg bør vurdere når du søker etter en ny obfuscator.

Det jeg vet at jeg bør se etter så langt:

  • Serialisering / De-serialisering . I min nåværende løsning, jeg bare fortelle verktøyet ikke å tildekke klassen data medlemmer fordi smerten av å ikke kunne laste inn data som tidligere ble seriekodet er rett og slett for stor.
  • Integrasjon med byggeprosessen
  • Arbeide med ASP.NET . I det siste har jeg funnet dette problematisk på grunn av endrede DLL navn (du må ofte en per side) - som ikke alle verktøy håndtere godt.
Publisert på 05/08/2008 klokken 16:20
kilden bruker
På andre språk...                            


31 svar

stemmer
47

Vi har prøvd en rekke obfuscators. Ingen av dem jobber på en stor klient / server app som bruker Remoting. Problemet er at klient og server dele noen DLLer, og vi har ikke funnet noen obfuscator som kan håndtere det.

Vi har prøvd DotFuscator Pro, Smartassembly, XenoCode, Salamander, og flere små tids apps med navn unnslippe meg.

Oppriktig, er jeg overbevist om tåkelegging er en stor hack.

Selv problemene det adresser er ikke helt et reelt problem. Det eneste du egentlig trenger for å beskytte er tilkoblings strenger, aktiveringskoder, sikkerhetssensitive sånt. Dette tullet at et annet selskap kommer til å reverse-engineering hele kodebasen og lage et konkurrerende produkt fra det er noe fra en paranoid leders mareritt, ikke virkeligheten.

Svarte 07/08/2008 kl. 18:15
kilden bruker

stemmer
40

Jeg er 'Knee Deep' i dette nå, prøver å finne en god løsning. Her er mitt inntrykk så langt.

Xenocode - Jeg har en gammel lisens for Xenocode2005 som jeg pleide å bruke for obfuscating min .NET 2.0 forsamlinger. Det fungerte fint på XP og var en grei løsning. Mitt nåværende prosjekt er Net 3.5 og jeg er på Vista, support fortalte meg å gi den en gå, men 2005-versjonen ikke engang fungere på Vista (krasjer) så jeg, og nå må jeg kjøpe 'PostBuild2008' på et gobsmacking pris på $ 1900. Dette kan være et godt verktøy, men jeg kommer ikke til å finne det ut. For dyrt.

Reactor.Net - Dette er en mye mer attraktiv pris, og det fungerte fint på min Stående executeable. Den Licensing modul var også hyggelig og ville ha spart meg en haug med innsats. Dessverre er det mangler en viktig funksjon, og det er muligheten til å Ekskluder ting fra tåkelegging. Dette gjør det umulig å oppnå det resultatet jeg trengte (Slå sammen flere samlinger sammen, obfuscate noen, ikke-obfuscate andre).

Smartassembly - Jeg lastet ned Eval for dette, og det fungerte feilfritt. Jeg var i stand til å oppnå alt jeg ønsket og Interface var førsteklasses. Pris er fortsatt litt heftig.

Dotfuscator Pro - Kunne ikke finne prisen på nettstedet. For tiden i diskusjoner for å få et tilbud. Høres illevarslende.

Confuser - åpen kildekode som fungerer ganske bra (for å forvirre ppl, akkurat som navnet tilsier). https://confuser.codeplex.com/
(tilsatt etter jgauffin)

Merk: ConfuserEx er angivelig "ødelagt" i henhold til problemet # 498 på deres GitHub repo.

Svarte 11/05/2009 kl. 06:04
kilden bruker

stemmer
39

Tilbake med Net 1.1 tåkelegging var avgjørende: dekompilering koden ble enkelt, og du kan gå fra forsamlingen, til IL, til C # -kode og få den satt sammen igjen med svært liten innsats.

Nå med .Net 3.5 Jeg er ikke sikker. Prøv dekompilering en 3,5 forsamlingen; hva du får er en lang vei fra kompilering.

Legg optimeringene fra 3,5 (langt bedre enn 1,1) og måten anonyme typer, delegater og så videre håndteres av refleksjon (de er et mareritt å rekompilere). Legg lambda uttrykk, kompilatoren 'magic' som Linq-syntaks og var, og C # 2 funksjoner som yield(som resulterer i nye klasser med uleselige navn). Din decompiled kode ender opp en lang lang vei fra kompileres.

Et profesjonelt team med masse tid fortsatt kunne reversere den tilbake igjen, men da det samme gjelder enhver sært kode. Hva koden de fikk ut av det ville være unmaintainable og høyst sannsynlig til å være veldig buggy.

Jeg anbefaler key-signering forsamlinger (som betyr hvis hackere kan rekompilere en de har å rekompilere alt), men jeg tror ikke tåkelegging er verdt det.

Svarte 12/08/2008 kl. 12:19
kilden bruker

stemmer
21

Hvis du leter etter en gratis en du kan prøve DotObfuscator Community Edition som følger med Visual Studio eller Eazfuscator.NET .


Siden den 29 juni 2012 , er Eazfuscator.NET nå kommersielt. Den siste gratis tilgjengelige versjon er 3.3.

Svarte 05/08/2008 kl. 16:30
kilden bruker

stemmer
18

Jeg har brukt Smartassembly. I utgangspunktet, du plukke en dll og den returnerer den uklar. Det ser ut til å fungere fint, og jeg har ikke hatt noen problemer så langt. Veldig, veldig enkel å bruke.

Svarte 05/08/2008 kl. 16:21
kilden bruker

stemmer
10

Jeg har prøvd nesten alle obfuscator på markedet og Smartassembly er den beste etter min mening.

Svarte 07/08/2008 kl. 10:44
kilden bruker

stemmer
8

Jeg har også bruker Smartassembly. Jeg fant ut at Ezrinz .Net Reactor mye bedre for meg på .net applikasjoner. Det skaper forvirring, støtter Mono, fusjonerer forsamlinger og det også har også en veldig fin lisensiering modul for å lage prøveversjon eller knytte lisensen til en bestemt maskin (veldig enkelt å implementere). Prisen er også svært konkurransedyktige, og da jeg trengte støtte de der fast. Eziriz

Bare for å være klart jeg er bare en custumer som liker produktet og ikke på noen måte er relatert til selskapet.

Svarte 22/08/2008 kl. 17:41
kilden bruker

stemmer
7

Det korte svaret er at du ikke kan.

Det finnes ulike verktøy rundt som vil gjøre det vanskeligere for noen å lese koden din - noen som har blitt påpekt av andre svar.

Men alle disse gjør det vanskeligere å lese - de øker mengden arbeid som kreves, er at all. Ofte er dette nok til å avskrekke tilfeldige lesere, men noen som er fast bestemt på å grave i koden din vil alltid være i stand til å gjøre det.

Svarte 16/07/2009 kl. 21:45
kilden bruker

stemmer
6

Vi har en multi tier app med en asp.net og Winform grensesnitt som også støtter remoting. Jeg har hatt noen problemer med å bruke noen obfuscator med unntak av krypteringstypen som genererer en loader som kan være problematisk i alle slags uventede måter, og bare ikke verdt det etter min mening. Egentlig mitt råd ville være mer i retning av "Unngå å kryptere loader typen obfuscators som pesten". :)

I min erfaring noen obfuscator vil fungere fint med noen aspekter av .net inkludert asp.net og remoting, du må bare bli intime med innstillingene og lære hvor langt du kan presse den i hvilke områder av koden. Og ta deg tid til å forsøke reverse engineering på hva du får og se hvordan det fungerer med de forskjellige innstillingene.

Vi brukte flere gjennom årene i våre kommersielle programmer og bosatte seg på Krydder obfuscator fra 9rays.net fordi prisen er rett, det gjør jobben, og de har god støtte selv om vi egentlig ikke har behov for støtte i år lenger, men for å være ærlig jeg tror ikke det virkelig saker som Obfuscator du bruker, problemene og læringskurve er alle den samme hvis du vil ha den til å fungere ordentlig med remoting og asp.net.

Som andre har nevnt alt du egentlig gjør er det samme som en hengelås, holder ellers ærlige mennesker ut og eller gjør det vanskeligere å bare rekompilere en app.

Lisensiering er vanligvis viktig område for folk flest, og du bør definitivt være å bruke noen form for digitalt signert sertifikat system for lisensiering uansett. Ditt største tap vil komme fra tilfeldig fordeling av lisenser hvis du ikke har et smart system på plass, folk som bryter konsesjonssystemet var aldri kommer til å kjøpe i første omgang.

Det er veldig lett å ta dette for langt og ha en negativ innvirkning på dine kunder og din bedrift, gjøre det som er enkelt og rimelig og så ikke bekymre deg for det.

Svarte 16/11/2008 kl. 19:57
kilden bruker

stemmer
5

Crypto Obfuscator ta opp alle dine bekymringer og scenarier. It:

  1. utelukker automatisk typer / medlemmer fra tåkelegging basert på regler. Serialisert typer / felt er en av dem.
  2. Det kan være integrert i byggeprosessen ved hjelp MSBuild.
  3. Støtter ASP.Net prosjekter.
Svarte 09/10/2009 kl. 09:42
kilden bruker

stemmer
5

For de siste to dagene har jeg eksperimentert med Dotfuscator Community Edition avansert (en gratis nedlasting etter registrering av grunnleggende CE som følger med Visual Studio).

Jeg tror grunnen til flere mennesker bruker ikke tåkelegging som en standard alternativ er at det er en alvorlig stresset i forhold til risikoen. På mindre testprosjekter kan jeg få uklar kode kjører med mye arbeid. Distribuere et enkelt prosjekt via ClickOnce var plagsom, men oppnåelig etter manuelt undertegne manifesterer med mage. Det eneste problemet var at på feil stakksporingen kom tilbake uklar og CE har ikke et deobfuscator eller sedimente pakket.

Jeg prøvde å obfuscate et reelt prosjekt som er VSTO basert i Excel, med Virtual Earth integrasjon, masse Webservice samtaler og en IOC container og mye av refleksjon. Det var umulig.

Hvis obfuscation er virkelig en kritisk forutsetning, bør du designe din søknad med det i tankene fra starten, testing maskeres bygger som du avanserer. Ellers, hvis det er en ganske komplisert prosjekt, du kommer til å ende opp med en seriøs mengde smerte.

Svarte 04/02/2009 kl. 22:40
kilden bruker

stemmer
4

Jeg har nylig prøvd rør produksjonen av en gratis obfuscator inn i et annet gratis obfuscator - nemlig Dotfuscator CE og den nye Babel obfuscator på CodePlex. Flere detaljer på bloggen min .

Som for serialisering, har jeg flyttet den koden inn i en annen DLL og inkludert som i prosjektet. Jeg tenkte at det ikke var noen hemmeligheter i det som ikke er i XML uansett, så det trengte ikke tåkelegging. Hvis det er noen alvorlig kode i disse klasser, ved hjelp av partielle klasser i hovedsammenstillingen bør dekke den.

Svarte 11/09/2008 kl. 11:53
kilden bruker

stemmer
3

Jeg fant Agile.Net gir ganske god beskyttelse for din Net Assembly fordi det tilbyr ikke bare tåkelegging, men også kryptering. Last ned en gratis trail.
http://secureteam.net/NET-Code-Protection.aspx http://secureteam.net/downloads.aspx

Svarte 03/09/2013 kl. 15:26
kilden bruker

stemmer
3

Unngå Reactor. Det er helt ubrukelig (og ja jeg har betalt for en lisens). Xenocode var den beste jeg har møtt og kjøpte en lisens for også. Støtten var veldig bra, men jeg trenger ikke det mye som det bare virket. Jeg testet hver obfuscator jeg kunne finne, og min konklusjon er at xenocode var langt unna den mest robuste og gjorde den beste jobben (også mulighet for å etterbehandle NET exe til en innfødt exe som jeg ikke ser noe annet sted.).

Det er to hovedforskjeller mellom reaktoren og xenocode. Den første er at Xenocode faktisk fungerer. Det andre er at henrettelsen hastigheten på forsamlinger er ikke annerledes. Med reaktoren var det ca 6 millioner ganger tregere. Jeg fikk også inntrykk av at reaktoren var en mann operasjon.

Svarte 04/05/2011 kl. 09:43
kilden bruker

stemmer
3

Du kan bruke "Dotfuscator Community Edition" - den kommer som standard i Visual Studio 2008 Professional. Du kan lese om den på:

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

Den "Professional" versjon av produktet koster penger, men er bedre.

Har du virkelig trenger koden din uklar? Vanligvis er det svært lite galt med søknaden blir dekompileres, med mindre det brukes av sikkerhetshensyn. Hvis du er bekymret for om folk "stjele" koden din, ikke vær; de aller fleste ser på koden vil være for læringsformål. Uansett, det er ikke helt effektiv tåkelegging strategi for NET - noen med nok ferdigheter vil alltid være i stand til å dekompilere / endre søknaden din.

Svarte 16/07/2009 kl. 21:47
kilden bruker

stemmer
3

Jeg har ikke hatt noen problemer med Smartassembly.

Svarte 16/09/2008 kl. 11:12
kilden bruker

stemmer
3

Du bør bruke det som er billigst og best kjent for din plattform og kaller det en dag. Tåkelegging av høyt nivå språk er et vanskelig problem, fordi VM OPCODE strømmer ikke lider av de to største problemene innfødte OPCODE bekker gjøre: funksjon / metode identifikasjon og registrere aliasing.

Hva du bør vite om Bytecode rygging er at det allerede er standard praksis for sikkerhetstestere en anmeldelse rett X86 koden og finne sårbarheter i den. I rå X86, kan du ikke nødvendigvis selv finne gyldige funksjoner, enn si spore en lokal variabel gjennom et funksjonskall. I nesten ingen omstendigheter gjøre egen kode reversers har tilgang til funksjon og variabelnavn --- med mindre de omtaler Microsoft-kode, som MSFT gir somt at informasjon til publikum.

"Dotfuscation" fungerer hovedsakelig ved scrambling funksjon og variabelnavn. Det er nok bedre å gjøre dette enn å publisere kode med debug-nivå informasjon, hvor Reflector er bokstavelig talt gi opp kildekoden. Men alt du gjør utover dette er sannsynlig å få inn avtagende avkastning.

Svarte 10/09/2008 kl. 21:38
kilden bruker

stemmer
2

Her er et dokument fra Microsoft selv. Håper det hjelper ..., det er fra 2003, men det kan fortsatt være relevant.

Svarte 16/07/2009 kl. 21:38
kilden bruker

stemmer
2

Jeg har vært obfuscating koden i samme program siden .Net en, og det har vært et stort problem fra et vedlikeholdsperspektiv. Som du har nevnt, kan serialisering problemet unngås, men det er veldig lett å gjøre en feil og obfuscate noe du ikke ønsker uklar. Det er lett å bryte bygge, eller for å endre tåkelegging mønster og ikke være i stand til å åpne gamle filer. Pluss det kan være vanskelig å finne ut hva som gikk galt og hvor.

Vårt valg var Xenocode, og var jeg å gjøre valget igjen i dag jeg foretrekker å ikke obfuscate koden, eller bruke Dotfuscator.

Svarte 21/08/2008 kl. 20:31
kilden bruker

stemmer
1

Det er en god åpen kildekode-versjon kalt Obfuscar. Synes å fungere fint. Typer, egenskaper, felt, metoder kan utelukkes. Originalen er her: https://code.google.com/p/obfuscar/ , men siden det ser ut til å ikke bli oppdatert lenger, noen delte den til her: https://obfuscar.codeplex.com/

Svarte 19/12/2013 kl. 04:24
kilden bruker

stemmer
1

Jeg måtte bruke en tåkelegging / ressurs beskyttelse i min siste rpoject og fant Crypto Obfuscator som en fin og enkel å bruke verktøyet. Serialisering problemet er bare et spørsmål om innstillinger i dette verktøyet.

Svarte 22/04/2011 kl. 11:18
kilden bruker

stemmer
1

gratis måte ville være å bruke dotfuscator innenfra Visual Studio, ellers youd må gå ut og kjøpe en obfuscator som Postbuild ( http://www.xenocode.com/Landing/Obfuscation.aspx )

Svarte 16/07/2009 kl. 21:38
kilden bruker

stemmer
1

Det hele avhenger av programmeringsspråk, som du bruker. Les artikkelen: uklar kode

Svarte 16/07/2009 kl. 21:31
kilden bruker

stemmer
1

Vi bruker Smartassembly på vår windows klient. Fungerer helt fint.

Legger noen ekstra problemer også. Skrive ut dine klassenavn i loggfiler / unntak må være de-uklar. Og selvfølgelig kan ikke opprette en klasse fra sitt navn. Så det er en god idé å ta en titt på din klient og se hvilke problemer du kan få ved obfuscating.

Svarte 04/04/2009 kl. 11:28
kilden bruker

stemmer
0

Smartassembly er flott, jeg ble brukt i de fleste av mine prosjekter

Svarte 01/12/2010 kl. 04:49
kilden bruker

stemmer
0

Jeg bruker også Smartassembly. Men jeg vet ikke hvordan det fungerer for en web-applikasjon. Men jeg vil gjerne påpeke at hvis appen din bruker shareware typen beskyttelse, sørg for at det ikke sjekke en lisens med en boolsk retur. det er altfor lett å byte sprekk. http://blogs.compdj.com/post/Binary-hack-a-NET-executable.aspx

Svarte 04/04/2009 kl. 10:53
kilden bruker

stemmer
0

Du kan også være lurt å se på nye kodebeskyttelsesteknologier som Metaforic og ViLabs og nye programvare kopibeskyttelse teknologi som ByteShield . Disclosure: Jeg jobber for ByteShield.

Svarte 03/01/2009 kl. 18:56
kilden bruker

stemmer
-1

Obfuscating er ikke en reell beskyttelse.

Hvis du har en .NET Exe fil det er en langt bedre løsning.

Jeg bruker Themida og kan fortelle at det fungerer veldig bra.

Den eneste ulempen med Themida er at det ikke kan beskytte NET DLLs. (Det beskytter også C ++ kode i Exe og DLL-filer)

Themida er langt billigere enn de her nevnte obfuscators og er den beste i anti piratkopiering beskyttelse på markedet. Det skaper en virtuell maskin ble kritiske deler av koden blir drevet og driver flere tråder som gjenkjenner manipulasjon eller stoppunkter satt av en cracker. Den konverterer .NET Exe til noe som Reflektor ikke engang anerkjenner som en NET montering lenger.

Vennligst les detaljert beskrivelse på deres hjemmeside: http://www.oreans.com/themida_features.php

Svarte 06/03/2014 kl. 03:03
kilden bruker

stemmer
-1

Jeg prøvde Eziriz demoversjon .... Jeg likte det. Men aldri brakt programvaren.

Svarte 04/09/2009 kl. 03:21
kilden bruker

stemmer
-2

Prøv å bruke denne tjenesten http://morpher.com/

Jeg brukte den for ett prosjekt.

Svarte 27/12/2013 kl. 10:22
kilden bruker

stemmer
-2

Jeg har prøvd et produkt som kalles ransake og det gjør en god jobb i å gi deg en viss kontroll ... Selv om det mangler mange ting som Eziriz tilbud, men prisen for ransake er for godt ...

Svarte 06/09/2013 kl. 17:27
kilden bruker

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