- 注册时间
- 2011-3-6
- 最后登录
- 1970-1-1
该用户从未签到
|
使用VC6。0自带的depends查找dll中函数的入口地址时,有时会发现计算出的函数入口地址与实际不同,这样你在实际调用时无法调用到该函数,使用以下方法可以清楚的列出一些系统dll函数入口地址,以便asm调用。- #include <windows.h>
- #include <stdio.h>
- typedef void (*MYPROC)(LPTSTR);
- int main()
- {
- HINSTANCE LibHandle;
- MYPROC ProcAdd;
- LibHandle = LoadLibrary("kernel32"); //装载目标dll kernel32
- printf("KERNEL32 -- msvcrt LibHandle = //x%x\n", LibHandle); //DLL入口DLL
- ProcAdd=(MYPROC)GetProcAddress(LibHandle,"WinExec"); //获取函数入口地址
- printf("WinExec -- LoadLibrary = //x%x\n", ProcAdd);
- LibHandle = LoadLibrary("user32"); //装载目标dll USER32
- printf("USER32 -- msvcrt LibHandle = //x%x\n", LibHandle); //DLL入口DLL
- ProcAdd=(MYPROC)GetProcAddress(LibHandle,"MessageBoxA"); //获取函数入口地址
- printf("MessageBoxA -- LoadLibrary = //x%x\n", ProcAdd);
- char s[1024];
- scanf("%d",s);
- return 0;
- }
复制代码 |
|