查找函数地址的问题
查找本机MESSAGEBOX函数地址。用以下代码调试调出。
显示地址是:x0
是不是代码哪里出错了。
#include <windows.h>
#include <stdio.h>
typedef void (*MYPROC)(LPTSTR);
int main()
{
HINSTANCE LibHandle;
MYPROC ProcAdd;
LibHandle = LoadLibrary("user32");
printf("user32 LibHandle = //x%x\n", LibHandle);
ProcAdd=(MYPROC)GetProcAddress(LibHandle,"messagebox");
printf("messagebox = //x%x\n", ProcAdd);
return 0;
}
----------------解决方案--------------------------------------------------------
- -自己找到答案了 郁闷
MessageBox的内部名实际上是MessageBoxA, 此函数的入口地址随windows版本的不同而不同.
#include <windows.h>
#include <stdio.h>
typedef void (*MYPROC)(LPTSTR);
int main()
{
HINSTANCE LibHandle;
MYPROC ProcAdd;
LibHandle = LoadLibrary("user32");
printf("user32 LibHandle = //x%x\n", LibHandle);
ProcAdd=(MYPROC)GetProcAddress(LibHandle,"MessageBoxA");
printf("MessageBoxA = //x%x\n", ProcAdd);
return 0;
}
这样就可以查出来了 ....闷到了
----------------解决方案--------------------------------------------------------
找这个做什么?指向库,然后取出MessageBoxA,没怎么用过...
----------------解决方案--------------------------------------------------------
呵呵 写shellcode要用。..木办法.
----------------解决方案--------------------------------------------------------