Συμφωνώ με την Νατάσα. Θα προσθέσω επίσης ότι παίζει πολύ μεγάλο ρόλο τί θέλεις να πετύχεις. Το obfuscations, σε όποια μορφή και να γίνει, ό,τι και να υποστηρίζει η εταιρεία που το πουλάει, δημιουργεί προβλήματα. Στην απλούστερη περίπτωση, ο κώδικας που εκτελείται δεν είναι αυτός που έγραψες, οπότε θα είναι δυσκολότερο το debugging. Η διαδικασία του obfusation μάλιστα μπορεί άνετα να δημιουργήσει νέα bugs τα οποία πολύ δύσκολα θα αντιμετωπίσεις.
Ανάλογα με το τί θέλεις να κάνεις, μπορεί να χρειάζεσαι ελάχιστο obfuscation. Αν, για παράδειγμα θέλεις να κλειδώσεις ένα πρόγραμμα, μπορεί να μην χρειάζεται καν να χρησιμοποιήσεις obfuscation. Μπορείς να χρησιμοποιήσεις κάποια μορφή activation για να εμποδίσεις τα παράνομα αντίγραφα. Υπάρχει ένα αρκετά καλό και φθηνό εργαλείο γι αυτή τη δουλειά, το XHEO το οποίο περιλαμβάνει και το δικό του obfuscator.
Αν έχεις αναπτύξει κάποιο ιδιαίτερο αλγόριθμο, ο μόνος ίσως τρόπος να τον εξασφαλίσεις, είναι ένα δίπλωμα ευρεσιτεχνίας. Αυτά όμως κοστίζουν, και δεν αποκλείεται να ανακαλύψεις ότι η ιδέα που είχες έχει ήδη ανακαλυφθεί από άλλους. Επίσης, ένα δίπλωμα ευρεσιτεχνίας δεν έχει μεγάλη αξία αν δεν μπορείς να απαιτήσεις (δηλ. να πληρώσεις δικηγόρο να απαιτήσει) τα δικαιώματα σου από όσους σε αντιγράψουν.
Πρέπει πάντως να έχεις υπόψη ότι η προστασία του κώδικα σου δεν συμφέρει αν κοστίζει περισσότερο από τον ίδιο τον κώδικα. Είναι συνηθισμένο να υποτιμά κανείς τη δυσκολία που έχει η προστασία ενός προγράμματος αλλά και η ανάπτυξη του. Υπάρχει πάντα ο κίνδυνος, προσπαθώντας να προστατέψεις το πρόγραμμα σου, να ξοδέψεις τόσο χρόνο και κόπο ώστε να μην μπορέσεις να το αναπτύξεις σε επαρκές σημείο ώστε να το πουλήσεις.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos