模糊處理使用 Dotfuscator 創建的應用程式

更新頁 :
頁面創建日期 :

概述

基於 .NET Framework 編寫的應用程式以稱為通用中間語言的形式創建,因此可以使用拆解工具等以接近原始原始原始程式碼的方式讀取應用程式。 本節介紹 Visual Studio 附帶的模糊處理工具 Dotfuscator 如何將模糊處理到不容易閱讀的格式,如類和方法名稱。

儘管我們使用 Visual Studio 2010 進行了介紹,但我們也可以使用 Dotfuscator 在 2005 年和 2008 年使用。

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

操作環境

對應 Visual Studio 版本

  • 2005
  • 2008
  • 2010

確認 Visual Studio 版本

  • 2005
  • 2008
  • 2010

內容

關於 Dotfuscator 的更多資訊

Dotfuscator 是一種模糊處理工具,用於在拆解使用 .NET 框架創建的應用程式時使原始程式碼難以讀取。 Dotfuscator 包括 Visual 工作室附帶的免費和付費零售版本。

免費版本必須假定許多功能有限或 Visual 工作室已啟動,但只要安裝了 Visual Studio,任何人都可以使用它。 雖然有很多強大的模糊處理功能,這是在付費版本中不存在的,但它以普通人很難觸及的價格提供。

Dotfuscator 的功能、價格和版本因版本而異,因此請訪問以下主頁瞭解更多資訊。

模糊處理程式

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

前面提到,在 .NET Framework 中創建的應用程式很容易被拆解和讀取原始原始原始程式碼,但實際情況是,當您拆解 exe 檔時,命名空間、類名稱和方法名稱等原始原始原始程式碼幾乎可以重現,如右圖所示。

提供有關如何使這些名稱難以理解和模糊處理的過程。

Dotfuscator Software Services

在 Visual Studio 中創建應用程式並創建 exe 檔的方式與創建應用程式的方式完全相同。

生成並創建 exe 檔後,從「視覺工作室」功能表中選擇「工具」,然後選擇「軟體服務」。

使用許諾契約書

首次啟動時,將顯示「許可協定」對話框,如右圖所示,因此請仔細閱讀內容,選中“是,我接受許可協定”,然後按下“確定”按鈕。

Dotfuscator Software Services

啟動“Dotfuscator 軟體服務”。

入力アセンブリの追加

模糊處理 exe(或 dll 檔)不必來自當前打開的專案。

從左側樹中選擇“輸入程式集”,然後按下右側輸入程式集中的“...”按鈕。

難読化する exe ファイル

選擇要模糊處理 exe 檔。

追加したアセンブリ

您選擇的 exe 檔將加入清單中。 如果要混淆多個檔,請按兩下第二行或後續行中的“...”按鈕以添加它們。

プロジェクトのビルド

選擇要模糊處理 exe 後,按下工具列上的「生成專案」 按鈕。

プロジェクトの保存

如果項目發生更改,則會顯示「保存項目確認」對話框,按兩下是「以保存它。

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

專案是“。 xml“檔。 模糊處理 exe 檔也儲存在同一位置,因此請將 .xml 檔保存到任何資料夾。

ビルド

生成將開始,因此請等待它完成。 請注意,程式構建時間越長,生成時間就越長。 現在,您已經構建了右圖。

消息欄位顯示簡單的結果,例如生成進度和可讀性。

難読化結果

通過從左側樹中選擇“結果”,可以了解有關類和方法名稱如何更改的詳細資訊。

類和方法名稱下有一個 Dotfuscator 圖示和名稱,如“a”和“b”,這是模糊的名稱。 通過將類或方法名稱更改為無意義的名稱,可以使原始程式碼的內容難以閱讀,即使它們被拆解。

難読化したアセンブリ

模糊處理 exe 檔在保存專案時保存的 .xml 檔案的資料夾中創建名為“Dotfuscated”的資料夾,並在其中創建。 除了 exe 檔之外,還創建了“ Map .xml” 檔,但這是模糊處理的結果檔,因此不會使用。

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

模糊的 exe 可以按原樣運行和使用。 但是,在某些情況下,它可能無法啟動與未知錯誤,如右圖所示。

這一次,我在 WPF 中創建了應用程式,但由於第一個視窗的 XAML 檔由字串指定,因此由於模糊處理重命名,引用將消失,從而導致錯誤。

對於 Windows 窗體應用程式,它直接引用「寄件者」類,因此,如果模糊處理,則可以運行它,而不會出錯。 但是,請注意,如果按名稱指定類名稱、枚舉等,則可能會出現類似的錯誤。

難読化の除外

如果不想混淆任何類,請從 Dotfuscator 左側的樹中選擇“重命名”,然後從中間選項卡中選擇“排除”。

每個命名空間、類名稱等都顯示在右側的清單中,因此請檢查不想混淆的專案。

在這裡,我們選中「主視窗」 因為我不想更改要首先顯示的視窗的類名稱。

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

生成時,可以驗證主 Windows 類名稱下沒有更改的名稱。 (應用類已轉換為“a”)

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

運行模糊處理后 exe 檔時,可以驗證視窗是否正確顯示。

難読化後の逆アセンブル

通過拆解模糊的 exe 檔,您可以看到類和方法名稱已正確更改為“a”或“b”。

順便說一下,. 請注意,重命名不會涉及重命名,因為 Windows 等已安裝程式集,例如 NET 框架庫中定義的類名稱。

這一次,我模糊處理了創建的默認專案,所以有些圖像沒有那麼模糊,但我認為模糊處理的效果會變得清晰,因為專案越大,類的數量就越多。

此外,雖然我們這次在免費版本中提供了步驟,但付費版本允許您執行更複雜的模糊處理,並防止拆解本身。 但是,由於混淆也可能發生各種負面影響,因此在進行模糊處理時,必須考慮從設計開始就正常工作。