Dot-Net

如何對 ClickOnce 使用混淆?

  • December 15, 2015

如果要發布一個ClickOnce版本,它如何被Dotfuscator混淆?

您可以使用 Dotfuscator 的商業版本通過將部署清單(“foo.application”)添加為 Dotfuscator 項目的輸入來自動混淆 ClickOnce 應用程序。Dotfuscator 將允許您向 ClickOnce 應用程序中包含的程序集添加任何必要的排除項,並將創建包含混淆程序集的更新部署和應用程序清單。

Visual Studio(包括 Visual Studio 2010)中包含的免費版 Dotfuscator 沒有自動混淆 ClickOnce 應用程序的功能。為了獲得功能正常的混淆 ClickOnce 應用程序,您需要重新創建或更新 ClickOnce 清單,因為混淆會更改程序集的簽名。

您可以使用mage.exemageui.exe(包含在 Windows/.NET SDK 中)來更新 ClickOnce 清單。如果您要使用 mage.exe,您需要注意不能在 ClickOnce 選項中使用“使用 .deploy 文件副檔名”選項,因為它無法辨識它。

假設您的 ClickOnce 應用程序名為“Foo”並且版本為 1.0.0.0,您將要遵循的過程是:

  1. 將 ClickOnce 應用程序發佈到磁碟上的目錄
  2. 執行 Dotfuscator CE 並從項目的 bin 目錄中添加要混淆的程序集
  3. 混淆程序集。預設情況下,經過混淆的程序集將放入名為“Dotfuscated”的子目錄中。
  4. 使用 sn.exe 退出您的混淆程序集(僅當您最初對它們進行強命名時)
  5. 將混淆的程序集複製到 ClickOnce publish\Application Files\Foo_1_0_0_0 目錄中的程序集之上
  6. 更新應用程序清單並將其退出:

mage.exe -Update “Application Files\Foo_1_0_0_0\Foo.exe.manifest” -CertFile “c:\Foo\foo.pfx” -Password 密碼 7. 更新部署清單並將其退出:

mage.exe -Update Foo.application -AppManifest “Application Files\Foo_1_0_0_0\Foo.exe.manifest” -CertFile “c:\Foo\foo.pfx” -Password 密碼

您現在擁有使用混淆程序集的有效應用程序和部署清單。您也可以使用 MageUI.exe 工具來完成相同的任務(它知道如何處理帶有 .deploy 副檔名的程序集),但自動化並不容易。

引用自:https://stackoverflow.com/questions/3416223