找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 534|回复: 0

一种基于ARES拆分文件的地图mix加密方法

[复制链接]
发表于 2024-3-29 01:40:25 | 显示全部楼层 |阅读模式
本帖最后由 SirlerK 于 2024-3-29 01:49 编辑

为了防止非授权的地形盗窃行为,一些mapper可能会在发布地图时进行加密。但即使将地图放入了加密mix中也可能被别人通过十六进制编辑器等方法强行提取对应文本。在加密mix的基础上,利用Ares的[#include]将地图拆分并混淆可以大大提高破解的难度,从而大大增加利用UE等文本编辑器强行读取地图内容的难度。

一、背景知识(可跳过):
PART1 [#include]
首先是Ares说明书上的定义:[#include] — Ares 3.0 documentation (ares-developers.github.io)。简要来说就是Ares里rules文件可以用[#include]调用其他的子文件。
说明书没有提到的是:几乎所有INI文件(什么ai.ini,art.ini,battle.ini)都可以利用这一规则读取相应的拆分文件,而且等号右侧的部分实际上定义的是一种文件路径,即:你可以这样写来调用位于INI文件夹中的 西木.太平洋1 西木.太平洋2 两个文件(注意:太平洋1 为后缀)
  1. [#include]
  2. P1=INI\西木.太平洋1
  3. P2=INI\西木.太平洋2
复制代码

PART2 地图
地图(.map等)可以视为一种INI文件,不管你是用FA2、FA2SP、FA2Ext、WAE甚至记事本来编辑地图,最后你获得的都是一个叫XXX.map或者XXX.yrm的INI文件
所以地图这种 "INI" 文件也可以用[#include]来读取相应的 INI 甚至相应的地图,游戏也会正确识别 !

例如:你在游戏里打算启动battle.ini指定的A.map,但是A.map含有下面这些东西,那么游戏实际上相当于调用了MAPS文件夹中EASB.mapWWSB.map的全部内容并把它们加入A.map这张地图
  1. [#include]
  2. MAP1=MAPS\EASB.MAP
  3. MAP2=MAPS\WWSB.MAP
复制代码

二、加密方法

1.画完并保存S02.map
2.分散S02.map各小节到S02.P1~S02.P4四个文件
3.删除S02.map原有内容,替换为下面内容
  1. [#include]
  2. PART1=S02.P1
  3. PART2=S02.P2
  4. PART3=S02.P3
  5. PART4=S02.P4
复制代码

4.将S02.P1~S02.P4四个文件打包入mix中,并添加大量其它地图文件混淆,然后保存并加密mix

5.battle.ini中注册S02.map,运行游戏启动S02.map

下图即为测试地图的实际表现,无论是地形、触发、AI小队都正确完成了相应任务,说明拆分文件读取成功。


在实际加密时,可以尽可能多地将地图拆成多个碎块文件,混淆各个文件名之间的关系,或者采用多重嵌套的方法,在多个INI文件之间互相调用(因为[#include]中的子文件也可以利用[#include]调用其他文件)以加大破解难度。

对于地形加密,可以将IsoMapPack5(即地形的保存形式)采用拆分小节的形式进一步增大破解时反向组合的难度。例如下图就是将S02.map中的IsoMapPack5分散至S02.P1S02.P3两个文件,破解者想要获取原文件S02.mapIsoMapPack5就必须手动组合这两个部分。


三、其他
这种加密方法特点在于可以更大程度上分散完整的地图文件,实际使用时应该辅助其它地图文件进行混淆,尽可能增加分辨组合原地图文件的难度。加密只能拉高部分 (**) 获取文件的难度,只要破解需要的时间足够长就会让破解者主动放弃(所以为什么不自己画呢,乐)。
MOD也可以结合其他加密方法,例如韩大妈最近发的:
【新提醒】【教程】地图加密 - ☉ 红警地图研究所 ☉ - 红警DIY论坛 - Powered by Discuz! (ra2diy.com)






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛

GMT+8, 2024-7-16 00:49 , Processed in 0.046033 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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