Come posso offuscare il mio codice c #, quindi non può essere deoffuscato così facilmente?

Rilascio gratuitamente un sacco di strumenti, ma recentemente ho iniziato a vendere un’applicazione, che ha una ricerca privata, e le persone sono state in grado di ottenere il mio codice sorgente, e una persona ha rilasciato pubblicamente la mia intera fonte. Ho trascorso molto tempo su questo programma, solo per far sì che qualcuno lo violasse e rilasciare la mia intera fonte.

Come posso proteggere il mio programma? Ho provato HWID, ma le persone sono ancora in grado di risolverlo. So di essere limitato da C #, ma è il più comodo da usare. Ho solo bisogno di un modo per proteggere i miei programmi da persone che cercano di farlo.

Potresti dare un’occhiata ai molti strumenti di offuscamento disponibili, ad esempio quelli menzionati in https://stackoverflow.com/questions/805549/free-obfuscation-tools-for-net (nota: domanda attualmente non disponibile per la visualizzazione ).

EDIT: la domanda collegata sopra è stata cancellata e quindi non è disponibile per la visualizzazione. Come riferimento ecco l’elenco dei link attualmente funzionanti pubblicati nella domanda precedente estratti con l’aiuto di qualche utente esperto:

http://gapotchenko.com/eazfuscator.net
http://codefort.org/download
http://orangeheap.blogspot.nl
http://confuser.codeplex.com (sostituito da https://yck1509.github.io/ConfuserEx/ ) http://ntoolbox.com

Bene, il problema con linguaggi come C # / Java è che sono generalmente molto più facili da de-offuscare. Il modo per garantire questo è generalmente quello di mettere questa roba in un servizio web, ma hai detto che non potevi davvero farlo. Che dire del porting di funzioni non banali specifiche su un linguaggio come C, e offuscare quello. Il tuo programma C # potrebbe quindi utilizzare la riflessione per effettuare chiamate a questa dll esterna / non gestita. Aumenterebbe la difficoltà di de-offuscamento, ma il problema è che se qualcuno lo vuole abbastanza male, possono capirlo com’è dal lato client.

Potrebbe essere che l’azione legale sia l’unica soluzione reale qui, ma questo non è un sito per la consulenza legale, e io non sono autorizzato a fornirlo se lo fosse.

Inoltre, questa potrebbe essere una decisione commerciale. Considera la possibilità di rendere il tuo software open-source e pubblicare un link per le donazioni. Inoltre, non sono qualificato per fornire consulenza aziendale, ma vale la pena considerarlo. Potrebbe effettivamente aumentare le tue entrate, per non parlare degli altri benefici che derivano dal rilascio di software open source.

C’è Dotfuscator ( http://www.preemptive.com/products/dotfuscator/overview ). Ma la soluzione migliore in alcuni casi è offrire ciò che fai come sito Web (Software as a Service).

Considerare questo strumento, ad esempio, per convertire VB in C #: http://converter.telerik.com/

Oppure questo strumento per formattare JSON: http://jsonformatter.curiousconcept.com/

Questo potrebbe o non potrebbe funzionare per te. Non so quale sia la natura del software che stai cercando di proteggere.

No, il tuo codice deve contenere le informazioni necessarie per decriptare se stesso, è un problema imansible da risolvere.

La soluzione migliore è mettere la proprietà intellettuale su un server nel cloud a cui solo tu hai accesso. Offri ai tuoi clienti un accesso univoco, verifica il loro accesso per controllare gli abusi, scaricare il lavoro più gravoso sui computer dei tuoi clienti, ma mantieni i tuoi algoritmi bloccati nel cloud.