我正在寻找一种加密.net程序集(exe,dll)或应用反调试技术的方法。我知道程序集不包含本机字节代码,但CIL代码可以很容易地反编译。老实说,我不得不说我是.NET的新手。我来自网络开发者背景,C#只是一个爱好,所以我不需要加密我的可执行文件,但我想知道像dotfuscator这样的解决方案是如何工作的。
我也知道文件必须在内存中解密才能执行它们,但这与包含本机代码的程序集相同。
我不想要的是讨论加密.NET可执行文件是否有用。我只对应用加密或反调试技术(例如控制流混淆)的理论方法感兴趣。
正如您从下面的示例和相关问题中可以看到的,我的知识远远低于ZERO。我是典型的应用程序编码员,如果代码编译并运行,我很高兴,但我想深入挖掘。
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
if(1 < 2)
{
if(3 == 3)
{
if ("a" != "b")
{
if(0 != 1)
{
Console.WriteLine("Hello World!");
}
}
}
}
Console.ReadLine();
}
}
}
无用条件是否可以标记为控制流混淆?
请分享您的建议,任何可能感兴趣的链接或预订建议。
答案 0 :(得分:1)
有一些商业工具可以帮助您对代码进行模糊处理,例如Dotfuscator。另一种选择是使用ngen将MSIL编译为本机代码。
我认为并希望在发布版本时,您的自定义“控制流混淆”会被优化掉。