首页
社区
课程
招聘
[推荐]一个专门针对安卓反作弊的开源通用模块介绍
发表于: 3天前 3302

[推荐]一个专门针对安卓反作弊的开源通用模块介绍

3天前
3302

有人问我是谁,实际上我也没有什么特别的头衔

在各种论坛上也保持隐身的状态

我并没有工作压力,也是自由职业

所以我从来没有发表什么热门案例

来为自己做背景

我也不需要学一些做反作弊搞营销的空口吹牛逼

手游安全这个安全这么多年都讲太多了

例子太多我都讲不完

手游通用反外挂就是几个点

应用完整性+内存+环境检测

为什么我个人认为我开源的这个基础版就已经可以反住大部分做外挂的人了

因为

我曾经就来源于黑暗

所以在黑暗中我比他们看的更清晰

如果不是什么射击游戏

就是数值游戏等

这个模块可以满足你的大部分防护需求

当然

你的团队在购买反作弊之前是否有真正的了解一些问题?

病急乱投医只会白白浪费项目资金

你过度依赖的保护或许我都干掉过

其实也不能怪谁,能做工业级反作弊的团队太少同样的保护效果大家都在用

一个被饶过100个同时会被饶过

在这5年当中我一直在和团队批量进行一些涉及游戏资产,脱机,作弊的研究工作

可能有不能说的秘密,但是做到现在我们已经具备从屠龙者变成恶龙的能力

为游戏建起护城河

本人接触过对抗过所有主流的加固或壳,有研究1000个以上的商业化游戏经验

对各种反作弊都有过研究

除了头部的几个模块有一些水平

其他就算了吧

当然你还会跟我讲其他乱七八糟的

这没有问题,我都明白

在接下来的时间里,我们决定为手游行业做一些有意义的事情

去开源一款针对大部分安卓手游引擎通用的反作弊模块

java层就可以简单启动 开源版架构没有太重企业 符合中小个人项目使用

并长期优化它

做为朋友

这是你第一次了解我们的方式

也是第一次交换信任


关于正文:

反通用修改器阴间组合拳 脚本小子内存作弊者生理性厌恶

虚拟内存膨胀+金丝雀值,不可读碎片3重构建内存演示

(通过运行时给修改器必须要经过的内存区域分配50G的虚拟内存,平均给重要业务内存,所有pc修改器还是gg变种修改器扫10分之一就因为处理不了这么多内存自我崩溃,这可以解决很多第一次lua作弊脚本开发编写和接入了Android-Memory-Debug.hpp此类用户态 跨进程读写库的通用作弊菜单问题,比如这种通过全量扫描编写的lgl变种内存读写菜单,在这么多的内存全量扫描必崩溃,通过案例,某4399游戏项目就存在大量的内存读写脚本和修改器修改,菜单读写库不断骚扰,虽然加密做的很健全,但是项目组还是苦不堪言,如该下皇帝成长计划 明明本地核心资产什么都没有,游戏运行时通过云端拉取下载,但外挂菜单还是一大堆,使用修改者都是通过修改内存来实现作弊行为,可以看到下图闲鱼出现大量通过修改器获取内存特征填写入lgl菜单读写库的作弊菜单,内存膨胀就是我们专门针对这些通用读写库的,不管你怎么换,这种读写库必须全量扫描矫正特征码修改,内存膨胀后关键内存区域几十个G一扫就崩溃,并且内存页随机打乱,不存在固定特征,修改器没有办法饶过,在抓取特征那个阶段作弊者已经不可能实现了,3重机制下来,神仙也会被恶心死,你和我玩信息差?我把路给你炸了

全量扫描=崩溃

选中范围区域扫描=极易触发内存碎片被杀

选中范围区域扫描=难以找到真实内存页

扫描筛选数值=触发金丝雀值诱饵被杀

传统修改器读写寻找一个特征内存修改可能只需要3分钟

而在三重保护机制下,修改者的成本被无限拉大几乎不可能抓到内存特征编写脚本或者读写菜单

像cocosjs的这种在核心引擎so有超高强度的保护,如果目标不具备运行时获取密钥能力那么这足以让内存修改者绝望,因为cocosjs.so在运行时很难修改so来篡改游戏数值,修改者必须要进行一轮筛选先获取密钥,再处理已经加入的完整性校验,这里又有人问我js引擎不是只能通过jsc修改吗什么叫很难?

怎么通过修改运行时的cocosjs.so来作弊?我可以很负责的和你说,在高级的作弊者当中,这套办法是可以实现的,比如我可以不通过修改运行时展开的内存区域,不通过解密jsc修改,通过补丁或者钩子修改运行时的模块来实现js或者cocoslua.so实现无敌秒杀加速作弊,即使你使用了最顶级的商业加密手段来保护so,所以后期我发的文章有很多讨论

继续回到内存

我为什么觉得这个策略针对修改扫内存作弊的那批货几乎是死局,你仔细想想,有没有道理?对方如果通过内存来修改我的项目,那么他绝对会被恶心致死,当然这个保护不仅针对此类游戏,也针对最近比较热门的超自然行动,此游戏据我了解2cppdump出来几乎没有战斗数据地址,如果你有意识把Unit核心资产写入lua,几乎99%修改者只会通过面具dump手段获取游戏源数据,获取不到他们就会从内存下手,向有所耳闻的如小熊猫这类暴力修改内存就是使用了此类读写库,因为他们只是一群小孩拿着一些市场开源的作弊菜单来篡改游戏,技术含量几乎为0,如果项目组及时采用此类方案,配合极强的完整性保护,那么他们根本就没有制作此类暴力内存外挂的可能性,对于内存修改只有死路)


(这个方案可能在一些人认为激进,虚拟内存不同于物理内存,只有在修改器读写会加载,目前暗区魔方工作室有使用类似的案例,异环该产品也有类似,不过异环的不具备双内存范围的分配强度和反读写检测能力还有金丝雀值检测能力。

3种加起来我认为是接近对通用修改器修改内存的一种闭环检测方式,当然也存在修改者修改游戏引擎模块运行时的数据段等来补丁绕过我们的3重内存保护策略,所以这就是另一个维度的事情了,只能从加强型的root穿透检测下手直接把他修改器的发生扼杀在摇篮里,其实crc快照是最好的检测方式但是要做调优这是一个很耗费人力物力的事情,如果现实中crc快照也检测游戏模块,那么误报的风险太大,只有根据业务单独花费时间做部分段的检测测试,时间成本不现实,这里的数据段这些对应着修改器的xa内存范围这些,当然我们也有一套在不检测root和crc快照的情况下的反数据段修改检测可以在通用场景实现,毕竟在一些厂商看来这相当不安全,所以关于这个内存三重检测我讲了很多,这是目前改变内存战场的一种最好的方式,如果目前所有主流游戏都配备了这三种内存检测标准,这足以彻底灭杀那些通过修改器内存特征码延伸出来的外挂,因为90%的外挂都是通过内存而来,在顶尖的反作弊组合下面可能无感,但对于整个市场来说 几乎所有项目都无法逃过内存修改器的侵蚀,在三重内存检测的防护下再配合穿透型的root检测,模块自身的crc快照运行时几乎无解)

如果你还不明白?我以95%的作弊者视角给你还原

或者看看我的上一个文章,这是作弊者修改内存最热门的方式

在这里我提一嘴,关于反作弊,我相信很多项目组都购买了一些反作弊,第1永远不要去相信销售的话数,大部分加固不具备拦截检测外挂能力的策略,在今天这个时代反作弊不是高深技术,不要被绕进某些设计好的圈子,部分加固每年就像是浑水摸鱼的,你的项目资金可能就是一把韭菜,大部分反修改器的策略几乎只有一层,太多反修改器例子或许是精心设计给你看的,一到实战就翻车,比如你要购买了某某某的产品,不妨下沉一下去一些公域做一下调查,搜索某内存绕过,2次打包脱壳,内存dump看看是否如此简单被作弊者绕过,心里要有基准,不然每年的反作弊预算可能是压死一个中小型团队最后的一摞稻草,第2 部分项目组可能就是钱多,不在乎,可能就是出了问题有个依靠找人背黑锅,或心里慰藉,如果是这样,那我觉得干脆不用管,都是走个过场,市场会证明答案,你的项目能被人脱机就脱机,外挂一大堆就一大堆,反正都这样了,神仙来了也没有用

第3 作弊生态比你想的更强大,我接触过很多项目组,也了解一些高级作弊玩家,厉害的人,只用看一眼你的项目,心里就有了策略和办法以工业流水线形式将你的游戏做一个外挂菜单或者提取你的dam2次打包,结果是被几千甚至几万个人下载,你可能看看运营的数据没有什么变化,实际上只是你们看不见,你的那些保护几乎都被极短的时间时间绕过,在这些人眼里,你的项目只是在市场上走个过场,变成长期薅的羊毛,所以作弊的生态在一年比一年强大健壮,你看不见不代表没有人做,像上半年热门的一款产品,英雄没有闪一火起来就被专业的脱机团队弄出私服,据我所知,这是某acy完整性保护的产品,acy的完整性想全部剥离的难度有多挑人看雪上的同学们有目共睹,acy在国内的反2次打包剥离有多厉害是经过市场实验的,没有多少人有全部绕过的方案,虽然我也有办法


下面继续正文

第一阶段下载游戏(轻蔑,2分钟):“又来一个吹牛的反作弊?看老子用GG修改器一扫,把你特征码全扒出来。” → 打开GG,选择内存范围,点击“搜索”。


2. 第二阶段(困惑,10秒后):搜索进度条5%7%手机开始卡顿触发碎片被杀,GG修改器的进度条像蜗牛一样爬,CPU占用率飙升到100%,手机开始发烫修改器直接崩溃消失,你开始怀疑:“这破游戏怎么占了几十G内存?明明安装包才几百兆附加进程的时候显示没有怎么多内存……”


3. 第三阶段(烦躁,1分钟后):GG修改器直接无响应,或者系统弹出“应用已停止运行”。你以为是偶然,重启游戏和修改器,再来一次——同样崩溃。你开始意识到:“不对,这游戏有鬼。”

4. 第四阶段(气急败坏,10分钟后):你决定换更“精准”的方式,只扫描特定内存范围(比如0x70000000附近)。结果刚设定好范围,游戏进程直接自杀退出,连个报错都没有(触发了碎片页)。你骂了一句:“我操!这什么阴间保护?”

5. 第五阶段(恼羞成怒,半小时后):你尝试用更高级的注入工具,先暂停游戏线程,再手动修改数值。当你小心翼翼地把“100”改成“9999”时,游戏立刻闪退(触发金丝雀值)。或者你用调试器(IDA)附加进程,想要下断点,修改反作弊模块企图瓦解防御?触发crc快照自检,或游戏直接检测到调试器被杀,就算你绕过了反调试继续在pc上内存上下手,同理,你将于面临的是全量扫描50g内存和2000个散布的内存碎片500个针对内核层读写库的策略,这会直接让你的电脑内存爆炸,如果试图通过手段修改内存页权限来欺骗,同样会触发进程自杀。

6. 最终阶段(绝望的平静,一小时后):你逛了一圈论坛,发现所有和你一样的人都在骂这个游戏“变态”、“防挂防到神经病”。你看着手机里那个游戏内存显示几十G的区域,再想想自己折腾了几个小时毫无进展,终于长叹一口气,把修改器关了。心里虽然没真的砸手机,但那股想把设计这个反作弊的人揪出来打一顿的冲动,是百分之百真实的。


最核心的问题在于这个过程并没有开启root检测

如果开启增强型root检测,相当于断了外挂的输血管,穿透型root检测几乎把攻击root隐藏的设备全部覆盖,内核层检测你无法隐藏的特征再加上我们不断对红蓝对抗异常,你出一个杂鱼面具我就刷一个然后进行隐藏,再做调试升级策略,写死你root后内核层证据痕迹逃不过的检测,每个月进行一次咸鱼调查,我把手机寄过去给刷root隐藏的再发回来升级策略你怎么绕过我?你可能会说,这样太危险,相当于把root设备一刀切!这样的策略不符合我们的用户属性,我想要告诉你的是,我见过太多嘴硬的项目组,都是怕root影响这个影响那个,结果到游戏中期后期关于root的检测全部加上了自己打自己的脸,你说影响?实际上不然,很多大厂他们自己的核心项目都有此类检测,我见过太多了,特别是网易易盾系列的策略,还有暗区突围魔方,暗区突围的用户体量自然不用多说,我这么多年接触过不计其数的外挂玩家,几乎都是毫无商业游戏价值,这类的预付完成可以舍弃,要开挂的用户他付费率基本为0,并且会想方设法的去开外挂,一个外挂进来影响的是几百个付费用户,不要等外挂已经粘上你离不开了再去补救,一切都晚了,如果是我自己的项目,我一定会用最恶心的手段,当作弊者最严厉的父亲对外挂发生进行生态链层的阻碍,不能让真正需要你的高价值用户被外挂气走,,能刷root的用户多多少少都有使用外挂的习惯,root设备完全就是外挂的子宫,是我一定彻底堵死他们路,即使绕过一层,还有更恶心的组合策略等着他们自己跳

 


↓视频

通用反vm演示

(通用反所有顽固vm虚拟化沙箱模拟器分身大师小x分身微信分身,通过内核层虚拟化无法伪造的特征部署22种评分机制手段识别)

↓视频

模块运行src快照自检

(通用反运行时 修改器 动态调试器ida等 hook打补丁行为,运行时针对有人动态修改汇编补丁如例:16384这种类似行为关闭检测进行反制,当然这里是举例,这个模块修改这些是没有一点用的,关键的补丁点做了多个破坏检测)


↓视频

通用反修改器演示

(通用反脚本通用反内存读取库反内核读取库行为,配合内存膨胀让修改器获取内存特征时间成本 提高1000倍,运行时分配2048个4kb内存碎片其中还有500个特殊碎片针对内核级修改器,碎片都是不可读的,分配是随机性的,修改器就算使用区域选中扫描也难以躲避碎片并且还要面临金丝雀值地雷,此策略做了安全机制针对一些设备可能有内核层或者游戏助手读取防误触,只有同时扫描15个内存页会触发命中,当然,支持自行调节强度)


↓视频

反注入通用注入演示

(反jshook等注入框架反libtool提取游戏源数据行为,改名的注入so检测到也秒杀)

↓视频

通用反面具内存模块脚本dump转储

(通用反面具内存模块等所有dump源数据行为检测到立即杀死,即使是变种的手机内存dump工具目录下dump也不出任何dump.cs,配合高速线程扫描,即使被绕过,运行时检测到相关dump.cs和任何dump生产行为,立即查杀dump文件)


因为时间问题其他策略请您自行体验:

其他介绍


增强反调试行为

(覆盖目前看雪热门的绕过反调试文章能力,对变种调试器ida等拥有强大的反调试游戏终止能力)


反加速反沙箱时间加速

(通用内核层对比时间反通用加速器行为)


运行引擎模块隐藏

(反外部hook钩子补丁等调用行为,lgl作弊菜单等渲染菜单外部调用全部失效,此功能等于把模块全部隐藏,外部root插件,如无法绕过完整性的情况下相关宏补丁和hook注册环节将面临无法定位,所以项目包必须要加入较强的完整性保护手段,防止你的项目被打包为直装包含作弊菜单的版本,将外挂驱逐到环境检测防线那一层)


反root环境穿透检测

(通过对模块等各种隐藏自身root环境隐藏挂载的行为进行穿透识别,对杂鱼等高级定制作弊设备拥有极强的检测能力,命中后杀死自身,对于本地重计算的游戏,我们强烈建议您开启该功能,虽然可能会一刀切root,但是root后的设备拥有大量高级调用手段,该版本无法全部阻碍,我们强烈建议您彻底开启此功能来维护公平性,否则防御效果大打折扣,您要面临的是高级的是更成熟的作弊作者攻击)


看门狗检测

(模块运行时通过线程扫描手游逆向工具包名或自定义是否需要杀死自身,如mt管理器和dump工具包名是否同时存在,存在即杀死自身)



[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

最后于 10小时前 被霸服w编辑 ,原因:
收藏
免费 74
打赏
分享
最新回复 (38)
雪    币: 82
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
3天前
0
雪    币: 3986
活跃值: (9148)
能力值: ( LV7,RANK:102 )
在线值:
发帖
回帖
粉丝
3
666
3天前
0
雪    币: 0
活跃值: (635)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
6666666
3天前
0
雪    币: 18
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
6
3天前
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
tql
3天前
0
雪    币: 1898
活跃值: (2780)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
66666
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
666
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
666
3天前
0
雪    币: 426
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
学习学习
3天前
0
雪    币: 26
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
6666
3天前
0
雪    币: 227
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
666
3天前
0
雪    币: 227
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
66
2天前
0
雪    币: 158
活跃值: (5026)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
666
2天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
7
2天前
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
感谢分享
2天前
0
雪    币: 753
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
感谢分享
2天前
0
雪    币: 5038
活跃值: (5772)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
18
感谢分享。
2天前
0
雪    币: 95
活跃值: (3172)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
6666666666666666666
2天前
0
雪    币: 109
活跃值: (345)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
666
2天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
666
2天前
0
雪    币: 132
活跃值: (801)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
666
2天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
777
2天前
0
雪    币: 4200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
24
666
2天前
0
雪    币: 234
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
1
2天前
0
游客
登录 | 注册 方可回帖
返回