首页
社区
课程
招聘
[讨论]一个R3下外挂如何编写(小菜愚见)
发表于: 2015-11-18 10:27 9252

[讨论]一个R3下外挂如何编写(小菜愚见)

2015-11-18 10:27
9252
学习逆向应该有半年多了,大大小小小写了很多练习项目。
    对病毒什么的没什么兴趣,到是对外挂和反外挂有兴趣,搜索了看雪论坛,发现有很多相关的讨论,对其中的内容都认真去看了,可惜很多都是零星散落在各地,没有工程化
    现在想尝试自己写个R3的的反外挂系统,对这大半年的总结。但是在写之前想看下之前有没有人写过,或者有什么开源的项目能够参考和避免走弯路。
    小菜在游戏行业的一个小公司做一个服务端程序员,偶然接触逆向,便一发不可收拾,做这个反外挂即是总结也可能对我以后的职业生涯有所帮助。
    希望各位同道助我一臂之力,小菜在此谢过!!

小菜的构思如下,这个R3下反外挂要做到:
1. 封装成sdk的形式,方便客户端工程师调用
2. 一般性检查(这个都是现有已经公开的技术,但是它最大的作用,让菜鸟写挂的人止步这里)
        a. 按键检测
        b. 模块注入检查(太尼玛多了,根本防不住,但是对常规手段有威慑作用就好)
         i. 远程线程检查
         ii. 本进程线程检查(有一些特殊的注入方法不一定需要远程线程)
         iii. apc
         iiii. 输入法(暂时没有想到好办法)

        c.进程空间特征码检查(抹掉pe指纹就不好弄了)
        d. call检查
          i. 调用堆栈
        e. 同MAC或者同IP下帐号检测
3. 特殊检查 (猥琐流,R3下检测在驱动漫天飞的时代当然不能硬碰硬)
       a. 故意暴露一大堆基地址出来,自己游戏不用,外挂用了这些,就悄悄向服务器报告
        b. 操作系统版本检测,比如用Win2003,win2008这类系统,并且挂着大量的虚拟机或者很多客户端的,基本80%都是挂
        c. 扫描同局域网下有多少客户端,如果有大量的客户端在结合行为分析,基本可以可以判断是否是外挂
4. 检查结果报告(这个地方单独列出来,是因为有可能被做外挂的人爆破掉,如果爆破掉上面两步就没意义了)
        a. 不能自己单独开端口,因为这样会被做外挂的发现,用游戏数据端口通信,涉及到怎么把游戏数据和反外挂数据分离开
        b. 不要像TP这样,直接踢下线,悄悄像服务端报告(俺是R3的),让服务端告诉客户端怎么处理(比如下线、封交易之类的)
        c. 不要立马报告,过一个小时或者半个小时随机报告,防止报告代码被爆破掉
这些是小菜想起来要做的,各位大神望指正

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 112
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也想做这个,我们可以聊聊不,QQ:446051770
2015-11-18 14:00
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
公司不能上私人QQ,下班回去加你
2015-11-18 15:10
0
雪    币: 49
活跃值: (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢老板提供的思路,这下又有爆破目标了!(我说怎么老封我的号呢)
2015-11-18 16:55
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
本身就是矛与盾,兄弟也可以提供你的思路
2015-11-18 17:25
0
雪    币: 1234
活跃值: (302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是做客户端游戏安全的,嘿嘿,
2015-11-20 15:39
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
在专业人士面前见笑了
2015-11-20 15:47
0
雪    币: 1234
活跃值: (302)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我是小菜,你是大神
2015-11-20 16:16
0
雪    币: 13
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
小的也想學習 539285527
有望大大們多多教學
2015-11-26 13:26
0
雪    币: 3725
活跃值: (619)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
遍历模块目录,子文件夹的名字和文件名.apex就喜欢这样弄.
2015-12-23 21:52
0
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
大神。。。。能给写个游戏挂不,
2015-12-29 01:34
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
这个想法比较好,但是有个问题,对于整个游戏开发来说,老是要改动这块,感觉很烦
2015-12-29 11:47
0
雪    币: 3725
活跃值: (619)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
13
没那么麻烦,只要特征对上了就可以. 时不时更新一下特征库,和杀毒差不多.
2015-12-29 13:07
0
雪    币: 45
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
学习学习
2016-3-17 18:07
0
雪    币: 1277
活跃值: (1058)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
15
以前弄过R3的,感觉还是心有余力不足,要是自己开发的游戏那就好办多了,就怕是传奇、VALUE这种没源码的就更蛋碎了~~

主流的还是CALL STACK检查、内存校验,按键精灵这种脚本挂基本上可以无视~~

以前折腾过的:ring3反作弊篇——基于EBP遍历调用栈及模块名
http://bbs.pediy.com/showthread.php?t=202791
2016-4-5 10:30
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
谢谢
2016-4-6 14:19
0
游客
登录 | 注册 方可回帖
返回
//