[英]How to reverse engineer an .exe that uses a .resource file to store an assembly?
上下文
我是一家開發MMO的工作室的游戲開發人員。 我們構建了一個權威的服務器,但仍遇到漏洞和自動化問題。 我下載了用於破解我們游戲的主機器人,以確定它如何利用我們的服務器,以便我們可以相應地進行修補。
題
我使用dotPeek反編譯.exe以獲取源文件,但遇到了一個問題:我只獲得了啟動器的源文件。 啟動程序在運行時將核心程序集注入我們的應用程序。 它通過將程序集作為十六進制數據存儲在.resource文件中來實現。 知道如何從這個.resource文件中獲取源代碼?
解
謝謝大家的幫助。 我通過從.resource文件中提取二進制數據並將其寫入.dll文件然后使用dotPeek對其進行反編譯來獲取源文件。 請參閱我的解決方案了解更多詳
你不應該使用GetManifestResourceStream
來獲取嵌入數據嗎?
感謝大家的幫助 - 使用反編譯器並在運行時讀取二進制匯編數據並將其寫入.dll文件的組合幫助我獲取源代碼:
我使用dotPeek反編譯啟動器。 在程序集資源管理器中,我然后右鍵單擊程序集並選擇Export to Project...
然后我在Visual Studio中打開項目並插入一行使用File.WriteAllBytes
來編寫byte [](已經可以通過他們的應用程序獲得,但是這只是使用ResourceManager.GetObject
將.resource文件中的二進制數據轉換為.dll文件。 然后我在dotPeek和wala中打開了.dll文件 - 源代碼可見。
我建議圍繞這個問題進行設計,這是一種由服務器強制執行的軟訪問密碼。 您的問題的真實性是:.Net可以擴展。 不要在客戶端exe周圍進行“貓捉老鼠爭奪”,而是考慮如何檢測非人類活動,或如何隨機要求僅限人類活動。
如果你的游戲值得關注,他們會克服你。 他們很多:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.