2010-02-18 55 views
1

我在我的Win32應用程序中嵌入了EXE作爲資源。Win32應用程序中的嵌入式資源

我期待註冊表達到一定的值。如果值在那裏並且是正確的,那麼我將嵌入式EXE複製到本地文件系統並從那裏執行它。

我不希望它從我的EXE中提取。

我應該做什麼來防止這種情況,還是不可能?

謝謝。

+0

ummmm .... huh ?! – 2010-02-18 22:09:37

+0

你或許應該把答案標記爲正確,並且提出所有對你有幫助的答案。 – 2010-02-23 19:38:09

回答

1

但您可以將exe作爲.obj或靜態數組而非作爲資源。這會讓攻擊者更難找到你的代碼,但仍然不是不可能的。

您可以使用unix objcopy工具將您的exe文件轉換爲.obj文件,然後鏈接到您的c代碼中。有人需要反編譯你的代碼才能找到.exe,這比使用資源提取器要困難得多。

Embed data in a C++ program

+0

這是我正在尋找的答案爲,歡呼! – frbry 2010-02-19 23:07:37

1

沒有什麼是不可能的,實際上很容易從可執行文件中剝離資源。例如,Google搜索中的first link就是這種情況。另一方面,您已經將exe文件解壓縮並保存到用戶系統的文件中,任何足夠精密的查找嵌入資源的人都可以找到您解壓縮的文件。我不會花太多時間擔心它。

+0

你是對的。 「不可能」是一個苛刻的詞:)如何在執行前將資源存儲爲加密並解密它?還有一個好處:它可以在沒有導出到本地文件系統的情況下執行嗎? – frbry 2010-02-18 22:17:46

+0

不是。您必須在任何地方存儲密鑰。如果攻擊者有足夠的時間和耐心,他肯定會找到它。 (是的,我相當肯定你可以從內存中執行EXE) – moatPylon 2010-02-18 22:24:48

+0

雖然這是可能的,但它似乎不是一件容易的事。 http://www.gamedev.net/community/forums/topic.asp?topic_id=383351&PageSize=25 – frbry 2010-02-18 22:35:18

0

我必須確保應用程序安全。我無法修改該應用程序。我所能做的就是圍繞它編寫小型實用程序,例如創建在線串行系統,獨特的硬件信息哈希存儲,加載器exe等。

但是現在我發現我的意圖幾乎沒有修改原始應用程序的用處。我會欣賞這方面的任何幫助。

+0

再讀一次,也許我應該從這個創建一個新的問題:) – frbry 2010-02-18 22:36:05