能力值:
( LV5,RANK:60 )
|
-
-
2 楼
如果是导出函数的话,可以用depends,VC++自带的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
要获得Test在DLL中的地址,可以通过函数GetProcAddress来获取。用LoadLibrary加载DLL以后,然后通过GetProcAddress获取动态库在内存的地址,然后调用。而本身EXE程序中,是没有这个函数的,是通过加载以后,来调用的,所以是没办法获取到TEST的地址的。加载以后,函数会进行重定位,GetProcAddress获取的是EXE重定位以后的,实际上,函数并不在EXE中。
希望我的回答对你有帮助,如果有帮助,请您给我加分。谢谢。
|
能力值:
( LV9,RANK:610 )
|
-
-
4 楼
搜索我的一篇主题帖子 完美实现GetProcAddress 应该会对你有所帮助
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
Handle dllbase=LoadLibrary("你的dll名称");
PVOID FuncAddr= GetProcAddress(dllbase,"TEST");
FuncAddr就是TEST()这个函数的地址。
|
能力值:
( LV4,RANK:55 )
|
-
-
6 楼
不知楼主想用在哪里,如果没有启用增量连接的话,函数名字就是函数地址,在dll中,还是获取模块基址再加偏移来过去。最好还是自己调试下咯。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
导出的话好办, GetProcAddress就可以了
|
能力值:
( LV7,RANK:110 )
|
-
-
8 楼
用PE工具看输出表,会显示它的地址偏移,再加上DLL的基地址就是这个函数的首地址
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
GetProcAddress就可以了,没事冒泡下
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
如果DLL不经常修改,且函数未导出,可以写死这个函数的偏移位置。
DWORD dwFuncOffset = 0xxxx;//这里定义成宏最好
HMODULE hDll = NULL;
DWORD dwFuncAddr = 0;
hDll = LoadLibrary("dll名字");
dwFuncAddr = (DWORD)hDll + dwFuncOffset;
dwFuncAddr就是test函数的地址,转成函数指针调用。
如果是导出函数,直接GetProcAddress;
如果dll不是自己的,可以看用OD定位到TEST函数的地址,算出偏移得dwFuncOffset
也可以采取暴搜的方法,从DLL的基地址搜,这个效率相对低下。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
可以用GetProcAddress函数获取。
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
888888888888888888888888888888888888888888888888888888888888
|
|
|