Συσκότιση εφαρμογών που δημιουργήθηκαν με χρήση του Dotfuscator
περίληψη
Επειδή οι εφαρμογές που βασίζονται στο .NET Framework δημιουργούνται σε αυτό που ονομάζεται κοινή ενδιάμεση γλώσσα, μπορούν να διαβαστούν σε μια μορφή κοντά στον αρχικό πηγαίο κώδικα χρησιμοποιώντας εργαλεία αποσυναρμολόγησης και παρόμοια. Αυτή η ενότητα περιγράφει τον τρόπο συσκότισης του Dotfuscator, του συσκοτίστη που συνοδεύει το Visual Studio, για να συσκοτίσετε τα ονόματα κλάσεων και μεθόδων σε μια μορφή που δεν είναι εύκολα αναγνώσιμη.
Μιλάμε για αυτό εδώ χρησιμοποιώντας το Visual Studio 2010, αλλά μπορείτε να χρησιμοποιήσετε το Dotfuscator το 2005 και το 2008 επίσης.
Περιβάλλον λειτουργίας
Υποστηριζόμενες εκδόσεις του Visual Studio
- 2005
- 2008
- 2010
Ελέγξτε την έκδοση του Visual Studio
- 2005
- 2008
- 2010
ουσία
Σχετικά με το Dotfuscator
Το Dotfuscator είναι ένα εργαλείο συσκότισης που καθιστά δύσκολη την ανάγνωση του πηγαίου κώδικα κατά την αποσυναρμολόγηση σε εφαρμογές που έχουν γραφτεί με το .NET Framework. Το Dotfuscator συνοδεύεται από το Visual Studio δωρεάν και έναντι αμοιβής.
Η δωρεάν έκδοση δεν είναι διαθέσιμη, εκτός εάν πολλές από τις δυνατότητές της είναι περιορισμένες ή έχει ξεκινήσει το Visual Studio, αλλά οποιοσδήποτε μπορεί να τη χρησιμοποιήσει εφόσον έχει εγκατεστημένο το Visual Studio. Η πληρωμένη έκδοση έχει πολλές ισχυρές δυνατότητες συσκότισης που δεν βρίσκονται στη δωρεάν έκδοση, αλλά προσφέρεται σε τιμή που είναι δύσκολο για το ευρύ κοινό να αντέξει οικονομικά.
Το Dotfuscator έχει διαφορετικές δυνατότητες, τιμές και εκδόσεις ανάλογα με την έκδοση, οπότε ανατρέξτε στην ακόλουθη αρχική σελίδα για λεπτομέρειες.
Διαδικασία συσκότισης
Ανέφερα νωρίτερα ότι οι εφαρμογές που δημιουργήθηκαν με το .NET Framework μπορούν να αποσυναρμολογήσουν και να διαβάσουν εύκολα τον αρχικό πηγαίο κώδικα, αλλά η πραγματική κατάσταση είναι ότι εάν αποσυναρμολογήσετε το αρχείο exe όπως φαίνεται στο σχήμα στα δεξιά, μπορείτε σχεδόν να αναπαραγάγετε τον αρχικό πηγαίο κώδικα, όπως χώρο ονομάτων, όνομα κλάσης, όνομα μεθόδου κ.λπ.
Περιγράφει τα βήματα για να κάνετε αυτά τα ονόματα συγκεχυμένα και συγκεχυμένα.
Η δημιουργία μιας εφαρμογής στο Visual Studio και η δημιουργία ενός αρχείου exe είναι ακριβώς ο ίδιος με τον κανονικό τρόπο δημιουργίας του.
Αφού δημιουργήσετε και δημιουργήσετε το αρχείο exe, επιλέξτε Εργαλεία από το μενού του Visual Studio και, στη συνέχεια, επιλέξτε Υπηρεσίες λογισμικού Dotfuscator.
Όταν ξεκινήσετε για πρώτη φορά, το παράθυρο διαλόγου "Άδεια χρήσης" εμφανίζεται όπως φαίνεται στην εικόνα στα δεξιά, οπότε διαβάστε προσεκτικά τα περιεχόμενα, επιλέξτε "Ναι, συμφωνώ με τη συμφωνία άδειας χρήσης. " και κάντε κλικ στο κουμπί "OK".
Ξεκινούν οι υπηρεσίες λογισμικού dotfuscator.
Το exe (ή το αρχείο dll) που πρέπει να συσκοτιστεί δεν χρειάζεται να προέρχεται από το τρέχον ανοιχτό έργο.
Επιλέξτε Συγκροτήματα εισόδου από το δέντρο στα αριστερά και κάντε κλικ στο Συγκροτήματα εισόδου στα δεξιά για να κάνετε κλικ στο κουμπί ....
Επιλέξτε το αρχείο exe που θέλετε να αποκρύψετε.
Το επιλεγμένο αρχείο exe προστίθεται στη λίστα. Εάν θέλετε να αποκρύψετε πολλά αρχεία, κάντε κλικ στο κουμπί "..." μετά τη δεύτερη γραμμή για να τα προσθέσετε.
Αφού επιλέξετε το exe που θέλετε να αποκρύψετε, κάντε κλικ στο κουμπί Δόμηση έργου από τη γραμμή εργαλείων.
Εάν υπάρχουν αλλαγές στο έργο, εμφανίζεται το παράθυρο διαλόγου επιβεβαίωσης αποθήκευσης έργου, οπότε κάντε κλικ στο "Ναι" για αποθήκευση.
Το έργο ονομάζεται «». xml" αρχείο. Το συσκοτισμένο αρχείο exe θα αποθηκευτεί επίσης στην ίδια θέση, οπότε αποθηκεύστε το αρχείο .xml σε οποιονδήποτε φάκελο.
Η κατασκευή θα ξεκινήσει και θα περιμένει μέχρι να ολοκληρωθεί. Σημειώστε ότι όσο μεγαλύτερο είναι το πρόγραμμα, τόσο περισσότερος χρόνος χρειάζεται για την κατασκευή. Εάν μοιάζει με το σχήμα στα δεξιά, η κατασκευή ολοκληρώνεται.
Το πεδίο μηνύματος εμφανίζει απλά αποτελέσματα, όπως την πρόοδο της δομής και πόσο συγκεχυμένη ήταν.
Εάν επιλέξετε "Αποτέλεσμα" από το δέντρο στα αριστερά, μπορείτε να δείτε λεπτομέρειες για το πώς έχουν αλλάξει τα ονόματα κλάσεων και μεθόδων.
Κάτω από τα ονόματα κλάσεων και μεθόδων, υπάρχει ένα εικονίδιο Dotfuscator και ένα όνομα όπως "a" ή "b", το οποίο είναι το συγκεχυμένο όνομα. Αλλάζοντας το όνομα της κλάσης ή το όνομα της μεθόδου σε ένα όνομα χωρίς νόημα όπως αυτό, μπορείτε να κάνετε τα περιεχόμενα του πηγαίου κώδικα δύσκολα στην ανάγνωση ακόμα και αν αποσυναρμολογηθεί.
Τα συσκοτισμένα αρχεία exe δημιουργούνται στο φάκελο .xml αρχεία που αποθηκεύονται στο Save Project, που ονομάζονται "Dotfuscated" και δημιουργούνται σε αυτόν. Εκτός από το αρχείο exe, έχει δημιουργηθεί ένα αρχείο "Map .xml", αλλά αυτό είναι το αποτέλεσμα της συσκότισης και δεν πρέπει να χρησιμοποιείται.
Τα συσκοτισμένα exes μπορούν να εκτελεστούν και να χρησιμοποιηθούν ως έχουν. Ωστόσο, υπάρχουν περιπτώσεις όπου δεν μπορεί να ξεκινήσει λόγω άγνωστου σφάλματος όπως φαίνεται στο σχήμα στα δεξιά.
Αυτή τη φορά, έγραψα μια εφαρμογή στο WPF, αλλά επειδή το αρχείο XAML του πρώτου παραθύρου που θα εμφανιστεί καθορίζεται ως συμβολοσειρά, η μετονομασία λόγω συσκότισης θα προκαλέσει την απώλεια της αναφοράς, με αποτέλεσμα ένα σφάλμα.
Οι εφαρμογές φόρμας των Windows παραπέμπουν απευθείας στην κλάση From, ώστε να μπορούν να εκτελούνται χωρίς σφάλματα ακόμα και αν είναι συγκεχυμένες. Ωστόσο, εάν καθορίσετε ένα όνομα κλάσης, έναν τύπο απαρίθμησης κ.λπ.
Αν δεν θέλετε να συσκοτίσετε μια κλάση ή κάτι τέτοιο, επιλέξτε Μετονομασία από το δέντρο στην αριστερή πλευρά του Dotfuscator και επιλέξτε Εξαίρεση από τη μεσαία καρτέλα.
Κάθε χώρος ονομάτων, όνομα κλάσης κ.λπ., θα εμφανίζεται στη λίστα στα δεξιά, οπότε ελέγξτε τα στοιχεία που δεν θέλετε να αποκρύψετε.
Εδώ, δεν θέλω να αλλάξω το όνομα κλάσης του παραθύρου που θα εμφανίζεται πρώτα, οπότε ελέγχω το "MainWindow".
Όταν κάνετε τη δομή, μπορείτε να δείτε ότι δεν υπάρχει αλλαγμένο όνομα κάτω από το όνομα της κλάσης στο MainWindows. (Η κλάση εφαρμογής έχει μετατραπεί σε "a")
Όταν εκτελείτε το συσκοτισμένο αρχείο exe, μπορείτε να δείτε ότι το παράθυρο εμφανίζεται σωστά.
Εάν αποσυναρμολογήσετε το συσκοτισμένο αρχείο exe, μπορείτε να δείτε ότι το όνομα της κλάσης και το όνομα της μεθόδου έχουν αλλάξει σωστά σε "a" ή "b".
Αλλά παρεμπιπτόντως. Οι βιβλιοθήκες του NET Framework, όπως τα ονόματα κλάσεων, δεν υπόκεινται σε μετονομασία, επειδή είναι συγκροτήσεις που είναι ήδη εγκατεστημένες στα Windows και αλλού.
Αυτή τη φορά, συσκότισα το προεπιλεγμένο έργο που δημιουργήθηκε ως έχει, οπότε νομίζω ότι υπάρχει μια εικόνα που δεν είναι τόσο συγκεχυμένη, αλλά νομίζω ότι η επίδραση της συσκότισης γίνεται σαφής επειδή ο αριθμός των τάξεων κλπ αυξάνεται καθώς μεγαλώνει το έργο.
Επίσης, παρόλο που έχουμε συμπεριλάβει τη διαδικασία στη δωρεάν έκδοση αυτή τη φορά, η πληρωμένη έκδοση επιτρέπει πιο περίπλοκη συσκότιση και επίσης αποτρέπει την αποσυναρμολόγηση. Ωστόσο, η συσκότιση έχει διάφορες δυσμενείς επιπτώσεις και ενδέχεται να συμβεί, οπότε όταν πραγματοποιείται συσκότιση, είναι απαραίτητο να το κάνετε ενώ εξετάζετε αν θα λειτουργήσει σωστά από την αρχή του σχεδιασμού.