2009-02-02 11 views

risposta

17

I modificatori di accesso come internal e sealed non hanno nulla a che fare con l'offuscamento o la sicurezza del codice, dicono semplicemente alle altre classi come interagire (o non interagire) con loro.

Alla fine della giornata, non c'è nulla che tu possa fare per prevenire la pirateria. Qualsiasi cosa creata da un umano può essere spezzata da un altro. Ci sono un sacco di domande su SO che trattano i codici prodotto, mantengono il software sicuro, ecc. Che puoi trovare se utilizzi il meccanismo di ricerca in alto a destra. Tutte le risposte coprono alcune idee di base che chiunque con un po 'di senso vi dirà:

  1. mettere abbastanza sforzi Solo nelle vostre misure anti-pirateria per rendere di cracking del software un po' meno conveniente che scoppiare la carta di credito. Se questo è davvero difficile da fare, ti stai caricando troppo per la tua base di clienti.
  2. Se ti concentri sulla creazione di relazioni positive con i tuoi clienti invece di assumere che sono criminali, saranno più disposti a darti dei soldi.
  3. La maggior parte dei clienti - individui e aziende in particolare - non hanno alcun interesse a aprire le assemblee e cercare di capire come farla franca se non si paga. Per gli individui, non lo pagherebbero comunque, quindi non perderai una vendita; e le aziende non rischierebbero montagne di contanti in problemi legali per il costo di alcune licenze software.

Research crittografia a chiave pubblica/privata e ellittica e troverete modi per proteggere il vostro algoritmo a chiave, ma sarà solo evitare fessurazioni il chiave, non bypassando esso.

+0

Ciò che Rex M dice è vero. Utilizzare uno schema di crittografia a chiave pubblica/privata per generare le proprie chiavi. Offusca il tuo codice con qualcosa come Dotfuscator. Ma alla fine, le persone possono ancora decifrarlo, se lo desiderano modificando alcuni salti condizionali nell'eseguibile. – mmcdole

+1

Accetto il tuo terzo punto, ma che ne è di una persona/azienda che acquista una sola licenza e la utilizza su più macchine, per questo è necessaria una certa protezione? –

0

Rex è corretto, internal sealed class non nasconde nulla. Utilizzare un hash di crittografia unidirezionale (ad esempio MD5CryptoServiceProvider) per proteggere password e chiavi.

2

Sono d'accordo con Rex M, dovresti considerare l'utilizzo di un algoritmo di crittografia asimmetrico come la crittografia a curve ellittiche per evitare keygens. E se sei interessato a una soluzione commerciale, prova con Ellipter - utilizza curve ellittiche e ha alcune funzioni utili come le informazioni sul prodotto e l'incorporamento dei dati di scadenza nelle chiavi seriali generate.

+0

O qualsiasi sistema PGP, davvero. Inserisci la chiave pubblica nell'applicazione e lascia che lo sviluppatore dell'applicazione (o la società) tenga la chiave privata. – Arafangion

Problemi correlati