首页
社区
课程
招聘
我该如何保护我的游戏进程(反外挂)
发表于: 2013-2-2 16:23 10357

我该如何保护我的游戏进程(反外挂)

2013-2-2 16:23
10357
本人是菜鸟中的菜鸟,目前学习反外挂登录器。遇到一个外挂会注入游戏进程,并且自身是通过SYS加载,应该是驱动加载吧。进程隐藏了 ,通过枚举进程方式来反外挂就失效了。
请教一下高手们,有什么思路来对抗此类外挂啊。或者说能有什么方法能保护我的游戏进程不被注入,前提是没有游戏进程的源代码。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (16)
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
如果是驱动加载就更好了,不用hook函数来防注入,只需枚举导入内核模块,检查是否有该驱动名
2013-2-2 17:09
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢回复,可是检测驱动名是否有不好之处呢。只要重新编译一下,换个驱动名字就OK 了。我们又检查不到了。
2013-2-2 19:05
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
的确,但辅助基本上用的驱动并不是自己写的
如果真的要保护(专用)可以做得很绝
1,ntdll处hook NtProtectVirualMemory等,实际上inline hook比较易被恢复
2.内核隐藏进程(抹掉句柄表?),主要看是辅助怎么确定你的进程
3.动态申请内存,枚举进程模块
以上都是现在的我所使用过的,建议从1,3实行
2013-2-2 20:53
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
再次感谢回复,如果我想隐藏自己的进程,防止别人注入的话,这样各种杀软肯定是不允许的。
所以这个肯定是被PASS了。唯一的方法是各种检测。
做反外挂这个前途肯定很好。只可惜杀软这关不好过。内核中的战争啊。
2013-2-2 23:19
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
不会啊,可以用写物理内存api抹掉eprocess的双链实现隐藏,如果用驱动估计要数字签名
其实辅助大部分是修改内存吧,与其防注入不如从内存处入手,只是大程序的话会比较繁琐
2013-2-3 09:49
0
雪    币: 47
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
直接简单ida下外挂的sys(如果没加壳),不就解决了
2013-2-3 11:14
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
搞私服的吧。
2013-2-3 12:41
0
雪    币: 23
活跃值: (1401)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
别防注入了,注入是防不了的。
2013-2-4 04:21
0
雪    币: 189
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
是的,防注入估计很难。但是我想检测是否被注入应该不难吧。
2013-2-4 06:58
0
雪    币: 115
活跃值: (46)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
11
我觉得检测似乎更难,我的想法是把自己代码弄成动态库且注入到游戏,替换其api起保护,甚至可以用外挂所注入的模块名,占坑原理
2013-2-4 09:58
0
雪    币: 19
活跃值: (72)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
注入到你的进程总是要使用 LoadLibraryExW 的,你把EXE 拆分成 一个 exe做loader,一个dll 实现所有逻辑,dll PROCESS_ATTACH 的时候,先HOOK自己差不多需要HOOK的API就可以了。
2013-2-5 19:03
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
反调试。。。。。。。。。。。。。。。。。。。。。
2013-2-20 11:50
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
之前了解过几款防外挂的软件,他们的思路是这样的
1.首先隐藏自身的进程(需要杀软公司加白名单或者做数字签名)
2.游戏在运行过程中使用admin权限(通过注册的系统服务或者生成的shadow账户执行防外挂软件)
3.在游戏运行的过程中会同时启动另外一个防外挂的服务或者子进程
4.使用注册的驱动周期性的对当前系统中存在的进程进行检测(根据特征码及外挂行为原理方式进行检测)
5.周期性的确认客户端的完整性
2013-2-20 15:17
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
驱动啊。。。。。。。。。反调试,。。。。。。求楼主推荐工作
2013-2-21 08:52
0
雪    币: 239
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
1. 枚举进程。窗口。模块。端口等。外挂一般极少会做到很全面的隐藏吧。ring3下检测确实弱了点。所以建议还是游戏写个驱动来检测。
2. 在关键函数里加判断。既然是防外挂。那外挂肯定会调用CALL。比如发包。走路。吃药等等。但这个也容易被inline hook跳过检测。
3. 加入动态检测。代码从服务端发送机器码来解密并执行。
。。。。。。
方法很多。参考下别的游戏。。。
2013-2-22 00:09
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
都是高手啊。。我还需努力!
2013-2-27 15:41
0
游客
登录 | 注册 方可回帖
返回
//