Domanda

Sono sicuro che molti lettori hanno QUINDI utilizzato Lutz Roeder's .NET reflector per decompilare loro .NET code.Mi ha stupito, proprio esattamente come il nostro codice sorgente può essere ristrutturato dal nostro assembly compilati.

Sarei interessato a sapere quanti di voi utilizzano offuscamento, e per che tipo di prodotti?

Sono sicuro che questo è molto più importante problema per, diciamo, un .NET applicazione che si offrono per il download su internet in contrapposizione a qualcosa che è costruito su misura per un particolare client.

È stato utile?

Soluzione

Io non mi preoccuperei troppo.Mi piacerebbe piuttosto concentrarsi sul mettere fuori un prodotto fantastico, ottenendo una buona base di utenti, e di trattare i tuoi clienti a destra di preoccuparsi di una percentuale minima di utenti interessati con rubando il codice o la fonte.

Altri suggerimenti

Ricordate, offuscamento non è la crittografia.IMHO, se qualcuno percepisce il valore in reverse engineering il tuo codice, lo faranno.Questo è vero per il codice gestito o in codice nativo, offuscato o non.Certo, offuscamento scoraggia l'osservatore casuale, ma è il vostro business in realtà minacciati da queste persone?Ogni .NET offuscamento metodo ho visto rende la tua vita come uno sviluppatore di più.

Ci sono servizi che offrono vera codificazione, come SLPS da Microsoft.Vedere http://www.microsoft.com/slps/default.aspx

Siamo spiacenti, offuscare tutti i nostri uscita, anche se siamo una piccola outfit che vende un software specializzato per un piccolo numero di clienti.

Abbiamo preso questa decisione per una semplice ragione - abbiamo scoperto un scontenti ex-dipendente è stato attivamente si avvicina ai nostri clienti la richiesta di binari - c'era una certa preoccupazione che stava per decodificare nuove funzionalità per offrire concorrenti funzionalità.

Naturalmente è ancora in grado di fare questo se lui usa il software, ma non vi è alcun motivo per rendere più facile per lui.

Nessun nuovo offuscamento, ma un sacco di compilatore trucchi dalla 1.1

Per esempio ogni volta che si utilizza un tipo anonimo si ottiene IL che compila la schiena con una piuttosto oscuro nome.Ogni volta che si utilizza la resa si ottiene una nuova classe che implementa l'interfaccia IEnumerable e IEnumerator (intelligente di ottimizzazione, codice illeggibile).Ogni volta che si utilizza un delegato anonimo che si ottiene un nuovo metodo con un nome non valido in ogni .Net lingua che non conosco, ma che multa IL.

@Rob Cooper

Avendo avuto alcune discussioni con il mio manager, ha detto di non offuscare, ma non NGEN su installa, a quanto pare questo dovrebbe essere sufficiente per interrompere Riflettore di lavoro sul tuo le assemblee, ma non ho idea se questo è vero e in che misura, quindi, per favore non prendere come vangelo :)

Questo non offre alcun tipo di protezione contro lo smontaggio.Prima immagino che sia il suo possibile estrarre i file raw di qualsiasi pacchetto di installazione come un MSI o un file CAB.

Ma, cosa più importante, Ngen in esecuzione sulla macchina client dopo che l'assemblea è stato installato.Ngen solo le forze dell'assemblea per la compilazione, ora invece di seguito utilizzando il JIT.L'assembly originale rimane e non è stato modificato e deve rimanere, perché Ngen potrebbe non essere in grado di compilare l'intero gruppo.

Ngen è per le prestazioni, non di sicurezza, e non fa nulla per impedire lo smontaggio o la rendono anche un po ' più difficile.

facile per me - se avete bisogno di proteggere la proprietà intellettuale - obfuicate - se non non.

Semplice con gli strumenti giusti.

Credo che in qualche misura ci dovrebbero essere TUTTI a preoccuparsi del nostro IP :)

Buona domanda, anche se, come il suo qualcosa che io sono ansioso di sapere di più circa (attualmente non non offuscare).

Avendo avuto alcune discussioni con il mio manager, ha detto di non offuscare, ma non NGEN su installa, a quanto pare, che dovrebbe essere sufficiente per interrompere il Riflettore di lavoro in assembly, ma non ho idea se questo è vero e in che misura, quindi si prega di non prendere come vangelo :)

Bella domanda :) +1

Non si fa uso di offuscamento per il "non pubblico" applicazioni ma lo usiamo per il pubblico con le applicazioni disponibili.Il offuscato app contiene un sacco di altamente sofisticato codice che ci ha portato una quantità esorbitante di tempo per scrivere e questo è il motivo che mi permetta di pensare che l'offuscamento è un must, almeno in questo caso.

Obsfucation è limitato nella sua efficacia, si potrebbe tenere il casual ragazzo di distanza.Il più efficace obsfucation sta facendo solo la più piccola quantità di codice disponibile per l'utente.Se puoi, fai la tua app eseguire dipendono pesantemente su un server fat.

D'accordo, la maggior parte delle persone che sanno come codice, anche un po ' non hanno bisogno di rubare il vostro codice!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top