TangJunLin2002 2005年03月30日
调用游戏自己的函数来写实现数字显示功能!
===================首先申明:只是学习技术,不是想开发外挂=====================
关键是想不痛,那些外挂到底是怎么做到的??为什么我写字就是不行??????
首先用GDI写字是肯定不行的,绝对不停的闪,要调用游戏自己的写字符的函数!现在大部分外挂也是这么做的!
主要是想不通游戏自己写字不闪是因为游戏自己的主循环在不断的调用写字函数一直在写!
我用传奇2私服来学习,反汇编找到写字的函数以后,注射了一个DLL进去显示一个对话框,在DLL中用内联汇编的形式PUSH 把参数压入,然后CALL函数地址,字到是写上去了,但是一下就不见了!估计是被游戏刷新了!
尝试了用定时器不段循环调用,但是定时器的时间设置超过20就要闪烁了,设置到20不闪烁了就把游戏拖死了!郁闷……
单独看一个线程也把游戏拖死了!
现在大部分外挂都的数字显示功能都是调用的游戏自己的写字的函数把。但是他们怎么保证游戏不断的刷新中,不会把他写上去的字符刷掉呢??

往传奇聊天框添加字符的函数地址和显示字符的地址不一样,添加字符也没问题!但是哪个不会被游戏刷新函数影响!所以可以直接添加字符到显示聊天消息的框中。
想不痛,那些外挂比如赤月外挂是怎么实现数字显示的??他怎么能写上去??我反汇编看他的DLL也调用了我找到哪个函数地址???
顶时器,不行,线程不行!他是怎么做的?????我实在是想不痛了,请教各位大大了!
====================================以下是代码===================================
调用以后字符闪了一下就不见了,字符按一下出来一下我试了一下用计时器settimer(1,20,NULL)调用,字是不闪了,但是游戏也让我拖死了………哭!单独开一个线程也不行!
估计因为我这段代码一直在调用0x004a1494;这个函数导致游戏一直卡死在执行这个函数写字符上,所以就游戏就被卡死了!
下面是代码:
DWORD a1a=0x004a1494;
__asm{
mov eax, 00e0a5ach
call p1
call p2
push 1
push eax
call p3
push 00ffffffh
push 00000000h
push 0046bb78h
xor ecx,ecx
xor edx,edx
mov eax,00e0a5ach
call a1a
}
EAX:是自己找出来的,机器重启动一次改变一次!这个问题以后在解决了,现在还是没解决写字符不闪的问题!
以上代码,能调用游戏字符函数写字,但是用SETTIMER间隔为20豪秒的话,程序就会反复去执行call a1a,所以游戏会卡死!
大侠们难的给我代码就给我点思路把,感激不尽!
----------------------------------------------------------
既然来了就多问一个问题,上面代码中mov eax,00e0a5ach本来的代码是
mov eax,dword ptr [ebp-08],这种地址直接这样调用会出错的,如何才能准确在自己的程序中找到当时EAX中的值呢?

小弟菜鸟一个,不懂的问题太多了!跪请各路英雄赐教!
====================================================================================
以上CALL的也就是传奇游戏右下角显示地图名字和人物坐标的函数地址!因为用的是一个私服的MIR.dat被他修改过,找到的地址可能和你不一样!以上代码可以调用游戏中显示字符的函数也能显示出来,但是一闪就不见了!

我总不能让游戏循环刷新函数调用我的DLL中的函数把??那就要动态修改游戏代码了?我觉得那些外挂不是这么做的把??

附带找到的几个地址,人物状态基地址:0x4F7EF8,HP=4F7EF8+3c,,MAXHP=4F7EF8+40其他的在我家里机器上我现在记不下了,还有写其他实现功能的CALL但是都和数字显示没什么相关就没记下了反正又不是做外挂,只是想看看到底是怎么让游戏主循环不把我门写的字刷掉呢?
本来是用自己用HOHO游戏引擎写的五子奇在调用,但是怕各位不好帮我,就又花了几天用传2的私服来调试了!
请各位大大多提意见,讲讲原理把!到底要怎么写字才不闪呢?那些外挂也是用这个方法的,那么他们又是怎么做的呢?
分不够另外开贴在加!
...全文
105 点赞 收藏 9
写回复
9 条回复

还没有回复,快来抢沙发~

发动态
发帖子
进程/线程/DLL
创建于2007-09-28

6373

社区成员

4.9w+

社区内容

VC/MFC 进程/线程/DLL
社区公告
暂无公告