获得dll函数的问题,是否也可以直接通过入口点访问?

最后一只恐龙 2010-05-10 09:54:15
使用的是别人提供的动态链接库,有头文件,但没有def文件,查看函数名如下:
Ordinal:2
Hint:1
Function:?GetRDCallExit@@YA_NXD
Entry Point:0x000010B0

由于函数名前面有一个?,估计没法获得函数入口地址了。那么Entry Point是否就是那个函数入口地址?是不是可以通过它来调用函数,如果是,能否给出代码?
...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
最后一只恐龙 2010-05-10
  • 打赏
  • 举报
回复
搞定了,那个比较长的函数名前面加?是可以找到入口点的,看了一篇命名规则的文档理解了,函数名前面就是有?的。
tanwei1002 2010-05-10
  • 打赏
  • 举报
回复
有头文件,头文件中有函数原型没?
如果有的话就可以了,不需要def的
renxu350 2010-05-10
  • 打赏
  • 举报
回复
把代码贴出来看看
最后一只恐龙 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 renxu350 的回复:]
引用楼主 ivy_zheng 的回复:

Entry Point:0x000010B0



看这个值不太像实际入口点,有可能是相对 hDllInstance 的偏移。
你试一试看看先 LoadLibrary() 得到 hDllInstance,然后用 hDllInstance + 0x000010B0,相加得到的值就是函数入口地址,这样可以不要调用 GetProcAddress。
……
[/Quote]
不行
最后一只恐龙 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 renxu350 的回复:]
引用楼主 ivy_zheng 的回复:

Entry Point:0x000010B0



看这个值不太像实际入口点,有可能是相对 hDllInstance 的偏移。
你试一试看看先 LoadLibrary() 得到 hDllInstance,然后用 hDllInstance + 0x000010B0,相加得到的值就是函数入口地址,这样可以不要调用 GetProcAddress。
……
[/Quote]

我试一下先
最后一只恐龙 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiuxianshen 的回复:]
你用extern C加你的头文件里的函数名看看,函数名应该是GetRDCallExit
[/Quote]

函数名就是GetRDCallExit,但是加extern C我没有权限,他们肯定没有做成固定的,这样我要调用GetProcAddress,必须想办法得到完整的函数名
visualassist4680 2010-05-10
  • 打赏
  • 举报
回复
1.使用 Ordinal:2 调用
2.用c++方式查看,用c++方式调用, GetRDCallExit
renxu350 2010-05-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 ivy_zheng 的回复:]

Entry Point:0x000010B0

[/Quote]

看这个值不太像实际入口点,有可能是相对 hDllInstance 的偏移。
你试一试看看先 LoadLibrary() 得到 hDllInstance,然后用 hDllInstance + 0x000010B0,相加得到的值就是函数入口地址,这样可以不要调用 GetProcAddress。
xiuxianshen 2010-05-10
  • 打赏
  • 举报
回复
你用extern C加你的头文件里的函数名看看,函数名应该是GetRDCallExit

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧