簡體   English   中英

使用 ConfuserEx 混淆 clickOnce 應用程序

[英]Obfuscate a clickOnce Application with ConfuserEx

我實際上是在嘗試混淆 ClickOnce 應用程序。

我的混淆器是 ConfuserEx。 我遵循了以下步驟:

  1. 單擊項目屬性上的“發布向導..\\立即發布”按鈕。 這將自動在 Debug/Release 文件夾中構建您的項目。 我使用它是因為它還創建了 ClickOnce 中使用的文件。 我們稍后將使用這些文件。
  2. 打開 Confuser 並拖放文件 在您希望 confuser 處理的 Debug/Release 文件夾中。
  3. 這將使用混淆的程序集創建一個 Confused 文件夾(使用默認輸出目錄設置)。
  4. 將項目運行所需的所有依賴項/文件(如果有)復制到剛剛創建的“Confused”文件夾。
  5. 您的項目現在應該使用混淆的程序集。 我運行該程序只是為了確保。 :D
  6. 將 .manifest 文件從 Debug/Release 文件夾復制到 Confused 文件夾並使用 MageUI 編輯它。
  7. 在 MageUI 的“文件”部分,找到 Confused 文件夾(可能已被選中)並選中將 .deploy 放在文件上的選項,然后單擊“填充”。
  8. 您的項目文件將重命名為 *.deploy
  9. 保存 .manifest 文件並使用發布項目時創建的 *TemporaryKey.pfx 對其進行簽名(這應該在您的項目文件夾中)。
  10. 將 .application 文件從 Debug/Release 文件夾復制到 Confused 文件夾並使用 MageUI 編輯它。
  11. 在 MageUI 的“應用程序參考”部分單擊“選擇清單..”並選擇您在步驟 6 中保存的 .manifest 文件。
  12. 保存 .application 文件並使用 *TemporaryKey.pfx 對其進行簽名。
  13. 最后,這可能是可選的,只需將發布文件夾中的 setup.exe 和 publish.html 文件復制到 Confused 文件夾。

關於這個話題:

https://confuser.codeplex.com/discussions/428378

不幸的是,當我之后嘗試安裝 ClickOnce 應用程序時出現以下錯誤:

無法處理從 HTTP/HTTPS 協議到其他不同協議的重定向。

堆棧跟蹤如下:

System.Net.HttpWebRequest.GetResponse() System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)

我嘗試下載的 URL 是 https,這是問題嗎? 我應該把所有內容都放在 http 中嗎?

要使用混淆的 ClickOnce 應用程序,請執行以下步驟:

  1. 編譯您的項目並使用 Visual Studio 發布它(右鍵單擊項目 > 發布)

A. 混淆步驟

  1. 發布后,使用 ConfuserEx(GUI 或 CLI)然后在特定文件夾中混淆您的可執行文件和/或 DLL(即:MyProject\\Confused)
  2. 一旦您的代碼被充分混淆(您可以使用ILSpy 之類的工具檢查您的混淆),使用代碼簽名證書或臨時 PFX(通常在您首次發布 clickonce 應用程序時創建)簽署您的可執行文件和/或您的 DLL。 我目前正在使用 signtool.exe 這樣做。

  3. 仍然在您的“Confused”文件夾中,將混淆和簽名的文件從 .exe 重命名為 .exe.deploy,從 .dll 重命名為 .dll.deploy

  4. 轉到您的已發布文件夾(在我的情況下,它是一個網絡文件夾,如下所示:

\\\\network_disk\\ClickOnceApp

  1. 通過在最近的 Application Files 文件夾中找到的文件復制/粘貼 .deploy 文件

\\\\network_disk\\ClickOnceApp\\Application Files\\ClickOnceApp_x_x_x_x

B. 重新簽名清單和 .application 文件

  1. 使用 MageUI 打開您的應用程序清單。 就我而言:

\\\\network_disk\\ClickOnceApp\\Application Files\\ClickOnceApp_1_0_0_42\\ClickOnceApp.exe.manifest

僅供參考,MageUI 可以在這里找到:

C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\bin\\mageui.exe

單擊“保存”對清單進行簽名(像以前一樣使用代碼簽名證書或您的臨時 PFX),它會自動看到 .exe.deploy 和 .dll.deploy 文件的更改並重新計算正確的文件哈希。

  1. 還是用MageUI,打開文件

\\\\network_disk\\ClickOnceApp\\Application Files\\ClickOnceApp_1_0_0_42\\ClickOnceApp.application

在應用程序引用菜單上,單擊“選擇清單”並選擇最近修改的清單。 通過保存對您的 .application 文件進行簽名(如步驟 7 所示)

  1. 對以下文件執行相同操作:

\\\\network_disk\\ClickOnceApp\\ClickOnceApp.application

現在您的 ClickOnce 應用程序包含混淆代碼,可以使用 ClickOnce 進程下載。


注意事項:

  • 就個人而言,我不得不在命令行 (ConfuserEx.CLI.exe) 中使用 ConfuserEx,因為我必須混淆我的代碼的一部分。 混淆所有這些會返回許多關於 WinForms 的組裝和加載的錯誤。
  • 在命令行中使用它允許開發人員使用聲明性混淆,因此,只混淆代碼的一些關鍵部分。
  • 我結束了創建自動化這些步驟的腳本。 我仍在使用 mageUI.exe 對清單和應用程序文件進行簽名,但您可以使用 mage.exe 在命令行中對這些文件進行簽名(我還沒有嘗試過)。

這現在已經很老了,但我想提一下 Visual Studio 中有一個使用 ConfuserEx 的擴展,它可以與 ClickOnce 一起使用:

Visual Studio 的 ConfuserEx 工具

ConfuserEx for Visual Studio 將免費和開源的 ConfuserEx 保護器集成到 Visual Studio 中,以便輕松自動混淆發布版本和 ClickOnce 應用程序。

遵循 Thordax 指令@步驟 3,

一旦您的代碼被充分混淆(您可以使用 ILSpy 等工具檢查您的混淆情況),請使用代碼簽名證書或臨時 PFX(通常在您首次發布 clickonce 應用程序時創建)對您的可執行文件和/或 DLL 進行簽名。 我目前正在使用 signtool.exe 這樣做。

您需要像這樣使用簽名工具:cd C:\\Program Files (x86)\\Microsoft SDKs\\ClickOnce\\SignTool

然后像這樣簽署exe

signtool.exe 簽名 /td sha256 /fd sha256 /f pathtoyourcert.pfx /p 密碼 pathtoyourconfusedexe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM