Zaciemnianie aplikacji utworzonych za pomocą Dotfuscatora

Strona zaktualizowana :
Data utworzenia strony :

streszczenie

Ponieważ aplikacje oparte na .NET Framework są tworzone w tak zwanym wspólnym języku pośrednim, można je odczytać w formie zbliżonej do oryginalnego kodu źródłowego za pomocą narzędzi do demontażu i tym podobnych. W tej sekcji opisano sposób zaciemniania Dotfuscator, zaciemniacza dostarczanego z programem Visual Studio, w celu zaciemnienia nazw klas i metod do formatu, który nie jest łatwy do odczytania.

Mówimy o tym tutaj za pomocą Visual Studio 2010, ale możesz również użyć Dotfuscator w 2005 i 2008 roku.

Dotfuscator を使用して作成したアプリケーションを難読化する

Środowisko pracy

Obsługiwane wersje programu Visual Studio

  • 2005
  • 2008
  • 2010

Sprawdź wersję programu Visual Studio

  • 2005
  • 2008
  • 2010

substancja

O obiekcie Dotfuscator

Dotfuscator to narzędzie zaciemniające, które utrudnia odczytanie kodu źródłowego po zdezasemblowaniu w aplikacjach napisanych za pomocą .NET Framework. Dotfuscator jest dostarczany z Visual Studio za darmo i za opłatą.

Bezpłatna wersja nie jest dostępna, chyba że wiele jej funkcji jest ograniczonych lub program Visual Studio jest uruchomiony, ale każdy może z niego korzystać, o ile ma zainstalowany program Visual Studio. Płatna wersja ma wiele potężnych funkcji zaciemniania, których nie ma w wersji bezpłatnej, ale jest oferowana w cenie, na którą trudno sobie pozwolić ogółowi społeczeństwa.

Dotfuscator ma różne funkcje, ceny i edycje w zależności od wersji, więc zapoznaj się z poniższą stroną główną, aby uzyskać szczegółowe informacje.

Procedura zaciemniania

難読化していないアプリケーションの逆アセンブル結果

Wspomniałem wcześniej, że aplikacje utworzone za pomocą .NET Framework mogą zdezasemblować i łatwo odczytać oryginalny kod źródłowy, ale rzeczywista sytuacja jest taka, że jeśli zdezasemblujesz plik exe, jak pokazano na rysunku po prawej stronie, możesz prawie odtworzyć oryginalny kod źródłowy, taki jak przestrzeń nazw, nazwa klasy, nazwa metody itp.

Opisuje kroki, które mają na celu pomylenie i zaciemnienie tych nazw.

Dotfuscator Software Services

Tworzenie aplikacji w programie Visual Studio i tworzenie pliku exe jest dokładnie takie samo jak normalny sposób jej tworzenia.

Po skompilowaniu i utworzeniu pliku exe wybierz pozycję Narzędzia z menu programu Visual Studio, a następnie wybierz pozycję Dotfuscator Software Services.

使用許諾契約書

Przy pierwszym uruchomieniu wyświetlane jest okno dialogowe "Umowa licencyjna", jak pokazano na rysunku po prawej stronie, więc przeczytaj uważnie zawartość, zaznacz "Tak, zgadzam się na umowę licencyjną." i kliknij przycisk "OK".

Dotfuscator Software Services

Zostanie uruchomiony dotfuscator Software Services.

入力アセンブリの追加

Plik exe (lub dll), który ma zostać zaciemniony, nie musi pochodzić z aktualnie otwartego projektu.

Wybierz Zestawy wejściowe z drzewa po lewej stronie i kliknij Zestawy wejściowe po prawej stronie, aby kliknąć przycisk ... .

難読化する exe ファイル

Wybierz plik exe, który chcesz zaciemnić.

追加したアセンブリ

Wybrany plik exe zostanie dodany do listy. Jeśli chcesz zaciemnić wiele plików, kliknij przycisk "..." po drugim wierszu, aby je dodać.

プロジェクトのビルド

Po wybraniu pliku exe, który chcesz zaciemnić, kliknij przycisk Zbuduj projekt na pasku narzędzi.

プロジェクトの保存

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

プロジェクトの保存場所指定

Projekt nazywa się ". xml". Zaciemniony plik exe zostanie również zapisany w tej samej lokalizacji, więc zapisz plik .xml w dowolnym folderze.

ビルド

Rozpocznie się kompilacja i poczeka na jej ukończenie. Zauważ, że im większy program, tym dłużej trwa budowa. Jeśli wygląda jak figura po prawej stronie, kompilacja jest zakończona.

Pole komunikatu wyświetla proste wyniki, takie jak postęp kompilacji i sposób jej zaciemnienia.

難読化結果

Jeśli wybierzesz "Wynik" z drzewa po lewej stronie, zobaczysz szczegóły zmiany nazw klas i metod.

Poniżej nazw klas i metod znajduje się ikona Dotfuscator i nazwa, taka jak "a" lub "b", która jest zaciemnioną nazwą. Zmieniając nazwę klasy lub nazwę metody na tak bezsensowną nazwę, jak ta, możesz utrudnić odczytanie zawartości kodu źródłowego, nawet jeśli zostanie zdemontowany.

難読化したアセンブリ

Zaciemnione pliki exe są tworzone w folderze .xml plików zapisanych w Save Project, o nazwie "Dotfuscated", i są w nim tworzone. Oprócz pliku exe utworzono plik "Map .xml", ale jest to wynik zaciemnienia i nie należy go używać.

難読化したアセンブリの実行時エラー

Zaciemnione exes mogą być uruchamiane i używane tak jak są. Istnieją jednak przypadki, w których nie można go uruchomić z powodu nieznanego błędu, jak pokazano na rysunku po prawej stronie.

Tym razem napisałem aplikację w WPF, ale ponieważ plik XAML pierwszego okna do wyświetlenia jest określony jako ciąg, zmiana nazwy z powodu zaciemnienia spowoduje utratę odwołania, co spowoduje błąd.

Aplikacje formularzy systemu Windows odwołują się bezpośrednio do klasy From, dzięki czemu mogą działać bez błędów, nawet jeśli są zaciemnione. Jeśli jednak określisz nazwę klasy, typ enum itp. według nazwy, musisz zachować ostrożność, ponieważ istnieje możliwość, że wystąpi ten sam błąd.

難読化の除外

Jeśli nie chcesz zaciemniać klasy lub czegoś podobnego, wybierz Zmień nazwę z drzewa po lewej stronie Dotfuscator i wybierz Wyklucz ze środkowej karty.

Każda przestrzeń nazw, nazwa klasy itp. będą wyświetlane na liście po prawej stronie, więc sprawdź elementy, których nie chcesz zaciemniać.

Tutaj nie chcę zmieniać nazwy klasy okna, które ma być wyświetlane jako pierwsze, więc sprawdzam "MainWindow".

難読化から除外されたクラス

Po wykonaniu kompilacji widać, że nie ma zmienionej nazwy pod nazwą klasy w MainWindows. (Klasa aplikacji została przekonwertowana na "a")

難読化したアセンブリの実行

Po uruchomieniu zaciemnionego pliku exe widać, że okno jest wyświetlane poprawnie.

難読化後の逆アセンブル

Jeśli zdezasemblujesz zaciemniony plik exe, zobaczysz, że nazwa klasy i nazwa metody zostały poprawnie zmienione na "a" lub "b".

Ale na marginesie. NET Framework biblioteki, takie jak nazwy klas, nie podlegają zmianie nazwy, ponieważ są to zestawy, które są już zainstalowane w systemie Windows i innych miejscach.

Tym razem zaciemniłem domyślny projekt utworzony tak, jak jest, więc myślę, że istnieje obraz, który nie jest tak zaciemniony, ale myślę, że efekt zaciemnienia staje się jasny, ponieważ liczba klas itp. wzrasta wraz z rozwojem projektu.

Ponadto, chociaż tym razem włączyliśmy procedurę do darmowej wersji, płatna wersja pozwala na bardziej złożone zaciemnianie, a także zapobiega samemu demontażowi. Jednak zaciemnianie ma różne niekorzystne skutki i może wystąpić, więc podczas wykonywania zaciemniania konieczne jest wykonanie go, rozważając, czy będzie działać prawidłowo od początku projektowania.