我想在我的程序關閉後,在我的可執行文件中替換或添加一些字節,而不使用輔助寫入程序。 我知道,通常這是不可能的,但如果這是必要的?如何使程序能夠在運行時寫入自己的可執行文件?
我知道一個名爲Unlocker的程序,它可以刪除當前正在使用或甚至正在運行的文件。它以某種方式刪除阻止描述符。我認爲它會將自己的DLL注入到每個正在運行的進程中。
所以,如果它注入自己的DLL到一切,並以某種方式刪除阻塞描述符,也許我可以爲自己的可執行文件做同樣的事情?至少,我不需要爲程序注入任何東西,因爲我開發了它。
解決方案也可以在C/C++中,我只是從自己的DLL中導入DLL所需的函數。
您是否打算在安裝了AntiVirus程序的PC上運行此應用程序? –
是:O P.S.解鎖器以某種方式避免受到懲罰。 – Kosmos
您可以使用FileStream輕鬆打開一個exe文件,然後使用BinaryWriter進行編輯。但是,即使您可以這樣做,您也需要知道exes存儲在其中的可移植可執行文件格式,以瞭解您正在執行的操作。至於在運行時編輯程序,可以通過獲取它們的進程,然後調用Windows核心函數來獲取進程代碼的入口點,但即使你管理它,你也必須知道該進程是如何佈置的以及你必須知道機器代碼才能進行適當的編輯。 – Pharap