我需要让主要的.exe不可用(当你尝试直接启动它时,你得到一条消息:无法直接启动,如果它从二级exe运行(只有它,必须有一个crc验证我认为)然后开始。
希望我能说清楚 首先.exe无法直接启动 第二个.exe可以启动第一个exe(仅限)
答案 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。