The principle is
a buffer overflow that occurs as a trigger . In other words, you should be aware that an EUD is essentially
a software flaw and
a huge security vulnerability .
原理是作为 trigger 发生的缓冲区溢出。换句话说,您应该意识到 EUD 本质上是一个 软件缺陷和巨大的安全漏洞 .The root of the problem is one of the Action triggers provided by the map editor: Set Deaths.
[1] , which was a very ordinary function that could arbitrarily set a count variable for how many units a given player lost. However, there is one big problem here: there is no routine to verify that the range of values passed as parameters of this trigger is normal. For example, even if a map developer puts in something that cannot be used in normal game play, such as "Set the number of deaths of unit 7890 owned by player 123456 to 12345678," it will not be filtered out and will work as is.
问题的根源是地图编辑器提供的 Action 触发器之一:Set Deaths。[1] ,这是一个非常普通的函数,可以任意设置给定玩家损失的单位数的计数变量。但是,这里有一个大问题:没有例程来验证作为此触发器的参数传递的值范围是否正常。例如,即使地图开发者输入了在正常游戏中无法使用的内容,例如“将玩家123456拥有的 7890 单位的死亡人数设置为 12345678”,它也不会被过滤掉,而是按原样工作。So, it was revealed that the Set Deaths trigger, which would originally operate only within the limited player table (0 to 11) and unit ID table (0 to 227), could manipulate most of the memory information of the StarCraft process outside its scope. An attempt was made to change the internal variables of more diverse games in real time during the game beyond the limits of fixed triggers, and this is EUD. It is
a technique that touches memory by extending the trigger that sets the number of unit deaths,
so it is called 'EUD', a technique that extends
unit death . In particular, the Set Deaths trigger was more popular because it is a trigger that simply changes the value of memory at a certain location and has a very intuitive action.
因此,揭示了 Set Deaths 触发器,它最初仅在有限的玩家表(0 到 11)和单位 ID 表(0 到 227)中运行,可以操纵其范围之外的星际争霸进程的大部分内存信息。尝试在游戏过程中实时更改更多不同游戏的内部变量,超越固定触发器的限制,这就是 EUD。这是一种通过扩展设置单位死亡次数的触发器来触及记忆的技术,因此称为“EUD”,一种扩展 unitdeath 的技术。特别是,Set Deaths 触发器更受欢迎,因为它是一个触发器,它只是改变某个位置的内存值,并且具有非常直观的操作。Some of the star's internal settings can't be changed, but there are far fewer that can't be changed. Upgrades can be driven in one building, marines can use Yamato as their basic weapon, other unit motions can be attached to ground-air movement motions, zerglings can be overlapped, splash damage can be prevented from allies,
[2] , shielding Zerg/Terran units, healing mechanic units with Medic Heal, etc.
[3] All unit attributes, attack methods, and range
[4] , unit type, attack weapon, movement speed, attack speed
[5] , eyesight
[6] You can change the back to your liking. Beyond changing weapons or armor, you can find the internal structure and change the current health or mana amount in real time, or manipulate various variables that existing map editors do not provide, such as changing weapons.
星形的一些内部设置无法更改,但无法更改的内部设置要少得多。升级可以在一栋建筑中驱动,海军陆战队可以使用大和作为基本武器,其他单位的动作可以附加到地空移动动作上,虫族可以重叠,可以防止盟友的溅射伤害,[2],护盾虫族/人族单位,用医生治疗治疗机制单位等。[3] 所有单位属性、攻击方法和范围 [4] , 单位类型、攻击武器、移动速度、攻击速度 [5] 、视力 [6] 你可以根据自己的喜好更改背部。除了更换武器或盔甲之外,您还可以找到内部结构并实时更改当前的生命值或法力值,或者操纵现有地图编辑器不提供的各种变量,例如更换武器。If you go further and implement it well as a trigger, the graphics of the unit or map
[7] , Resources such as sound can be modified, and videos can be played in the map using the same principle. It is also possible to get help or activate new functions and skills by pressing a specific key, and it is also possible to modify the AI script to create a more aggressive AI.
如果更进一步,把它作为一个触发器实现好,单位或地图的图形 [7] 、声音等资源都可以修改,视频也可以用同样的原理在地图中播放。也可以通过按特定键来获得帮助或激活新功能和技能,也可以修改 AI 脚本以创建更具侵略性的 AI。Although it is not real, if it is the possibility of EUD, in theory, importing the graphics of
the Command & Conquer Tiberian Dawn unit can be implemented to some extent.
this?
虽然这不是真的,但如果这是EUD的可能性,理论上来说,导入命令与征服泰伯利亚黎明单位的图形可以在一定程度上实现。这?“I want to re-download StarCraft 1”… Amazing evolution of Usemap (video)
“我想重新下载星际争霸 1”...Usemap 的惊人演变(视频)EUD can be used with several other action triggers besides Set Deaths triggers, but the reason Set Deaths triggers are often used is because the defect was first discovered in Set Deaths triggers, but it is also the most efficient. It probably won't be replaced by another trigger. Similar things are EPD and
EUP (Extended Unit Placement). (
#1 ,
#2 )
除了 Set Deaths 触发器之外,EUD 还可以与其他几个操作触发器一起使用,但经常使用 Set Deaths 触发器的原因是该缺陷最初是在 Set Deaths 触发器中发现的,但它也是最有效的。它可能不会被另一个触发器替换。类似的是 EPD 和 EUP(扩展单元放置)。( #1 , #2 )It is possible to modify an exe with a
mod tool, such as Firegraft, but only up to 1.15, and from 1.16 onwards, it is not possible to use EUD or mod tools.
可以使用 mod 工具(例如 Firegraft)修改 exe,但仅限于 1.15 之前,并且从 1.16 开始,无法使用 EUD 或 mod 工具。