首页
社区
课程
招聘
[原创]几个华夏2的call 与地址
发表于: 2010-11-9 19:55 5154

[原创]几个华夏2的call 与地址

2010-11-9 19:55
5154
1过PostMessage在游戏窗口置顶才有效的方法
0040A0BB  |.  833D F04D4400>cmp dword ptr ds:[444DF0],0                            ;  eax=1  这个是屏蔽按键的为0的时候屏蔽
0040A0C2  |.  75 07         jnz short HX2Game.0040A0CB                             ;  这个要跳
把上面的那个地址值改1就行了,找法简单在下消息断点后过了第一个小循环后面几句就是

2 小退方法:
这个有点麻烦,要先出现小退窗口才能实现小退,直接调用是不行的
找窗口ID的地方:
06C58812  |.  8B45 0C       mov eax,dword ptr ss:[ebp+C]
06C58815  |.  50            push eax                                               ; /5表示开,0表示关
06C58816  |.  8B4D 08       mov ecx,dword ptr ss:[ebp+8]                           ; |对话框id
06C58819  |.  51            push ecx                                               ; |Arg1
06C5881A  |.  8B4D FC       mov ecx,dword ptr ss:[ebp-4]                           ; |堆栈 ss:[0012EFAC]=0A550020
06C5881D  |.  E8 62FCFFFF   call WndMgr.06C58484                                   ; \对话框
调用这个CALL根据ECX(就是窗口ID)也可以出现各种窗口,但是调出小退窗口后按确定是不会退出的,所以只用来观察窗口ID

ESC窗口ID:6A  小退窗口ID:0A

要据窗口ID 找出窗口地址的CALL是下面这个:
06C5865D  |>  8B45 08       mov eax,dword ptr ss:[ebp+8]
06C58660  |.  50            push eax                                               ;  窗口ID  找出来了ESC的窗口ID是6A,小退窗口ID是0A
06C58661  |.  8B4D F8       mov ecx,dword ptr ss:[ebp-8]
06C58664  |.  8B11          mov edx,dword ptr ds:[ecx]                             ;  ds:[00C91E70]=100453B8 (WndSys.XDesktop::`vftable')
06C58666  |.  8B4D F8       mov ecx,dword ptr ss:[ebp-8]
06C58669  |.  FF52 1C       call dword ptr ds:[edx+1C]                             ;  ds:[100453D4]=10022E36 (WndSys.XDesktop::FindWindowByID)

调用上面的CALL返回值就是对应窗口的地址

根据得到的窗口地址找出相对应的按纽地址
出小退窗口的按纽地址方法:
ESC窗口地址+0x10得到一个存放9节链表的表头地址.再去链表中取出对应的值+0x58就是能调出个有用的小退窗口的按纽地址

退出按纽地址的找法:
06C5B78E  |.  8B8C8A 300100>|mov ecx,dword ptr ds:[edx+ecx*4+130]                  ;  ds:[06D42C80]=00C93080  ecx=0 edx=6D42B50
edx就是上面找出的小退对话框的值,ecx为0,里面放了好多按纽地址结果就是:edx+0x130就行

分别用上面找到的按纽地址作为下面ECX的值:调用2次就实现小退了
10008C67  |.  51            push ecx                                               ;  ecx=00CEE488 打开小退对话框 通过改变ECX的值可以实现小退
10008C68  |.  894D FC       mov dword ptr ss:[ebp-4],ecx                           ;  ecx=00C930D8
10008C6B  |.  8B4D FC       mov ecx,dword ptr ss:[ebp-4]
10008C6E  |.  E8 77FFFFFF   call WndSys.Signal0::emit                              ;  10008BEA=WndSys.Signal0::emit
10008C73  |.  8BE5          mov esp,ebp
10008C75  |.  5D            pop ebp
10008C76  \.  C3            retn           

先写这么多吧,有人可能要说只接找出基址不就行了,我是找不出来,只能这样将就着用
小退与进入游戏CALL与其它CALL调用地方是不同的,要在很前面的地方,太后面了只能调出对话李框,却小退不了

说明:1,call的地址还是要以DLL入口为参考的,这个大家都会就不多说了
     2,不通从游戏的更新界面进入,要用IDA进去改一下只接从输入帐号密码的地方进入才行,从更新界面进入,我想没几个OD 能对付得了它呵呵

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习一下.....
2010-11-9 20:14
0
雪    币: 1140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主不错,感谢分享,虽然还没做过类似程序,先学习下!
2010-11-9 20:48
0
雪    币: 60
活跃值: (46)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
看雪要成外挂论坛了
2010-11-9 21:23
0
雪    币: 145
活跃值: (92)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
是的  现在还有几个不研究外挂的类似看雪这样的论坛呢  看雪终究难以独善其身的

话又说回来  研究研究又有什么不好呢
2010-11-9 21:51
0
游客
登录 | 注册 方可回帖
返回
//