C#:使exe不能直接运行

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

希望我自己清楚First .exe无法直接启动第二个.exe可以启动第一个exe(仅限)

设置无法直接启动以接受参数的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 } } 

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

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

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