首页
社区
课程
招聘
主程序如何调用没有导出表的DLL中的代码?
2005-8-3 21:31 5572

主程序如何调用没有导出表的DLL中的代码?

2005-8-3 21:31
5572
收藏
免费 0
打赏
分享
最新回复 (9)
雪    币: 38374
活跃值: (19355)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 8 2005-8-3 21:41
2
0
一般有输出表的DLL可以如下调用:
通过LoadLibraryA(W)将DLL文件映像映射到调用进程的地址空间中.一但DLL模块被显示加载,线程可以调用GetProcAddress函数获取输入函数的地址.

GetProcAddress需要函数名作参数,没输出表应调用不了。
要调用的话,猜测是直接调用相关地址。
雪    币: 240
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ferrari_fei 2005-8-4 09:14
3
0
感谢坛主的回复!
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2005-8-4 09:29
4
0
可以直接知道偏移后call过去
雪    币: 240
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ferrari_fei 2005-8-4 20:56
5
0
在c或c++中如何调用呢?
相应的语句是GetProcAddress吗?
雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 2 2005-8-4 21:27
6
0
首先要先分析出代码开始位置和参数

typedef void (__stdcall *funcProc)(int param1, int param2);

LoadLibraryA("xxxx.dll");
funcProc func = (funcProc)(0x12345678);
func(1, 2);

大概就是这样
雪    币: 240
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ferrari_fei 2005-8-4 21:56
7
0
谢谢回复的兄弟们!
雪    币: 302
活跃值: (410)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
Spring.W 10 2005-8-5 10:14
8
0
最初由 kanxue 发布
一般有输出表的DLL可以如下调用:
通过LoadLibraryA(W)将DLL文件映像映射到调用进程的地址空间中.一但DLL模块被显示加载,线程可以调用GetProcAddress函数获取输入函数的地址.

GetProcAddress需要函数名作参数,没输出表应调用不了。
要调用的话,猜测是直接调用相关地址。
........


    某鸟公司正在组织专家组,对一些程序做盗版鉴定,如果鉴定属实,将对某人有重大伤害!现在,他们遇到了同样这个问题,虽然各路兄弟回答的各有见解,我衷心恳请大家过些时候再探讨这个问题吧,以免被人利用。。。

                          谢谢!
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
shoooo 16 2005-8-5 10:42
9
0

此贴不宜久留,闪
雪    币: 343
活跃值: (611)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
ForEver 20 2005-8-5 10:49
10
0
最初由 Spring.W 发布


某鸟公司正在组织专家组,对一些程序做盗版鉴定,如果鉴定属实,将对某人有重大伤害!现在,他们遇到了同样这个问题,虽然各路兄弟回答的各有见解,我衷心恳请大家过些时候再探讨这个问题吧,以免被人利用。。。

谢谢!


调用没有导出表的dll并不难。不过像上面说的这样的话还是保留一下技术的好。
游客
登录 | 注册 方可回帖
返回