我是第一次使用ASM,在我继续之前,我需要知道当我写这篇文章的时候,我是否理解了一切。当前代码如下所示:
push 0xDEADBEEF ; address of library name
mov eax, 0xDEADBEEF ; address of LoadLibraryA
call eax ; call LoadLibraryA
mov esi, eax ; store returned address
push 0xDEADBEEF ; address of function name
push esi
mov eax, 0xDEADBEEF ; address of GetProcAddress
call eax ; call GetProcAddress
mov esi, eax ; store returned address
push 0
push 0
push 0
call esi ; call the function returned by GetProcAddress0xDEADBEEF只是虚拟地址,稍后我将对其进行修补。有什么问题吗?
发布于 2011-07-07 07:10:36
通常不会直接调用GetProcAddress。这是因为它是从DLL导出的。在这种情况下,链接器要做的是合成一个对__imp__GetProcAddress符号执行间接远调用的GetProcAddress函数。请参阅http://blogs.msdn.com/b/oldnewthing/archive/2006/07/24/676669.aspx和http://blogs.msdn.com/b/oldnewthing/archive/2010/03/18/9980802.aspx
https://stackoverflow.com/questions/6603948
复制相似问题