C#:使exe不能直接运行

时间:2012-09-18 14:33:45

标签: c# exe

我需要让主要的.exe不可用(当你尝试直接启动它时,你得到一条消息:无法直接启动,如果它从二级exe运行(只有它,必须有一个crc验证我认为)然后开始。

希望我能说清楚 首先.exe无法直接启动 第二个.exe可以启动第一个exe(仅限)

4 个答案:

答案 0 :(得分:10)

将第一个exe设为DLL。然后第二个程序可以使用它,但用户将无法直接运行它。

答案 1 :(得分:6)

设置无法直接启动以接受参数的EXE,例如来自应该启动它的一些唯一数据的SHA-256哈希。如果该参数不存在或不符合预期,则显示错误并退出。

编辑:

static class Program
{
   static void Main(params string[] args) //<- first needed change
   {
       if(args.Length == 0 || args[0] != "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
       {
          Console.WriteLine("Cannot execute this program directly.")
          return;
       }

       ... //rest of main function
   }
}

答案 2 :(得分:4)

最简单的方法是使用命令行参数,或者保持静止,设置环境变量并运行它,这样就无法通过“我可以绕过您希望我使用的事实”的要求你的应用程序来运行它“。但是,我会说DLL是真正的方法。

答案 3 :(得分:2)

我不确定进程名称(Process.GetCurrentProcess().ProcessName)是否会为您提供第一个或第二个EXE名称,但您可以将第一个EXE作为DLL,第二个作为EXE。