2011-09-20 47 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

相关问题