我想創建一個單獨的exe的啓動程序。我需要主程序(不是發射)在發射器之外無法訪問。從另一個程序專門執行程序
回答
安全地做到這一點基本上是不可能的。任何發射器都可以做的事情,用戶也可以做。
通過讓啓動器將加密簽名的時間戳傳遞給單獨的程序,可以讓用戶更難。但是,用戶可以從啓動器中提取私鑰並手動簽署時間戳。
你可以使程序檢查其父PID,確保發射EXE是用自己的私鑰簽名,但用戶可以修改程序來刪除該檢查。
你也可以把EXE到DLL,具有通過發射調用的方法,但是用戶可以編寫自己的EXE也調用這個方法。
一個選項是在運行第二個程序時需要參數,儘管這很容易被利用。你並不真正說這是爲了什麼,所以它可能夠好。
根據你的啓動程序做了什麼,你也許能夠檢查是否這些操作已經完成,如果沒有,退出程序。
如果您需要這是特別安全的,你也許可以建立一些公私密鑰系統,加密和動態一塊信息(如時間戳)。老實說,我認爲這會比它的價值更多的工作,如果其中任何一個反彙編程序仍然可以被利用。
您可能要實現的主要功能作爲一個單獨的DLL文件並從啓動應用程序調用它。 這是主要功能不完全是一個單獨的應用程序的方式,所以它可能不完全是你想要的,但它是分開的,需要運行另一個應用程序(啓動器)。
一個合適的解決方案取決於你正在試圖阻止什麼。
如果你的目標是,「在任何情況下,一個熟練的黑客不斷推出B.EXE除了通過A.exe時」,這是很難實現的。
如果你的目標是:「我不希望用戶不小心啓動B.EXE因爲A.exe時是他們應該使用什麼」,有選擇。例如,從A.exe時傳遞一個命令行參數B.EXE,一個普通的用戶將不知道通過。
我有兩個建議,以達到你想要的東西。
第二個exe是否需要實際上是一個exe文件?你可以把它變成圖書館電話嗎?將功能調用爲在啓動器進程下運行的線程。
使用未發佈的命令行參數。如果他們沒有提供第二個EXE終止。這並不完全安全,但我相信這是現代遊戲發射器的工作原理。
最終,我不認爲有一種方法「通過隱藏的安全」
我可以得到降價的原因嗎? – 2012-08-17 12:55:51
這樣做沒有您可以創建使用GUID一個互斥體在發射名字。然後檢查程序中的互斥鎖。像其他人所說,這不是很安全,但會阻止大多數人直接啓動程序。
- 1. 從另一個程序執行程序C
- 2. 從gcc中的另一個程序執行C程序
- 3. 在多線程程序中執行另一個程序
- 4. 用C++執行另一個程序
- 5. 執行處理程序從一個頁面到另一個
- 6. 麻煩C程序執行另一個程序
- 7. 執行來自tidesdk程序的另一個程序的命令
- 8. 我怎樣才能從另一個程序執行一個jar並在另一個程序中顯示結果?
- 9. 執行一個JFrame程序
- 10. 如何編寫一個C程序來執行另一個程序?
- 11. 獲取I /從另一個java程序運行Java程序Ø
- 12. 從另一個程序集運行WPF應用程序
- 13. 從另一個Java程序運行java程序
- 14. 從另一個java程序運行RMI程序
- 15. 從C#安裝程序安裝程序運行另一個MSI
- 16. 從python腳本執行另一個程序的命令
- 17. 從Java執行另一個應用程序
- 18. 另一個程序/進程如何中斷我的程序執行?
- 19. 從C程序中執行程序
- 20. 從python程序執行c程序
- 21. Java:另一個多線程執行程序中的單線程子執行程序
- 22. 一個程序,可以與另一個程序進行交互
- 23. 如何從另一個程序啓動一個程序
- 24. Python。另一個程序內的程序
- 25. 創建另一個程序的程序
- 26. 執行一個應用程序時,點擊從另一個應用程序的按鈕
- 27. 執行程序從Java
- 28. 從MemoryStream執行程序
- 29. 從linux執行X11程序
- 30. 從PHP執行C程序
你想達到什麼目的?它會幫助我們幫助你。 – 2012-08-13 17:58:39