Zaciemnianie aplikacji Silverlight za pomocą narzędzia Dotfuscator

Strona zaktualizowana :
Data utworzenia strony :

O firmie Dotfuscator

Dotfuscator to zaciemniacz, który utrudnia odczytanie kodu źródłowego, gdy aplikacje napisane za pomocą .NET Framework są dezasemblowane. Dotfuscator jest dostępny zarówno w wersji bezpłatnej, jak i płatnej, która jest dostarczana z programem Visual Studio.

Bezpłatna wersja jest dostępna tylko z wieloma ograniczonymi funkcjami i założeniem, że program Visual Studio jest uruchomiony, ale każdy z zainstalowanym programem Visual Studio może z niego korzystać. Wersja płatna ma wiele potężnych funkcji zaciemniania, które nie są dostępne w wersji darmowej, ale może być denerwujące, że jest oferowana po cenie, na którą trudno sobie pozwolić ogółowi społeczeństwa.

Dotfuscator może mieć różne funkcje, ceny i wersje w zależności od wersji, więc szczegółowe informacje można znaleźć na następującej stronie internetowej.

Dotfuscator

Przeanalizowany kod

Jak wspomniano powyżej, aplikacje utworzone za pomocą .NET Framework mogą łatwo odczytać oryginalny kod źródłowy przez deasemblację, ale w rzeczywistości dzieje się tak, że po zdezasemblowaniu pliku zestawu, jak pokazano na rysunku, większość oryginalnego kodu źródłowego, takiego jak przestrzenie nazw, nazwy klas i nazwy metod, może zostać odtworzona.

解析されたコード

Procedura zaciemniania

Zacznij od utworzenia aplikacji Silverlight jak zwykle i wykonania kompilacji wydania. Tutaj tworzymy aplikację, która umieszcza tylko dwa przyciski.

Release ビルド

W folderze Bin\Release folderu, w którym znajduje się projekt, wpisz . xap" to plik pakietu, który podsumowuje programy i pliki używane w aplikacjach Silverlight.

XAP ファイル

W rzeczywistości ten plik jest skompresowany i skompilowany jako plik ZIP, więc rozszerzenie to ". zamek błyskawiczny".

拡張子を .zip に変更

Został zmieniony na plik ZIP.

ZIP ファイル

Po otwarciu plik zawiera plik manifestu i bibliotekę DLL. Ta biblioteka DLL jest skompilowaną wersją programu, który działa jako aplikacja.

Nawiasem mówiąc, plik DLL jest również umieszczany w folderze Release podczas jego budowania, więc tym razem zaciemnimy ten plik.

ZIP ファイルの中身

W menu Visual Studio wybierz pozycję Narzędzia, a następnie wybierz pozycję PreEmptive Dotfuscator And Analytics.From the Visual Studio menu, select Tools, and then select PreEmptive Dotfuscator And Analytics.

Przy pierwszym uruchomieniu zostanie wyświetlone okno dialogowe "Umowa licencyjna", więc przeczytaj uważnie zawartość, zaznacz "Tak, akceptuję umowę licencyjną" i kliknij przycisk "OK".

PreEmptive Dotfuscator And Analytics を選択

Rozpoczyna się PreEmptive Dotfuscator And Analytics CE.

PreEmptive Dotfuscator And Analytics CE

Wybierz "Wejścia" z drzewa po lewej stronie i kliknij przycisk "Dodaj wejście".

入力の追加

Wybierz plik DLL wygenerowany podczas kompilacji.

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

Wybierz dodany plik DLL i usuń zaznaczenie opcji Tryb biblioteki > Konwersja XAML.

Jeśli "Tryb biblioteki" jest zaznaczony, klasy i metody zdefiniowane publicznie nie zostaną zaciemnione.

Jeśli opcja "Konwersja XAML" jest zaznaczona, klasy zdefiniowane w XAML zostaną zaciemnione, ale w zależności od sposobu ich utworzenia spowoduje to błąd uruchamiania, więc jeśli wystąpi, usuń jego zaznaczenie.

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

Zasadniczo wszystkie klasy, metody, właściwości i nazwy zmiennych są zaciemnione, ale jeśli nie chcesz zaciemniać określonej przestrzeni nazw lub klasy z powodu serializacji, wybierz "Zmień nazwę" z drzewa po lewej stronie, wybierz kartę "Wyklucz" i sprawdź docelową przestrzeń nazw lub klasę.

難読化の除外

W obszarze Reguły wbudowane upewnij się, że jest zaznaczona opcja Pola dla formantów użytkownika programu Silverlight i WPF. Zaznaczenie tej opcji spowoduje, że pole UserControls zostanie zaciemnione i będzie działać pomyślnie. Możesz go odznaczyć, jeśli wydaje się, że działa poprawnie nawet po zaciemnieniu.

Silverlight および WPF UserControls のフィールド

Po zakończeniu kliknij przycisk "Zbuduj projekt" na pasku narzędzi.

プロジェクトのビルド

Jeśli w projekcie nastąpią zmiany, zostanie wyświetlone okno dialogowe potwierdzenia zapisu projektu, więc kliknij "Tak", aby zapisać.

プロジェクト保存確認ダイアログ

Projekt nosi nazwę ". XML". Zaciemnione pliki są zapisywane w tej samej lokalizacji.

プロジェクト保存

Poczekaj na zakończenie kompilacji podczas jej uruchamiania. Zauważ, że im większy program, tym dłużej trwa budowanie. Gdy wygląda jak rysunek, kompilacja jest kompletna.

Pole komunikatu pokazuje postęp kompilacji i krótki wynik, taki jak stopień zaciemnienia.

ビルド完了

Jeśli wybierzesz Results z drzewa po lewej stronie, zobaczysz szczegółowe informacje o zmianie nazw klas i metod.

Pod nazwami klas i metod będzie ikona Dotfuscator oraz nazwy takie jak "a" i "b", które będą zaciemnioną nazwą. Zmieniając w ten sposób nazwę klasy lub metody na bezsensowną, nawet jeśli zostanie zdezasemblowana, może to utrudnić odczytanie zawartości kodu źródłowego.

難読化結果

Zaciemniony plik jest tworzony w folderze o nazwie "Dotfuscated" w folderze pliku .xml zapisanego w Save Project. Oprócz zaciemnionego pliku utworzono plik "Map.xml", ale jest to wynik zaciemnienia i nie jest używany.

難読化したファイル

Jeśli zdemontujesz zaciemniony plik, zobaczysz, że niektóre nazwy klas i metod zostały zmienione na "a" lub "b".

Tym razem domyślny utworzony projekt został zaciemniony prawie tak, jak był, więc myślę, że jest obraz, że nie jest tak zaciemniony, ale myślę, że efekt zaciemnienia staje się wyraźniejszy, ponieważ liczba klas itp. rośnie wraz z rozwojem projektu.

Na marginesie, . NET Framework i nie podlegają zmianie nazwy, ponieważ są to zestawy, które są już zainstalowane na przykład w systemie Windows.

難読化したコードの解析

Program Silverlight nie używa bibliotek DLL w stanie takim, w jakim jest, więc są one pakowane jako pliki XAP. Jak wspomniano na początku, plik XAP jest tylko zmianą w rozszerzeniu pliku ZIP, więc tworzy plik ZIP, zbierając pliki zawarte w pliku XAP i zaciemnionych bibliotekach DLL.

Tworzenie pliku ZIP można wykonać przy użyciu standardowych funkcji systemu operacyjnego.

ファイルを ZIP 化

Zostanie utworzony plik ZIP.

ZIP ファイル

Rozszerzenie zostanie zmienione na '. xap", a jeśli nazwa pliku jest inna, zmień ją na oryginalną nazwę pliku pakietu.

Umieść plik XAP w lokalizacji dystrybucji.

XAP ファイルに変更

Sprawdź działanie i sprawdź, czy działa poprawnie.

Jeśli się nie uruchomi, sprawdź, aż działa normalnie, zmniejszając zaciemniony kod. Należy pamiętać, że program Silverlight często utknął w sprawach związanych z językiem XAML.

動作確認

Chociaż instrukcje nie są tutaj wymienione, jeśli chcesz podpisać program, skompiluj go w stanie podpisanego z opóźnieniem, zaciemnij zestaw, a następnie podpisz ponownie. Nawet jeśli zaciemnisz go podczas podpisywania, kod podpisu dołączony w momencie kompilacji i kod podpisu po zaciemnieniu nie będą zgodne, więc nie będziesz mógł go uruchomić.

W tym artykule wymieniłem kroki dla bezpłatnej wersji, ale jeśli korzystasz z wersji płatnej, możesz wykonać bardziej złożone zaciemnianie i zapobiec samemu demontażowi. Jednak zaciemnianie może powodować różne negatywne skutki, więc podczas zaciemniania należy rozważyć, czy będzie działać prawidłowo od początku projektowania.