Una cosa da tenere a mente è che vuoi farlo in un modo che abbia senso per gli affari. Per fare ciò, è necessario definire i propri obiettivi. Quindi, quali sono esattamente i tuoi obiettivi?
Prevenire la pirateria? Questo obiettivo non è realizzabile. Anche il codice nativo può essere decompilato o incrinato; la moltitudine di warez disponibili online (anche per prodotti come Windows e Photoshop) è la prova che un hacker determinato può sempre ottenere l'accesso.
Se non è possibile prevenire la pirateria, allora che ne pensi di ridurlo? Anche questo è fuorviato. Ci vuole solo una persona per decifrare il tuo codice affinché sia disponibile per tutti. Devi essere fortunato ogni volta. I pirati devono essere fortunati solo una volta.
L'ho messo a voi l'obiettivo dovrebbe essere quello di massimizzare i profitti. Sembra che tu creda che fermare la pirateria sia necessario per questo sforzo. Non è. Il profitto è semplicemente entrate meno i costi. Arresto della pirateria aumenta costi. Ci vuole impegno, il che significa aggiungere costi da qualche parte nel processo e così ridurre quel lato dell'equazione. Proteggi il tuo prodotto anche niente per aumentare le tue entrate. So che guardi tutti quei pirati e vedi tutti i soldi che potresti fare se solo pagassero i tuoi canoni di licenza, ma la realtà è che questo sarà mai. C'è qualche iperbole qui, ma generalmente sostiene che i pirati che non sono in grado di violare la sicurezza troveranno un prodotto simile che possono crackare o fare a meno. Lo saranno mai acquistarlo invece, e quindi lo fanno non rappresentano vendite perse.
Inoltre, protezione del prodotto in realtà riduce entrate. Ci sono due ragioni per questo. Uno è la piccola percentuale di clienti che hanno problemi con l'attivazione o la sicurezza, e quindi decidono di non comprare di nuovo o chiedere i loro soldi indietro. L'altra è la piccola percentuale di persone che effettivamente provano una versione pirata del software per assicurarsi che funzioni prima di acquistare.Limitare la distribuzione pirata del tuo prodotto (se sei in qualche modo in grado di riuscirci) impedisce a queste persone di provare mai il tuo prodotto, e quindi non lo compreranno mai. Inoltre, la pirateria può anche aiutare il tuo prodotto a diffondersi a un pubblico più ampio, raggiungendo così più persone che saranno disposte a pagare per questo.
Una strategia migliore è quella di presumere che il prodotto verrà piratato e pensare a come sfruttare la situazione. Un altro paio di link sul tema:
How do i prevent my code from being stolen?
Securing a .NET Application
fonte
2010-03-19 15:30:31
Se reflector non è in grado di stabilire se l'applicazione è un assembly .NET, di come si suppone che l'applicazione tenta di caricarlo? – Brian
Re "Non voglio offuscare il mio codice in modo che i nomi dei miei metodi siano a, b, c o così". Perchè no? Questa è la cosa ovvia da fare per rendere più difficile per i concorrenti dare un senso alla logica. – ToolmakerSteve
Sì, offuscamento 100% "funziona". Per prima cosa non dovresti inserire "segreti" nel tuo codice, cose che "una volta trovate nel codice possono compromettere la sicurezza". Secondo, hai mai preso il codice su GitHub e hai cercato di riutilizzarlo?Voglio dire, anche il codice non offuscato può essere pazzo da riutilizzare a causa di paradigmi usati, accoppiamento di classe, responsabilità classiche sfocate, fest di dipendenza, festeggiamenti di callback e altro. Ciò significa che il codice offuscato è perfettamente sicuro, fino a quando i programmatori di robot non saranno in grado di comprendere la logica di programmazione e di riscrivere/rifasare velocemente il codice, cosa che non sta succedendo presto. – Felype