阅读:6290回复:14
知道dll中某个函数名及参数,但其没有导出.如何调用.如题,求助,请给出可操作的办法. |
|
沙发#
发布于:2007-11-09 04:16
Load it into memory and then get the address of this function, call it.
|
|
板凳#
发布于:2007-11-12 09:24
HANDLE hDll = LoadLibrary("xxx.dll");
GetFuncAddress(hDll , "函数名"); 就是用这两个函数了,后面的函数名字有点忘了. |
|
|
地板#
发布于:2007-11-12 09:28
GetFuncAddress如果不对就是GetProcAddress之类的,一下子居然想不起来叫什么名字了,晕.
|
|
|
地下室#
发布于:2007-11-12 14:35
引用第1楼GoodOnline于2007-11-09 04:16发表的 : 正解!既然没有导出, GetProcAddress 当然无效 |
|
5楼#
发布于:2007-11-13 08:08
如果通过名字,或通过序号导出,可以用GETPROCADDRESS来获得地址,不然的话,就只有自己解析了。
|
|
|
6楼#
发布于:2008-01-04 11:01
没有导出可以这样吗?
|
|
7楼#
发布于:2008-01-20 17:35
用那两个函数的话就不用LIB了。
|
|
8楼#
发布于:2008-02-21 23:13
如果分析的出这个函数的地址,直接CALL就好了
|
|
|
9楼#
发布于:2008-02-24 15:41
我告诉你方法,首先,获取这个dll实际加载到内存中的地址,然后用idapro反汇编这个dll,找到那个函数在dll里的偏移,用dll加载地址+偏移,便得到那个函数在内存中的实际地址,然后call
就行了 |
|
10楼#
发布于:2008-02-28 16:03
loadlibrary ,得到模块在内存中的基地址,然后从基地址搜索函数实现的汇编指令码(为避免两个函数入口几个字节相同,可以多用几个字节)来定位函数入口地址。然后,
push xxx ... .. call 即可。 |
|
11楼#
发布于:2008-03-12 13:30
易用专业的PCI、USB、LED方案 我告诉你方法,首先,获取这个dll实际加载到内存中的地址,然后用idapro反汇编这个dll,找到那个函数在dll里的偏移,用dll加载地址+偏移,便得到那个函数在内存中的实际地址,然后call 就行了 |
|
12楼#
发布于:2008-07-12 01:12
就是得到函数指针,然后调用
|
|
|
13楼#
发布于:2008-07-19 23:04
2楼和11楼说的都是正解
|
|
14楼#
发布于:2008-11-07 20:03
普通动态调用DLL的方法。。
|
|
|