设为首页收藏本站

八达网

 找回密码
 注册
查看: 591|回复: 17
打印 上一主题 下一主题

星际争霸存录像卡死原理和解决办法

[复制链接]

52

主题

1

好友

2万

积分

大和

跳转到指定楼层
1
发表于 2009-8-7 11:54 |只看该作者 |倒序浏览
现在有星际作弊外挂为了作弊现象不给看rep录像,而采用了一种垃圾数据包使存录像时会卡死住 ,只能用任务管理器终止进程,不知道切换的人还以为是电脑死机了呢(星际是全屏),这个功能真是太恶心了!当然,还有个更恶心的就是游戏中对方让你星际直接卡死,原理也是差不多,直接发个聊天数据里包含为0x0C的字节就会使星际卡死,解决办法就是hook到接收聊天信息的地方过虑到这个字节就行了.
现在我们来分析一下存rep卡死的原理(以下以1.08B星际版本为例)

通过跟踪分析知道存rep的函数地址

.text:0047BED4                 inc     esi
.text:0047BED5                 mov     ebx, [esp+1Ch+var_C]
.text:0047BED9                 xor     edi, edi
.text:0047BEDB                 and     ebx, 0FFh
.text:0047BEE1                 jle     short loc_47BEF5
.text:0047BEE3
.text:0047BEE3 loc_47BEE3:                             ; CODE XREF: sub_47BE90+63j
.text:0047BEE3                 inc     esi
.text:0047BEE4                 mov     ecx, esi
.text:0047BEE6                 call    sub_474D60   
.text:0047BEEB                 lea     edi, [edi+eax+1]
.text:0047BEEF                 add     esi, eax
.text:0047BEF1                 cmp     edi, ebx
.text:0047BEF3                 jl      short loc_47BEE3
.text:0047BEF5
.text:0047BEF5 loc_47BEF5:                             ; CODE XREF: sub_47BE90+51j
.text:0047BEF5                 mov     edx, [ebp+0Ch]
.text:0047BEF8                 mov     ecx, [ebp+8]
.text:0047BEFB                 add     edx, ecx
.text:0047BEFD                 cmp     esi, edx
.text:0047BEFF                 jb      short loc_47BECA
.text:0047BF01                 mov     edi, [esp+1Ch+var_8]
.text:0047BF05

从汇编代码里在  0047BEE6                 call    sub_474D60 返回值里如果是-1
那么会陷入死循环,星际就出现卡死现象了.
解决办法我们可以在0047BEE6 里改成跳到我们修改的地方,不给它返回-1就行了
具体代码如下
DWORD offsetAntiSaveRep = 0x0047BEE6 //要修改的地方


__fastcall signed int MyChangeAntiSaveRep(DWORD a)
{
  DWORD ret;
  __asm
  {
    mov ecx,a    //原函数的参数
    mov eax,dwSaveAntiSaveRep; //保存原函数地址
    add eax,5   //call 后面要加5个字节
    call eax      //调用原函数
    mov ret,eax  //保存返回值
  }
  if( ret==-1 )     //如果是是-1 就给它为0
    ret=0;
  return ret;
   
}
//修改
void ChangeAntiSaveRep()
{
  DWORD dwNew***, dwOld***;
  dwNew*** = PAGE_READWRITE;
  VirtualProtect((LPVOID)offsetAntiSaveRep, 6, dwNew***, &dwOld***);
  __asm
  {
    pushad
    mov eax,[offsetAntiSaveRep]
    mov edx,offset MyChangeAntiSaveRep
    sub edx,eax
    sub edx,5    //计算出MyChangeAntiSaveRep的偏移地址
    mov ebx,[eax+1]
    add ebx,eax
    mov dwSaveAntiSaveRep,ebx //先保存原函数的偏移地址
    mov [eax+1],edx    //然后把原地址改成我们函数的地址 就变成call MyChangeAntiSaveRep
    popad
  }
  VirtualProtect((LPVOID)offsetAntiSaveRep, 6, dwOld***, &dwNew***);   

}
下载地址
http://bbs.pediy.com/showthread.php?t=94553
1

查看全部评分

几度烟雾缭人梦~
几度春光醉人心~
几度飞歌碎人颜~
几度忧愁花人发~
宇宙第1星际站队[HS81]诚邀你的加入

20

主题

0

好友

4万

积分

光明执政官

你找到你的苇月伊织了吗?

2
发表于 2009-8-7 11:54 |只看该作者
好牛X啊同志
我出生在那火红的年代 我是党的儿子
回复

使用道具 举报

52

主题

1

好友

2万

积分

大和

3
发表于 2009-8-7 11:56 |只看该作者
转自前VCHELP 论坛 冷星客 朋友
几度烟雾缭人梦~
几度春光醉人心~
几度飞歌碎人颜~
几度忧愁花人发~
宇宙第1星际站队[HS81]诚邀你的加入
回复

使用道具 举报

253

主题

12

好友

11万

积分

黑暗执政官

图样图森破

战队
SCI
种族
Terran
4
发表于 2009-8-7 11:57 |只看该作者
可以贴出来么,我没有ID,下载不了。
如果这个是广告贴,就当我前面没说。
回复

使用道具 举报

149

主题

0

好友

4万

积分

大和

老黄永远的粉丝

5
发表于 2009-8-7 11:57 |只看该作者
看不懂啊。
回复

使用道具 举报

1579

主题

0

好友

4万

积分

光明执政官

2013年度八达十大水友

6
发表于 2009-8-7 11:59 |只看该作者
1.14以后修复了。

回复

使用道具 举报

52

主题

1

好友

2万

积分

大和

7
发表于 2009-8-7 12:02 |只看该作者
我冷老大还是很牛逼的  做游戏开发  外号PKLANG
几度烟雾缭人梦~
几度春光醉人心~
几度飞歌碎人颜~
几度忧愁花人发~
宇宙第1星际站队[HS81]诚邀你的加入
回复

使用道具 举报

artofsexy 该用户已被删除
8
发表于 2009-8-7 13:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

33

主题

0

好友

2216

积分

坦克

2013年夜饭

9
发表于 2009-8-7 13:35 |只看该作者
SB520更新到1.74了?
我还在用1.6呢,赶紧换
回复

使用道具 举报

0

主题

0

好友

4万

积分

光明执政官

大庄稼汉

8da官方大庄家

10
发表于 2009-8-7 13:39 |只看该作者
这么麻烦啊  还是然他卡死算了


绝不允许“台独”分裂势力以任何名义、任何方式把台湾从祖国分割出去!
回复

使用道具 举报

0

主题

0

好友

7万

积分

仲裁者

11
发表于 2009-8-7 13:58 |只看该作者
1.16???
回复

使用道具 举报

25

主题

0

好友

2万

积分

大和

12
发表于 2009-8-7 15:24 |只看该作者
还是不会,我看不懂
回复

使用道具 举报

1

主题

0

好友

1万

积分

航母

13
发表于 2009-8-7 16:32 |只看该作者
这个。。。。
能简单说下怎么弄,然后别人无法卡死你或者存死你吗?
回复

使用道具 举报

52

主题

1

好友

2万

积分

大和

14
发表于 2009-8-7 16:55 |只看该作者
居然加分了 饿
几度烟雾缭人梦~
几度春光醉人心~
几度飞歌碎人颜~
几度忧愁花人发~
宇宙第1星际站队[HS81]诚邀你的加入
回复

使用道具 举报

2

主题

0

好友

1万

积分

航母

15
发表于 2009-8-7 17:09 |只看该作者
。。。那个显apm的读数 我一直按1 2 自己往上加 加到无穷大

永远不要试图去战胜一个纯SB,因为它们往往会用尽全力把你的智商拖到和它们一个水平线上,之后再用它们丰富的经验打败你!
回复

使用道具 举报

头像被屏蔽

0

主题

0

好友

2700

积分

禁止访问

16
发表于 2009-8-7 18:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽

0

主题

0

好友

2700

积分

禁止访问

17
发表于 2009-8-7 18:22 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽

0

主题

0

好友

2700

积分

禁止访问

18
发表于 2009-8-7 20:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2026-1-28 07:34

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部