我想知道是否有人知道如何獲取您所在函數的地址。讓我們說我掛鉤了MessageBoxA()。當MessageBoxA()被調用時,我稱之爲僞函數hookMessageboxA()。從hookMessageBoxA()中我想吐出MessageBoxA()從哪裏調用。那有意義嗎?可能需要使用組件,但我不確定如何完成。在C++中查找函數的地址
下面的代碼是錯誤的,它只是我認爲可能要做的事情。任何關於如何在彙編和C++中做到這一點的幫助,我都非常感謝!!!!!
DWORD address = 0x00;
_asm {
mov address, ebp
}
DWORD keyPointerAddr = (DWORD)hInstance + 0x1000 - address + 0x00401000;
char str[255];
sprintf(str,"That call is coming from [%d]\n", keyPointerAddr);
謝謝。我希望我不必爲此學到更多:D。 – user954753 2012-01-10 02:58:01
@ user954753沒問題,希望文章能爲你節省很多小時的傷心:)。 – 2012-01-10 03:01:37