Συσκοτίστε την εφαρμογή Silverlight με το Dotfuscator

Σελίδα ενημέρωση :
Ημερομηνία δημιουργίας σελίδας :

Σχετικά με τον διασκορπιστή

Το Dotfuscator είναι ένα εργαλείο συσκότισης που καθιστά δύσκολη την ανάγνωση του πηγαίου κώδικα όταν αποσυναρμολογούνται εφαρμογές που έχουν γραφτεί με το .NET Framework. Το Dotfuscator είναι διαθέσιμο τόσο σε δωρεάν όσο και σε επί πληρωμή εκδόσεις λιανικής που συνοδεύουν το Visual Studio.

Η δωρεάν έκδοση είναι διαθέσιμη μόνο με πολλές περιορισμένες δυνατότητες και την υπόθεση ότι το Visual Studio εκτελείται, αλλά οποιοσδήποτε με εγκατεστημένο το Visual Studio μπορεί να το χρησιμοποιήσει. Η πληρωμένη έκδοση έχει πολλές ισχυρές δυνατότητες συσκότισης που δεν είναι διαθέσιμες στη δωρεάν έκδοση, αλλά μπορεί να είναι ενοχλητικό ότι προσφέρεται σε τιμή που είναι δύσκολο για το ευρύ κοινό να αντέξει οικονομικά.

Το Dotfuscator ενδέχεται να έχει διαφορετικές δυνατότητες, τιμές και εκδόσεις ανάλογα με την έκδοση, επομένως ανατρέξτε στον ακόλουθο ιστότοπο για λεπτομέρειες.

Διασκορπιστής

Αναλυμένος κώδικας

Όπως αναφέρθηκε παραπάνω, οι εφαρμογές που δημιουργούνται με το .NET Framework μπορούν εύκολα να διαβάσουν τον αρχικό πηγαίο κώδικα αποσυναρμολογώντας, αλλά αυτό που συμβαίνει στην πραγματικότητα είναι ότι όταν αποσυναρμολογείτε ένα αρχείο συναρμολόγησης όπως φαίνεται στην εικόνα, μπορεί να αναπαραχθεί το μεγαλύτερο μέρος του αρχικού πηγαίου κώδικα, όπως χώροι ονομάτων, ονόματα κλάσεων και ονόματα μεθόδων.

解析されたコード

Διαδικασία συσκότισης

Ξεκινήστε δημιουργώντας την εφαρμογή Silverlight ως συνήθως και κάνοντας μια έκδοση Release. Εδώ, δημιουργούμε μια εφαρμογή που τοποθετεί μόνο δύο κουμπιά.

Release ビルド

Στο φάκελο Bin\Release του φακέλου όπου βρίσκεται το έργο, πληκτρολογήστε . xap" είναι ένα αρχείο πακέτου που συνοψίζει τα προγράμματα και τα αρχεία που χρησιμοποιούνται στις εφαρμογές Silverlight.

XAP ファイル

Στην πραγματικότητα, αυτό το αρχείο συμπιέζεται και μεταγλωττίζεται ως αρχείο ZIP, οπότε η επέκταση είναι ". φερμουάρ".

拡張子を .zip に変更

Έχει αλλάξει σε αρχείο ZIP.

ZIP ファイル

Όταν ανοίγετε το αρχείο, περιέχει ένα δηλωτικό αρχείο και ένα DLL. Αυτό το DLL είναι η μεταγλωττισμένη έκδοση του προγράμματος που εκτελείται ως εφαρμογή.

Παρεμπιπτόντως, το αρχείο DLL τοποθετείται επίσης στο φάκελο Release όταν είναι χτισμένο, οπότε αυτή τη φορά θα αποκρύψουμε αυτό το αρχείο.

ZIP ファイルの中身

Από το μενού Του Visual Studio, επιλέξτε Εργαλεία και, στη συνέχεια, επιλέξτε Προληπτικός προσδιορισμός κουκκίδων και ανάλυση.

Όταν ξεκινάτε για πρώτη φορά, θα εμφανιστεί το παράθυρο διαλόγου "Άδεια χρήσης", οπότε διαβάστε προσεκτικά τα περιεχόμενα, επιλέξτε "Ναι, αποδέχομαι την άδεια χρήσης" και κάντε κλικ στο κουμπί "OK".

PreEmptive Dotfuscator And Analytics を選択

Ξεκινά ο προληπτικός διαχωριστής dotfuscator και το Analytics CE.

PreEmptive Dotfuscator And Analytics CE

Επιλέξτε "Είσοδοι" από το δέντρο στα αριστερά και κάντε κλικ στο κουμπί "Προσθήκη εισαγωγής".

入力の追加

Επιλέξτε το αρχείο DLL που δημιουργήσατε κατά τη διάρκεια της κατασκευής.

ビルドで生成した DLL ファイルを選択

Επιλέξτε το αρχείο DLL που προσθέσατε και καταργήστε την επιλογή λειτουργία βιβλιοθήκης > μετατροπή XAML.

Εάν επιλεγεί η "Λειτουργία βιβλιοθήκης", οι και οι μέθοδοι που ορίζονται δημόσια δεν θα αποκρύπτονται.

Εάν επιλεγεί η "μετατροπή XAML", οι που ορίζονται στην XAML θα συσκοτιστούν, αλλά ανάλογα με τον τρόπο δημιουργίας της, θα προκληθεί σφάλμα εκκίνησης, οπότε αν προκύψει, καταργήστε την επιλογή της.

「ライブラリ モード」「XAML の変換」のチェックを外す

Βασικά, όλες οι, οι μέθοδοι, οι ιδιότητες και τα ονόματα μεταβλητών είναι συγκεχυμένα, αλλά αν δεν θέλετε να αποκρύψετε έναν συγκεκριμένο χώρο ονομάτων ή κλάση λόγω σειριοποίησης, επιλέξτε "Μετονομασία" από το δέντρο στα αριστερά, επιλέξτε την καρτέλα "Εξαίρεση" και ελέγξτε τον χώρο ονομάτων ή την κλάση προορισμού.

難読化の除外

Στην περιοχή Ενσωματωμένοι κανόνες, βεβαιωθείτε ότι είναι επιλεγμένα τα Πεδία για το Silverlight και το WPF UserControls. Ο έλεγχος αυτός θα κάνει το πεδίο UserControls συγκεχυμένο και θα εκτελεστεί με επιτυχία. Μπορείτε να το καταργήσετε εάν φαίνεται να λειτουργεί σωστά ακόμα και μετά από συσκότιση.

Silverlight および WPF 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 化

Δημιουργείται ένα αρχείο ZIP.

ZIP ファイル

Η επέκταση αλλάζει σε «. xap" και εάν το όνομα αρχείου είναι διαφορετικό, αλλάξτε το στο αρχικό όνομα αρχείου πακέτου.

Τοποθετήστε το αρχείο XAP σε μια θέση διανομής.

XAP ファイルに変更

Ελέγξτε τη λειτουργία και δείτε αν λειτουργεί σωστά.

Εάν δεν ξεκινήσει, ελέγξτε μέχρι να λειτουργήσει κανονικά μειώνοντας τον συγκεχυμένο κώδικα. Σημειώστε ότι το Silverlight συχνά κολλάει σε θέματα που σχετίζονται με την XAML.

動作確認

Παρόλο που οι οδηγίες δεν παρατίθενται εδώ, εάν θέλετε να υπογράψετε ένα πρόγραμμα, δημιουργήστε το σε κατάσταση καθυστέρησης, αποκρύψτε τη συναρμολόγηση και, στη συνέχεια, υπογράψτε ξανά. Ακόμα κι αν το αποκρύψετε ενώ είναι υπογεγραμμένο, ο κωδικός υπογραφής που επισυνάπτεται κατά τη στιγμή της κατασκευής και ο κωδικός υπογραφής μετά τη συσκότιση δεν θα ταιριάζουν, οπότε δεν θα μπορείτε να το ξεκινήσετε.

Σε αυτό το άρθρο, έχω αναφέρει τα βήματα για τη δωρεάν έκδοση, αλλά εάν χρησιμοποιείτε την πληρωμένη έκδοση, μπορείτε να εκτελέσετε πιο περίπλοκη συσκότιση και να αποτρέψετε την αποσυναρμολόγηση. Ωστόσο, η συσκότιση έχει τη δυνατότητα να προκαλέσει διάφορες δυσμενείς επιπτώσεις, οπότε όταν γίνεται συσκότιση, είναι απαραίτητο να εξεταστεί εάν θα λειτουργήσει σωστά από την αρχή του σχεδιασμού.