我寫一個應用程序來加載自己的DLL和重寫一些代碼在目標進程中實現的東西。我用Cheat Engine檢查了內存塊,發現我想重寫的內存區域是「Execute/Read only」。但奇怪的是(至少對我來說)我可以通過外部程序使用WriteProcessMemory重寫內存塊,但不能使用我加載到目標進程內存的自己的DLL使用memcpy。無法寫入與memcpy的內存,但細跟WriteProcessMemory的
是否有任何其他的方式來改寫過程中的操作碼,或者我需要使用WriteProcessMemory的改寫呢?
'WriteProcessMemory'可能繞過內存頁面訪問保護。 'memcpy'只是一個簡單的for循環。你不能在你所在的同一個進程上調用'WriteProcessMemory'嗎? –
我的蜘蛛感官刺痛這裏...即使你有一個正當的理由這樣做(和你**不**,無論你爲什麼認爲你做什麼或你的理由是什麼),如果你不能圖爲什麼'memcpy'失敗,那麼你沒有資格去做你想做的事情。對不起,生硬。 –
@Colonel呃,沒有。現在就是這樣。 WriteProcessMemory修改保護。做到這一點,你可以使用memcpy。 for循環不相關。 –