我需要做的首要的.exe unrunnable從它(當你嘗試直接啓動它,你會得到一個消息:不能直接啓動,如果從二級EXE運行(只它,必須有一個CRC校驗,我認爲),然後啓動。C#:做一個exe不運行直接
希望我說得夠清楚 首先.exe文件無法直接啓動 二.exe文件可以開始第一次EXE(只)
我需要做的首要的.exe unrunnable從它(當你嘗試直接啓動它,你會得到一個消息:不能直接啓動,如果從二級EXE運行(只它,必須有一個CRC校驗,我認爲),然後啓動。C#:做一個exe不運行直接
希望我說得夠清楚 首先.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
}
}
這是我需要的,但我該怎麼做?: - ?? –
請記住,這只是非常安全。反編譯可執行文件並不難,或者找到密碼或刪除它的檢查。 – Servy
我會製作自己的加密變種,並將Themida 2.x打包,這樣做可以嗎? –
我不是知道的進程名(Process.GetCurrentProcess().ProcessName
)會給你的第一或第二EXE名稱,但可以使第一EXE的DLL和第二個爲EXE。
可能有很多原因。記得GTA IV嗎?它有「GTAIV.exe」和「LaunchGTAIV.exe」,只有通過啓動器中的「GTAIV.exe」就可以執行... – Abbas
我不能讓DLL,第一.EXE其遊戲本身,而第二發射 –
如果進程名難道不工作將是第一EXE文件名重命名爲任何未知的結局,並從第二EXE運行時,你可以重新改變其結局EXE,然後啓動它,它不是很乾淨,但它的工作另一種方式。 – CloudyMarble
作出的第一個EXE一個DLL。然後第二個程序可以使用它,但用戶將無法直接運行它。
最簡單的方法是讓命令行參數或者仍然是,設置一個環境變量並運行它,這樣就很少有辦法跟蹤「我可以繞過你想要的事實使用你的應用程序來運行它「。但是,我會說一個DLL將是真正的途徑。
你可以對它進行加密,只有讓second.exe有oey,但隨後還是很容易被黑客拆卸second.exe拿到鑰匙。 – Linuxios