Συσκοτίστε την εφαρμογή Silverlight με το Dotfuscator
Σχετικά με τον διασκορπιστή
Το Dotfuscator είναι ένα εργαλείο συσκότισης που καθιστά δύσκολη την ανάγνωση του πηγαίου κώδικα όταν αποσυναρμολογούνται εφαρμογές που έχουν γραφτεί με το .NET Framework. Το Dotfuscator είναι διαθέσιμο τόσο σε δωρεάν όσο και σε επί πληρωμή εκδόσεις λιανικής που συνοδεύουν το Visual Studio.
Η δωρεάν έκδοση είναι διαθέσιμη μόνο με πολλές περιορισμένες δυνατότητες και την υπόθεση ότι το Visual Studio εκτελείται, αλλά οποιοσδήποτε με εγκατεστημένο το Visual Studio μπορεί να το χρησιμοποιήσει. Η πληρωμένη έκδοση έχει πολλές ισχυρές δυνατότητες συσκότισης που δεν είναι διαθέσιμες στη δωρεάν έκδοση, αλλά μπορεί να είναι ενοχλητικό ότι προσφέρεται σε τιμή που είναι δύσκολο για το ευρύ κοινό να αντέξει οικονομικά.
Το Dotfuscator ενδέχεται να έχει διαφορετικές δυνατότητες, τιμές και εκδόσεις ανάλογα με την έκδοση, επομένως ανατρέξτε στον ακόλουθο ιστότοπο για λεπτομέρειες.
Αναλυμένος κώδικας
Όπως αναφέρθηκε παραπάνω, οι εφαρμογές που δημιουργούνται με το .NET Framework μπορούν εύκολα να διαβάσουν τον αρχικό πηγαίο κώδικα αποσυναρμολογώντας, αλλά αυτό που συμβαίνει στην πραγματικότητα είναι ότι όταν αποσυναρμολογείτε ένα αρχείο συναρμολόγησης όπως φαίνεται στην εικόνα, μπορεί να αναπαραχθεί το μεγαλύτερο μέρος του αρχικού πηγαίου κώδικα, όπως χώροι ονομάτων, ονόματα κλάσεων και ονόματα μεθόδων.
Διαδικασία συσκότισης
Ξεκινήστε δημιουργώντας την εφαρμογή Silverlight ως συνήθως και κάνοντας μια έκδοση Release. Εδώ, δημιουργούμε μια εφαρμογή που τοποθετεί μόνο δύο κουμπιά.
Στο φάκελο Bin\Release του φακέλου όπου βρίσκεται το έργο, πληκτρολογήστε . xap" είναι ένα αρχείο πακέτου που συνοψίζει τα προγράμματα και τα αρχεία που χρησιμοποιούνται στις εφαρμογές Silverlight.
Στην πραγματικότητα, αυτό το αρχείο συμπιέζεται και μεταγλωττίζεται ως αρχείο ZIP, οπότε η επέκταση είναι ". φερμουάρ".
Έχει αλλάξει σε αρχείο ZIP.
Όταν ανοίγετε το αρχείο, περιέχει ένα δηλωτικό αρχείο και ένα DLL. Αυτό το DLL είναι η μεταγλωττισμένη έκδοση του προγράμματος που εκτελείται ως εφαρμογή.
Παρεμπιπτόντως, το αρχείο DLL τοποθετείται επίσης στο φάκελο Release όταν είναι χτισμένο, οπότε αυτή τη φορά θα αποκρύψουμε αυτό το αρχείο.
Από το μενού Του Visual Studio, επιλέξτε Εργαλεία και, στη συνέχεια, επιλέξτε Προληπτικός προσδιορισμός κουκκίδων και ανάλυση.
Όταν ξεκινάτε για πρώτη φορά, θα εμφανιστεί το παράθυρο διαλόγου "Άδεια χρήσης", οπότε διαβάστε προσεκτικά τα περιεχόμενα, επιλέξτε "Ναι, αποδέχομαι την άδεια χρήσης" και κάντε κλικ στο κουμπί "OK".
Ξεκινά ο προληπτικός διαχωριστής dotfuscator και το Analytics CE.
Επιλέξτε "Είσοδοι" από το δέντρο στα αριστερά και κάντε κλικ στο κουμπί "Προσθήκη εισαγωγής".
Επιλέξτε το αρχείο DLL που δημιουργήσατε κατά τη διάρκεια της κατασκευής.
Επιλέξτε το αρχείο DLL που προσθέσατε και καταργήστε την επιλογή λειτουργία βιβλιοθήκης > μετατροπή XAML.
Εάν επιλεγεί η "Λειτουργία βιβλιοθήκης", οι και οι μέθοδοι που ορίζονται δημόσια δεν θα αποκρύπτονται.
Εάν επιλεγεί η "μετατροπή XAML", οι που ορίζονται στην XAML θα συσκοτιστούν, αλλά ανάλογα με τον τρόπο δημιουργίας της, θα προκληθεί σφάλμα εκκίνησης, οπότε αν προκύψει, καταργήστε την επιλογή της.
Βασικά, όλες οι, οι μέθοδοι, οι ιδιότητες και τα ονόματα μεταβλητών είναι συγκεχυμένα, αλλά αν δεν θέλετε να αποκρύψετε έναν συγκεκριμένο χώρο ονομάτων ή κλάση λόγω σειριοποίησης, επιλέξτε "Μετονομασία" από το δέντρο στα αριστερά, επιλέξτε την καρτέλα "Εξαίρεση" και ελέγξτε τον χώρο ονομάτων ή την κλάση προορισμού.
Στην περιοχή Ενσωματωμένοι κανόνες, βεβαιωθείτε ότι είναι επιλεγμένα τα Πεδία για το Silverlight και το WPF UserControls. Ο έλεγχος αυτός θα κάνει το πεδίο UserControls συγκεχυμένο και θα εκτελεστεί με επιτυχία. Μπορείτε να το καταργήσετε εάν φαίνεται να λειτουργεί σωστά ακόμα και μετά από συσκότιση.
Όταν τελειώσετε, κάντε κλικ στο κουμπί "Δημιουργία έργου" από τη γραμμή εργαλείων.
Εάν υπάρχουν αλλαγές στο έργο, θα εμφανιστεί το παράθυρο διαλόγου επιβεβαίωσης αποθήκευσης έργου, οπότε κάντε κλικ στο "Ναι" για αποθήκευση.
Το έργο ονομάζεται «. xml" αρχείο. Τα συσκοτισμένα αρχεία αποθηκεύονται στην ίδια θέση.
Περιμένετε να ολοκληρωθεί η κατασκευή καθώς ξεκινά. Σημειώστε ότι όσο μεγαλύτερο είναι το πρόγραμμα, τόσο περισσότερο χρειάζεται για την κατασκευή. Όταν μοιάζει με το σχήμα, η κατασκευή έχει ολοκληρωθεί.
Το πεδίο μηνύματος δείχνει την πρόοδο της κατασκευής και ένα σύντομο αποτέλεσμα, όπως το πόσο συγκεχυμένη ήταν.
Εάν επιλέξετε Αποτελέσματα από το δέντρο στα αριστερά, μπορείτε να δείτε λεπτομέρειες σχετικά με τον τρόπο αλλαγής των ονομάτων κλάσεων και μεθόδων.
Κάτω από τα ονόματα των κλάσεων και των μεθόδων, θα υπάρχει ένα εικονίδιο Dotfuscator και ονόματα όπως "a" και "b", τα οποία θα είναι το συγκεχυμένο όνομα. Αλλάζοντας το όνομα της κλάσης ή το όνομα της μεθόδου σε ένα όνομα χωρίς νόημα με αυτόν τον τρόπο, ακόμη και αν αποσυναρμολογηθεί, μπορεί να κάνει τα περιεχόμενα του πηγαίου κώδικα δυσανάγνωστα.
Το συγκεχυμένο αρχείο δημιουργείται σε ένα φάκελο που ονομάζεται "Dotfuscated" στο φάκελο του αρχείου .xml που είναι αποθηκευμένο στο Save Project. Εκτός από το συγκεχυμένο αρχείο, έχει δημιουργηθεί ένα αρχείο "Map.xml", αλλά αυτό είναι το αποτέλεσμα της συσκότισης και δεν χρησιμοποιείται.
Εάν αποσυναρμολογήσετε το συγκεχυμένο αρχείο, μπορείτε να δείτε ότι ορισμένα ονόματα κλάσεων και μεθόδων έχουν αλλάξει σε "a" ή "b".
Αυτή τη φορά, το προεπιλεγμένο έργο που δημιουργήθηκε ήταν συγκεχυμένο σχεδόν όπως ήταν, οπότε νομίζω ότι υπάρχει μια εικόνα ότι δεν είναι τόσο συγκεχυμένη, αλλά νομίζω ότι η επίδραση της συσκότισης γίνεται σαφέστερη επειδή ο αριθμός των τάξεων κλπ αυξάνεται καθώς το έργο μεγαλώνει.
Παρεμπιπτόντως, . NET Framework βιβλιοθήκες και δεν υπόκεινται σε μετονομασία, επειδή είναι συγκροτήσεις που είναι ήδη εγκατεστημένες στα Windows, για παράδειγμα.
Το Silverlight δεν χρησιμοποιεί DLL ως έχουν, επομένως συσκευάζονται ως αρχεία XAP. Όπως αναφέρθηκε στην αρχή, ένα αρχείο XAP είναι απλώς μια αλλαγή στην επέκταση του αρχείου ZIP, οπότε δημιουργεί ένα αρχείο ZIP συλλέγοντας τα αρχεία που περιέχονται στο αρχείο XAP και τα συσκοτισμένα DLL.
Η δημιουργία ενός αρχείου ZIP μπορεί να γίνει χρησιμοποιώντας τις τυπικές λειτουργίες λειτουργικού συστήματος.
Δημιουργείται ένα αρχείο ZIP.
Η επέκταση αλλάζει σε «. xap" και εάν το όνομα αρχείου είναι διαφορετικό, αλλάξτε το στο αρχικό όνομα αρχείου πακέτου.
Τοποθετήστε το αρχείο XAP σε μια θέση διανομής.
Ελέγξτε τη λειτουργία και δείτε αν λειτουργεί σωστά.
Εάν δεν ξεκινήσει, ελέγξτε μέχρι να λειτουργήσει κανονικά μειώνοντας τον συγκεχυμένο κώδικα. Σημειώστε ότι το Silverlight συχνά κολλάει σε θέματα που σχετίζονται με την XAML.
Παρόλο που οι οδηγίες δεν παρατίθενται εδώ, εάν θέλετε να υπογράψετε ένα πρόγραμμα, δημιουργήστε το σε κατάσταση καθυστέρησης, αποκρύψτε τη συναρμολόγηση και, στη συνέχεια, υπογράψτε ξανά. Ακόμα κι αν το αποκρύψετε ενώ είναι υπογεγραμμένο, ο κωδικός υπογραφής που επισυνάπτεται κατά τη στιγμή της κατασκευής και ο κωδικός υπογραφής μετά τη συσκότιση δεν θα ταιριάζουν, οπότε δεν θα μπορείτε να το ξεκινήσετε.
Σε αυτό το άρθρο, έχω αναφέρει τα βήματα για τη δωρεάν έκδοση, αλλά εάν χρησιμοποιείτε την πληρωμένη έκδοση, μπορείτε να εκτελέσετε πιο περίπλοκη συσκότιση και να αποτρέψετε την αποσυναρμολόγηση. Ωστόσο, η συσκότιση έχει τη δυνατότητα να προκαλέσει διάφορες δυσμενείς επιπτώσεις, οπότε όταν γίνεται συσκότιση, είναι απαραίτητο να εξεταστεί εάν θα λειτουργήσει σωστά από την αρχή του σχεδιασμού.