我正在建立一個C++應用程序的Windows,我要鉤與DLL(彙編代碼)。但是我在逆向工程中遇到問題,我製作了控制檯應用程序。保持他們(功能)在內存中的相同的地方
我想將函數地址保留在同一個地方,但是每次我編輯和重建DLL時,它們都一直在內存中移動。
有沒有辦法讓他們在同一個地方?有沒有辦法將變量的後備存儲(例如int
)保存在同一個地方(內存地址)?
我正在建立一個C++應用程序的Windows,我要鉤與DLL(彙編代碼)。但是我在逆向工程中遇到問題,我製作了控制檯應用程序。保持他們(功能)在內存中的相同的地方
我想將函數地址保留在同一個地方,但是每次我編輯和重建DLL時,它們都一直在內存中移動。
有沒有辦法讓他們在同一個地方?有沒有辦法將變量的後備存儲(例如int
)保存在同一個地方(內存地址)?
您不需要用匯編語言硬編碼地址。
你可以照常鏈接DLL。
如果這不適用於您,發佈代碼和確切的問題描述。
簡答:沒有。我從來沒有聽說過使用此功能的編譯器/鏈接器。
停止移動函數或全局變量的唯一方法是停止編輯。地址空間佈局隨機化讓他們繼續前進,旨在阻止你做你想做的事。 – 2012-07-07 19:04:08
請注意,您通常可以關閉ASLR。 – anthropomorphic 2012-07-07 19:50:16