现在有星际作弊外挂为了作弊现象不给看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***);
}
以上代码写dll里,然后注入到星际里就可以修改了
完善的程序可以用下载我自己写的星际争霸反作弊外挂程序
PKLANG星际争霸反作弊
可以检测以下作弊行为:
1:MapHack 开全图作弊.
2:TrainHack 人族爆基地或者兵营时增加35钱和气,虫族地堡取消变农民和钱.
3:MorphHack 农民变飞龙.
4:ScaraHack 人族刷3万钱.
5:VisionHack 关闭视野建重叠建筑.
6:FreeHack 人族或神族免费造农民或兵.
7.SuicideHack 自杀和自杀农民刷钱.
8.MiningHack 农民任意地方采矿.
9.NuclearHack 远程原子弹.
APM信息显示和时间信息显示
可以防存rep死机,防游戏卡死状态等
可以对作弊者实施游戏卡死功能(回车键后输入命令:die 对方的ID序号
如输入"die 2"就是让序号为2的玩家卡死,序号在游戏左上角有显示)
可以对作弊者实施刷屏功能,如果不能用卡死对方,就有这个功能吧!(方法为回车输入命令:fuck 对方ID序号,就可以猛发垃圾信息给他了!再输入命令:stop终止发信息!)
修改游戏为没建筑单位时不用挨被迫退出游戏,依然可以OB(要点确定)
彩色ID修改!简单方便修改,一次修改永久使用!
支持1.08A,1.08B和1.13E,1.13F等星际争霸版本,如有不支持请下载相关补丁
支持在QQ平台,浩方平台,VS平台等对战平台使用
如有不能使用,可能游戏或者平台升级,请加入星际反作弊群:44322878 QQ号:27760071 下载最新版本
如有什么问题或者建议请告诉我,让们一起把功能完善!
下载
sf_2009729102231.rar
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)