.net程序Hook win32程序的一点问题

昨天写了个.net程序,通过调用win32 API,往win32程序中注入dll。发现win32 API的调用都是成功的,但就是hook不上。通过观察发现,.net程序是Any CPU模式,IntPtr是8位的。

GetProcAddress(GetModuleHandleA("Kernel32"), "LoadLibraryA")

那么上面的程序得到是LoadLibraryA的地址就是64位Kernel32上的地址,而win32程序是32位的,需要用的是32位Kernel32上的地址,所以,CreateRemoteThread执行成功,但是LoadLibraryA调用失败了。目前,我的方法是将.net程序从Any CPU模式改为x86模式,32位的.net获取的就是32位Kernel32上的地址,问题解决。

,

posted @ 2020-04-27 09:00  JeasonX  阅读(312)  评论(0)    收藏  举报