我有这个代码来保护我的文件免受去混淆:
Assembly asm = Assembly.Load(decFL);
MethodInfo entryPoint = asm.EntryPoint;
entryPoint.Invoke(null, new object[] { new string[] { "[ARGS]", "" } });
显然,[ARGS] 被参数取代。现在,当我使用要保护的程序(针对 v2.0)编译各种保护“存根”时,当我尝试运行时它会崩溃。
Could not load type 'System.Func`2' from assembly 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
这是来自 MethodInfo.Invoke 行。当我针对 v4.0 版本编译它时,它运行成功,但没有显示任何窗口来指示程序正在运行。相反,它只是在到达 MethodInfo.Invoke 后关闭。
我真的不确定是什么原因造成的。