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

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

2005-8-3 21:31
5791
用PE Explorer查看DLL,没有导出表.
那么主程序是如何调用DLL中的代码呢?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

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

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

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

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

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

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


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

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

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


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

谢谢!


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