Domanda

Ho in programma di rilasciare una piccola, utility a basso prezzo. Dal momento che questo è più hobby che di business, ho pensato di utilizzare Dotfuscator Community Edition che viene fornito con VS2008.

Come buona è?

Potrei anche usare la definizione di "buon obfuscator abbastanza" - Quali caratteristiche non sono presenti Dotfuscator Community Edition per renderlo abbastanza buono.

Modifica

Ho controllato i prezzi sul numero di obfuscators commerciali e costano un sacco. Ne vale la pena?

Sono le versioni commerciali che molto meglio che proteggono dal reverse engineering?

Non sono molto paura della mia domanda non possa essere incrinato (sarà deludente se l'applicazione è così male che nessuno si è interessato a romperlo). Non è fortemente protetta in ogni caso, i controlli chiave e di licenza di serie non eccessivamente complesse su pochi posti nel codice. Appena mi bug che, senza offuscamento, qualcuno può facilmente ottenere il codice sorgente, rebrand e venderlo come proprio.

Fa questo accade molto?

Modifica 2:

Qualcuno può raccomandare obfuscator commerciale. Ho trovato un sacco di loro, tutti loro sono costosi, alcuni addirittura non hanno prezzo indicato sul sito web.

Funzione di saggio, tutti i prodotti sembrano più o meno simili.

Qual è insieme minimo di caratteristiche obfuscator dovrebbe avere?

È stato utile?

Soluzione

In poche parole, la differenza principale tra Dotfuscator Community Edition e le altre edizioni "professionali" è che Community Edition sarà veramente solo offuscare e modificare gli spazi dei nomi, i nomi dei metodi, e altri aspetti "pubblici" accessibili delle classi. Non sarà approfondire le funzioni stesse e offuscare il codice "privata" all'interno della funzione.

Inoltre, la Community Edition non fa nulla per nascondere cose come flusso di controllo all'interno dell'applicazione, né sarà "combinare" il codice da più assembly in un assieme. Queste sono caratteristiche che sono disponibili all'interno del "professionista" versato per le versioni.

Il miglior confronto tra la Community Edition (la versione "libera" che viene fornito con Visual Studio) e il "professionista", versato per le edizioni può essere trovata guardando i seguenti due link:

Preemptive Dotfuscator edizioni Confronto

Dotfuscator Community Edition 3.0 su MSDN

Il collegamento MSDN è leggermente fuori oggi, tuttavia, dà una migliore spiegazione delle caratteristiche reali che sono disponibili all'interno delle varie edizioni di Dotfuscator.

Modifica

obfuscators commerciali costano un sacco di soldi, e da wether che valgono i soldi? Beh, questo è un giudizio che in realtà solo si può fare. Personalmente, direi che non vale la pena nel vostro scenario. In primo luogo, perché si sta solo voler proteggere una sola applicazione ( "Ho in programma di rilasciare una piccola, utility a basso prezzo.") E in secondo luogo, tu dici che non sei troppo preoccupato con l'applicazione in fase di "cracking" ( "I' m non molto paura della mia domanda non possa essere incrinato. ").

ho capito come si può bug che le applicazioni compilate .NET, senza alcuna confusione, può essere facilmente decodificata al loro codice sorgente originale, e che qualcuno può fare uso di questo per rubare il software e venderlo come proprio, tuttavia, resta il fatto che la pirateria software non esiste e probabilmente non smettere mai di esso.

Il tentativo di fermare la pirateria software è stato dibattuto ad-nausem sia su qui (Stack Overflow) e tutti su Internet.

Il consenso generale sembra essere che è necessario concentrarsi il vostro tempo e le energie più per rendere il vostro prodotto così grande come può essere invece di utilizzare questo tempo stesso cercando di proteggere qualcosa che, dato abbastanza tempo / denaro, un "attaccante "in grado di 'rompere' / rubare il vostro software in ogni caso, nonostante i vostri sforzi per impedirgli di farlo.

  

Fa questo accade molto?

Direi che probabilmente succede molto meno di quanto si pensi lo fa. Certo, il software viene incrinato, ma non credo che troppe persone effettivamente rubano di altro codice sorgente e completamente ri-brand di vendere come proprio. Non sto dicendo che non lo fa, o non è successo, ma non è di certo un evento comune.

In sintesi, direi che la soluzione migliore sarebbe quella di concentrarsi sul rendere il vostro programma di utilità così grande come può essere e utilizzare il Dotfuscator obfuscator libera, in quanto richiede molto poco investimento di tempo / denaro, per offuscare il codice dagli occhi indiscreti più evidenti, ma non perdere il sonno per il fatto che se qualcuno vuole rompere / rubare il vostro prodotto / code abbastanza male, faranno.

Altri suggerimenti

Credo Dotfuscator Community Edition fornito con Visual Studio è una soluzione abbastanza ingenuo. Fornisce unico simbolo ridenominazione e non offuscare flusso di controllo a tutti. E se qualcuno decide di rubato il codice sarà solo bisogno di refactoring indietro tutti i nomi, che è abbastanza facile con una piccola quantità di classi.

Inoltre è possibile fare affidamento su decompilazione non così perfetto fornito da Reflector (di solito pasticci passare blocchi, fa un sacco di goto, disadattamento if-else blocchi, ecc.).

Ma io suggerisco di provare Eziriz .NET Reactor . Il costo è di Only $ 179 (AFAIK miglior rapporto prezzo / caratteristiche). Esso fornisce tecniche di offuscamento standard come simbolo ridenominazione, la crittografia stringa, offuscamento flusso di controllo. Come un buon bonus crea lanciatore nativo per voi app, che conterrà l'assembly principale e tutti i riferimenti di terze parti crittografati e caricati su richiesta. Più esso fornisce alcune funzionalità di licenza.

In ogni caso l'inversione applicazione .NET non è così difficile, l'ho fatto per divertimento e posso dire che è solo questione di tempo e denaro (e, naturalmente, il senso comune) quanto velocemente la vostra domanda verrà incrinato o invertita.

Come minimo, un obfuscator dovrebbe avere:

  1. crittografia Stringa
  2. Simbolo rinominare
  3. offuscamento del flusso di controllo

bene avere caratteristiche sono:

  1. Protezione delle Risorse
  2. Assemblea fusione / incorporazione
  3. metodo di nascondere chiamata esterna
  4. Possibilità di auto-sign assemblee offuscati
  5. Il supporto per assembly satellite
  6. Dead-code eliminazione
  7. riduzione dei Meta-dati
  8. Anti-Decompiler (Reflector)
  9. Anti-manomissione
  10. Anti-Debug

Date un'occhiata al nostro prodotto Crypto Obfuscator che supporta tutti questi.

Un altro modo per aggirare il codice di reverse engineering è dove si posiziona il dll se non si può davvero permettersi obfuscators che fanno aggiungere il supporto. E nel tuo assembies prima della distribuzione dire al compilatore dove cercare per loro che era una vecchia pratica di ostacolare il reverse engineering. Ma come è stato già detto, si concentrano principalmente sullo sviluppo di un prodotto eccellente e buone pratiche di codifica, allora si sarà in grado di permettersi una simpatica applicazione obfuscator in futuro. Inoltre, cercare di non preoccuparsi a molto per gli altri di cracking il codice perché la maggior parte hacker crepa codice solo trovare un modo per utilizzare il prodotto senza pagare per questo e non per rubare il codice o per imparare da per l'inizio programmatore. Sì, vorrei JIT supportato solo C # e vb.net che avrebbe davvero ridurre il reverse engineering ma poiché JIT può leggere molti a causa di .net essere veramente il linguaggio amichevole che è il prezzo. Quindi il codice via e fare qualche soldo, comprare alcuni titoli aggiuntivi.

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