我需要使主 .exe 无法从中运行(当您尝试直接启动它时,您会收到一条消息:无法直接启动,如果它从辅助 exe 运行(只有它,我认为必须有 crc 验证)然后开始.
希望我说清楚第一个.exe不能直接启动第二个.exe可以启动第一个exe(仅限)
使第一个 exe 成为DLL。然后第二个程序可以使用它,但用户将无法直接运行它。
设置无法直接启动的 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
}
}
最简单的方法是使用命令行参数,或者更好的是,设置一个环境变量并运行它,所以几乎没有办法从“我可以绕过你希望我使用你的应用程序的事实来跟踪需求”运行”。但是,我会说 DLL 将是真正可行的方法。
我不确定进程名称 ( Process.GetCurrentProcess().ProcessName
) 是否会给您第一个或第二个 EXE 名称,但您可以将第一个 EXE 作为 DLL,将第二个作为 EXE。