[英]Obfuscate a clickOnce Application with ConfuserEx
我實際上是在嘗試混淆 ClickOnce 應用程序。
我的混淆器是 ConfuserEx。 我遵循了以下步驟:
- 單擊項目屬性上的“發布向導..\\立即發布”按鈕。 這將自動在 Debug/Release 文件夾中構建您的項目。 我使用它是因為它還創建了 ClickOnce 中使用的文件。 我們稍后將使用這些文件。
- 打開 Confuser 並拖放文件 在您希望 confuser 處理的 Debug/Release 文件夾中。
- 這將使用混淆的程序集創建一個 Confused 文件夾(使用默認輸出目錄設置)。
- 將項目運行所需的所有依賴項/文件(如果有)復制到剛剛創建的“Confused”文件夾。
- 您的項目現在應該使用混淆的程序集。 我運行該程序只是為了確保。 :D
- 將 .manifest 文件從 Debug/Release 文件夾復制到 Confused 文件夾並使用 MageUI 編輯它。
- 在 MageUI 的“文件”部分,找到 Confused 文件夾(可能已被選中)並選中將 .deploy 放在文件上的選項,然后單擊“填充”。
- 您的項目文件將重命名為 *.deploy
- 保存 .manifest 文件並使用發布項目時創建的 *TemporaryKey.pfx 對其進行簽名(這應該在您的項目文件夾中)。
- 將 .application 文件從 Debug/Release 文件夾復制到 Confused 文件夾並使用 MageUI 編輯它。
- 在 MageUI 的“應用程序參考”部分單擊“選擇清單..”並選擇您在步驟 6 中保存的 .manifest 文件。
- 保存 .application 文件並使用 *TemporaryKey.pfx 對其進行簽名。
- 最后,這可能是可選的,只需將發布文件夾中的 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 中嗎?
一旦您的代碼被充分混淆(您可以使用ILSpy 之類的工具檢查您的混淆),使用代碼簽名證書或臨時 PFX(通常在您首次發布 clickonce 應用程序時創建)簽署您的可執行文件和/或您的 DLL。 我目前正在使用 signtool.exe 這樣做。
仍然在您的“Confused”文件夾中,將混淆和簽名的文件從 .exe 重命名為 .exe.deploy,從 .dll 重命名為 .dll.deploy
轉到您的已發布文件夾(在我的情況下,它是一個網絡文件夾,如下所示:
\\\\network_disk\\ClickOnceApp
\\\\network_disk\\ClickOnceApp\\Application Files\\ClickOnceApp_x_x_x_x
\\\\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 文件的更改並重新計算正確的文件哈希。
\\\\network_disk\\ClickOnceApp\\Application Files\\ClickOnceApp_1_0_0_42\\ClickOnceApp.application
在應用程序引用菜單上,單擊“選擇清單”並選擇最近修改的清單。 通過保存對您的 .application 文件進行簽名(如步驟 7 所示)
\\\\network_disk\\ClickOnceApp\\ClickOnceApp.application
現在您的 ClickOnce 應用程序包含混淆代碼,可以使用 ClickOnce 進程下載。
注意事項:
這現在已經很老了,但我想提一下 Visual Studio 中有一個使用 ConfuserEx 的擴展,它可以與 ClickOnce 一起使用:
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.