1

我需要使主 .exe 无法从中运行(当您尝试直接启动它时,您会收到一条消息:无法直接启动,如果它从辅助 exe 运行(只有它,我认为必须有 crc 验证)然后开始.

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

4

4 回答 4

10

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

于 2012-09-18T14:36:28.293 回答
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
   }
}
于 2012-09-18T14:36:04.703 回答
4

最简单的方法是使用命令行参数,或者更好的是,设置一个环境变量并运行它,所以几乎没有办法从“我可以绕过你希望我使用你的应用程序的事实来跟踪需求”运行”。但是,我会说 DLL 将是真正可行的方法。

于 2012-09-18T14:38:27.393 回答
2

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

于 2012-09-18T14:35:13.357 回答