加密.net程序集/反调试技术

本文关键字:调试 技术 net 程序集 加密 | 更新日期: 2023-09-27 18:09:40

我正在寻找一种加密。net程序集(exe, dll)或应用反调试技术的方法。我知道程序集不包含本机字节代码,而是CIL代码,可以很容易地反编译。
老实说,我得说我对。net还是个新手。我有web开发背景,c#只是一种爱好,所以我不需要加密我的可执行文件,但我想知道像dotfuscator这样的解决方案是如何工作的。我也知道文件必须在内存中解密才能执行它们,但这与包含本机代码的程序集相同。
我不想讨论加密。net可执行文件是否有用。我只对应用加密或反调试技术(例如控制流混淆)的理论方法感兴趣。正如你从下面的例子和相关问题中看到的,我的知识远远低于零。我是典型的应用程序编码员,如果代码编译和运行,我就很高兴,但我想更深入地挖掘。

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();
        }
    }
}

是否可以将无用的条件标记为控制流混淆?
请分享你的建议,任何可能有趣的链接或书籍推荐。

加密.net程序集/反调试技术

有一些商业工具可以帮助您混淆代码,比如Dotfuscator。另一种选择是使用ngen将MSIL编译为本机代码。

我认为并希望您的自定义"控制流混淆"在构建发布时得到优化。