我需要加密Microsoft Visual C++編譯器爲我製作的exe文件嗎?我有一個遊戲由幾個圖書館組成,我擁有所有的資源加密,但是我擔心人們會闖入exe並更改代碼,這有可能嗎?C++ Exe加密?
回答
沒有辦法制作不可破解的軟件。如果它在用戶機器上,則用戶理論上可以完全控制它。
你可以嘗試做的是讓人們更難以破解。 你在找什麼叫做"Executable compression"。犰狳做這樣的事情,UPX也是如此。
PE格式包裝器的完整列表可以找到here。
要加密壓縮資源,您可以使用支持加密的存檔格式的LZMA SDK。請注意,儘管您嘗試隱藏該加密密鑰。正如他們所說,「你可以跑,但你不能隱藏」:)
歡迎來到醜陋的DRM世界。
使用C++的專業遊戲如何讓一般玩家無法使用資源和exe啓動器打開其重命名的zip文件? – user2184442 2013-03-21 06:40:44
@ user2184442他們沒有。這就是爲什麼普通玩家只需下載一個破解文件並在沒有CD的情況下運行遊戲即可...... – Mysticial 2013-03-21 06:41:36
它對它們進行了加密,但是爲了讓遊戲使用這些資源,它必須對它們進行解密。爲此,執行解密的算法也必須位於用戶的機器上,所以用戶最終得到了加密的zip和解密的手段。從那裏,你知道後面。 – 2013-03-21 06:42:16
它沒有多大意義。爲了執行該程序,它必須在內存中解密,所以解密後的代碼將存儲在內存中,以便將其轉儲。
但是,您可以簽署您的可執行文件(有關詳細信息,請參閱this article)。當可執行文件被簽名時,它受到完整性保護,最好的部分是大多數操作系統都支持這一功能,包括Windows。如果可執行文件被修改,操作系統可以檢測到篡改並且不會啓動它(或至少警告用戶)。
您是否試過傾銷包裝的EXE?它不是那麼容易。打包程序還會插入代碼,這些代碼可能會在您使用調試程序附加代碼時偶然觸發,並逐步執行代碼以達到可以轉儲映像的狀態。這不是不可能的,但它被誘殺。不平凡。 – 2013-03-21 06:44:55
無論您使用哪種技術,如果您將可執行文件和資源都發送給最終用戶,並且如果它值得,它們最終會被破解,並且您無法對其執行任何操作。您只能使解密過程更加艱難,但增加安全性只會影響合法用戶,並且您會浪費時間,從而花費在改進軟件上。
蘋果程序員肯定比你和我都好,但他們所有的iPhone最終都被越獄了。
- 1. .Jar to .EXE(加密文件)
- 2. 沒有(或加密)RCDATA的EXE?
- 3. 在Python中加密Windows EXE文件
- 4. 在C#中加密加密#
- 5. C#加密密碼
- 6. 將C#加密轉換爲C++加密
- 7. 從exe加載exe
- 8. Objective-C加密
- 9. c#dll加密
- 10. Flash&C#加密
- 11. 加密在C /解密ROT ++
- 12. C#/ Java | AES256加密/解密
- 13. C#河豚加密/解密
- 14. 加密/解密程序C++
- 15. AES C#加密解密FIPS
- 16. AES在C加密解密
- 17. Java加密C#解密
- 18. c#加密和解密
- 19. AES加密C#解密Java?
- 20. web.crypto加密C#解密
- 21. Byte []密鑰加密C#Aes
- 22. C#加密到PHP解密
- 23. 如何加密/解密C#
- 24. 從C#到C++的加密/解密
- 25. c lang加密。並在c#解密#
- 26. AES256 JAVA加密不匹配,C#加密
- 27. 如何做到這一點:J2ME加密C#解密和J2ME解密C#加密?
- 28. C#(加密)和Java(解密)之間的AES加密/解密
- 29. C/C++加密/與公鑰
- 30. DES加密在C#
歡迎來到DRM的世界......這是一場戰鬥......那......你......會......不會......贏...... – Mysticial 2013-03-21 06:34:05
對於初學者來說,你需要對exe進行decrpyt然後運行它(它必須放在磁盤上,否則你將不得不做一些非常瘋狂的記憶狗屎,使它從內存中運行):爲什麼要做所有這些工作呢?只要加密數據本身,如果它是如此重要,而不是.exe。 – 2013-03-21 06:36:30
對於一款遊戲,我認爲這完全沒有意義。對於具有價格標籤的程序來證明它的價值,一些基於加密狗的方案提供至少一些安全性,但是它們的價格意味着它們通常只用於相對昂貴的軟件(數千美元)。 – 2013-03-21 06:39:57