2011-09-20 82 views
1

所以我試圖混淆我的程序編譯後。我很確定你是這麼做的(?)我可以混淆編譯的.NET可執行文件/程序集嗎?

我使用一個非常受歡迎的免費軟件EazFuscator,它有一個很好的小命令行工具。

所以,如果我去:

Eazfuscator.NET MyProgram.exe 

它會成功混淆它,當它這樣做,我會嘗試運行了一個程序,它崩潰! (給我一些運行時異常)

另一件事我想反而是混淆DLL的我的程序的一個用途:

EazFuscator.NET SomeDLLMyProgramUses.dll 

它會成功混淆了,但同樣,當我運行我的程序崩潰...

我想知道首先,無論這個EazFuscator程序,是否有可能混淆.DLL和.EXE文件?它通常不應該打破它們?

注意:我在我的程序中有一些反思,也許這就是導致問題的原因..但我不是100%確定的。

+0

將可執行文件和dll混淆爲一個邏輯單元。這將確保重命名所有符號後,從可執行文件到dll的任何引用都保持一致。我不確定Eazfuscator是否有這種能力,你可能想看看另一個名爲[Agile.net代碼保護](http://www.secureteam.net)的混淆器, –

回答

0

不,你通常不會朦朧你的可執行程序。我相信,自從你發佈了你的問題並且可以想象爲什麼之後你一直在想它。

在您的源代碼上運行混淆,然後將其編譯爲可交付成果。

6

Dotfuscator社區版,你可以試試。

一般來說,混淆器不應該破壞他們混淆的應用程序。如果您能重現問題,您應該聯繫製造商。

4

大多數混淆工具的設置都允許您管理混淆級別 - 類型名稱,方法名稱,字符串等。您的混淆程度有可能導致IL代碼因該工具在原始IL代碼上執行的這些更改而中斷。檢查可用的設置並嘗試避免一些設置。

2

如果你正在使用反射,那麼混淆工具可能會破壞你的代碼。在混淆過程中,類型名稱通常會更改,因此您的反射可能無法按預期工作,特別是如果您指的是按名稱的類型。使用像reflector這樣的工具來查看你混淆的程序集,你將能夠看到發生了什麼。

0

你的代碼是否被混淆破壞取決於你在代碼中做了什麼。如果你在那裏使用反射,那幾乎肯定會是根本原因。

CLISecure過去對我來說工作得很好(即使在混合模式程序集中也是如此)......但我們在代碼庫中不使用任何反射。

2

是的,我們需要在編譯後混淆我們的程序集。程序集由混淆器再次構建。所以我們不需要擔心編譯和構建它。

我使用的是免費的混淆器FxProtect。高級專業版也可用,但它不是免費的。你可以嘗試一下...

.Net Obfuscator

相關問題