简单谈下 怎么避免游戏检测非法调用call
2011-01-17 02:57
302 查看
一般情况下 按照以下处理方式就可以避免了
例如 龙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
例如 龙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
相关文章推荐
- 服务器被入侵了怎么办 rkhunter的简单安装及检测后门
- Java编程实现游戏中的简单碰撞检测功能示例
- c#调用windows api C#简单游戏外挂制作(以Warcraft Ⅲ为例)
- Delphi XE8安卓(android)定位纠偏、地图简单调用、检测开启系统GPS
- 避免在构造函数中调用虚方法(Do not call overridable methods in constructors)
- android 3D 游戏实现之简单碰撞检测
- 3/18小作业,简单的非法输入检测与测试
- 如何用cocos2d-x来开发简单的Uphone游戏:(三) 射击子弹 & 碰撞检测
- 现在很火的答题赢钱游戏,让我来简单教你怎么做自动答题器
- java 调用 C# 类库 实战视频, 非常简单, 通过 云寻觅 javacallcsharp 生成器 一步即可!
- 安卓模拟器玩绝地求生:刺激战场电脑版怎么避免模拟器检测教程
- java 调用 C# 类库 实战视频, 非常简单, 通过 云寻觅 javacallcsharp 生成器 一步即可!
- php中怎么使用call_user_func动态调用方法
- 一种简单的检测form非法字符串
- 人脸检测? 对Python来说太简单, 调用dlib包就可以完成
- 一段调用游戏call的代码
- Java简单游戏开发之碰撞检测
- 引脚太少,想多接几个按键控制怎么办?-----谈单片机AD检测法实现简单实用的按键
- 最简单的ndk调用!通过libjpeg库来加载图片,避免了oom~
- Java简单游戏开发之碰撞检测