赞
踩
一般情况下 按照以下处理方式就可以避免了
例如 龙OL 这样处理就不会被检测到非法调用call了
在游戏地址空间找到一处空位置 写入如下机器码
004014D9 58 pop eax ; 弹出返回地址
004014DA A3 E8144000 mov dword ptr ds:[4014E8],eax ; 保存返回地址
004014DF 58 pop eax ; 弹出选怪call地址
004014E0 FFD0 call eax ; 在游戏空间内调用了选怪call
004014E2 - FF25 E8144000 jmp dword ptr ds:[4014E8] ; 返回调用处
004014E8 90 nop ; 004014E8下面4个字节用来保存返回地址
004014E9 90 nop
004014EA 90 nop
004014EB 90 nop
004014EC 90 nop
004014ED 90 nop
004014EE 90 nop
下来我们看看 怎么调用他 (004014D9)
004014D4 90 nop
004014D5 C2 0400 ret 4 ; 比如这里是有一个参数的选怪call 所以是 ret 4
004014D8 90 nop
push 1 ;压入选怪参数
push Spy4Win.004014D5 ; 压入选怪call地址 比如这个地址是选怪call
mov eax,Spy4Win.004014D9 ; 这里是我们在exe地址空间内找到的可用地址
call eax
这样 到选怪call以后 调用选怪call的就是游戏自己了
另外还有一种检测方式就是游戏检测是否是游戏窗口主线程在调用游戏的call
这种方式就通过hook游戏窗口过程 也就是窗口子类化
子类化以后通过发送自定义消息给游戏窗口来实现在游戏窗口主线程中调用游戏call
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。