骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买霸主CDKEY 购买战帆CDKEY
查看: 469|回复: 1

[功能与代码] 花糕的Tool——关于反作弊

[复制链接]

20

主题

716

回帖

386

积分

见习骑士

Rank: 3

UID
3102512
第纳尔
2455
精华
0
互助
33
荣誉
0
贡献
0
魅力
85
注册时间
2019-9-6

骑砍中文站APP会员勋章战团正版勋章霸主正版勋章

鲜花(67) 鸡蛋(0)
发表于 6 天前 | 显示全部楼层 |阅读模式
  本来这个应该是写process里面的,但是因为牵扯到的东西比较多,还是单独开一个吧。
  关于反作弊有一部分是代码里面对玩家的限制,这个我不关注,那是作者自己的想法,说来说去无非也就那么些论点,是非曲折难以论说。我的帖子主要还是讲一下,关于 反编译 这档子事情。

  还是那句老话,众所周知因为机器码是游戏引擎调用的,所以无论怎么下手机器码格式和编译原理是固定的,所以目前能有的反作弊上升到机器码这层面就只能是破坏可读性了。
  目前的反编译手段,要么就是codeeditor反编译之后自己硬改,要么魔球佬用魔球可以改一部分,再要么就是人肉硬读txt硬改。

  今天时间不多,先展示一个例子,可以干碎codeeditor和魔球的这两种,对于第三种真正理解ms编译原理并且熟练读写txt机器码的人也极为头大,可以说能将所有反编译的路数都卡死在了理论上的这一步。

  首先明确一点基础逻辑,骑砍的游戏引擎读取txt机器码文件内容的时候,换行符不属于识别标识,半角空格才是。
  这一点我也是前几天和@jackjian321 聊天的时候才明白的。
  
  再此基础上,就有一种实现思路,我们将一个模块中所有对象的输出name改成输出id,再将换行符用空格替换就行了。输出之后可读性不能说差的没边了,只能说是一点可读性都没有。我本人对于这个思路暂时提供一个scripts的案例,有兴趣的可以用一下。
  使用方法为:
  1.将文件中的 process_scripts_huagao.zip (820 Bytes, 下载次数: 6) 文件解压后丢到你自己的ms里面;
  2.编辑模式打开build_module批处理文件,在process_scripts.py下面单起一行插入process_scripts_huagao.py;
  3.打开你的module_constants,添加 huagao_process = 1 ,建议所有这种自己添加的常量整合一下方便管理调用。
  之后正常编译,这种加密编译的提示输出是"Exporting scripts by huagao process...",如果你不想用了,去module_constants把huagao_process赋值为0就行。

解解解解解解解解解解解解解解解解解解

29

主题

817

回帖

594

积分

骑士

Rank: 4Rank: 4

UID
3322408
第纳尔
1773
精华
0
互助
68
荣誉
0
贡献
0
魅力
16
注册时间
2022-2-3
鲜花(60) 鸡蛋(0)
发表于 5 天前 来自手机 | 显示全部楼层
来自: Android客户端
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-11-30 02:36 , Processed in 0.092386 second(s), 21 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表