简单谈下 怎么避免游戏检测非法调用call

一般情况下 按照以下处理方式就可以避免了

 

例如 龙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

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值