首页
社区
课程
招聘
外挂dll如何调用原exe的函数
发表于: 2010-10-3 21:39 8307

外挂dll如何调用原exe的函数

2010-10-3 21:39
8307
如题,如此做的时候,碰到了问题。
1. 我的基本思路:用ollydbg调用api的loadlibrary和getprocaddress函数,然后调用dll内的函数
。接着,在dll里面,直接定义一个函数指针变量,赋值,这个值是原exe的某个函数入口地址,用ollydbg查得。然后通过函数指针调用原来函数
2. 问题来了:本机上一切正常,好友机上出现问题,而且基本肯定是那个函数调用出问题了(注释掉程序就正常运行)
3. 个人怀疑是程序在不同机器上的地址不同(还有这个说法的?我以前自己写demo的时候碰到过,但是找不到相关资料,非常费解)
4. 有什么更好的科学点的方法,避免直接给函数指针赋值么?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
禁止讨论外挂
2010-10-3 22:06
0
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
请你看明白我说的东西以后,再发表意见,谢谢。
外挂dll,不是游戏外挂=_=
2010-10-3 23:06
0
雪    币: 58
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
跟机器没关,你重启电脑后看加载的DLL基址是不同的。

帮你顶下
2010-10-4 01:05
0
雪    币: 998
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
直接用绝对地址,这个就是不可移植的。要想放之四海而皆准,就要用偏移。请参考关于重定位的资料。
2010-10-4 10:06
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
这也禁止,那也禁止,什么都禁止?
2010-10-4 11:45
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
,不懂
2010-10-4 12:50
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
关注这个问题.我也有这个疑问
2010-10-4 16:34
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好冷清的论坛.
2010-10-8 00:34
0
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我来看看。。。
2010-10-8 14:30
0
雪    币: 208
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
在exe里面输出,然后在dll里面GetProcAddress
2010-10-9 22:46
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
处于学习阶段…
2010-10-10 15:17
0
雪    币: 27
活跃值: (796)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
支持用偏移,可以读取几个字节判断一下是否是要调用的函数,按照这个思路下去,我们可以找到函数中几个特殊的字符来定位。不知可否。。。。。。。。。
2010-10-11 17:55
0
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
外挂DLL 就不属于外挂了?

和谐为主
2010-10-11 18:42
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
此外掛非彼那外掛
這是很容易讓人誤會的
2010-10-11 23:40
0
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
多谢启发,目前这个问题已经解决。应该还是绝对地址出了问题。
最后采用了偏移地址的方式来解决了这个问题。

采用stuppe查看地址偏移量,然后用汇编把代码段头地址弄出来,然后=_=
我只会这些笨办法……
2010-10-14 09:26
0
雪    币: 181
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这个思路我没有看明白。
比如如果获取一个函数,判断出来非需要的函数,接下来该咋办,到哪里去获取下一个函数,是个问题……
2010-10-14 09:28
0
游客
登录 | 注册 方可回帖
返回
//