变速齿轮

变速齿轮

2024 南京大学《操作系统:设计与实现》
变速齿轮

调整游戏的逻辑更新速度

比如神秘公司神秘游戏慢到难以忍受的跑图和战斗

  • 今天游戏市场已经内卷到新手成长路线不顺滑就会被喷了

center

2024 南京大学《操作系统:设计与实现》
变速齿轮

变速齿轮

center

2024 南京大学《操作系统:设计与实现》
变速齿轮

变速齿轮:原理

程序 = 状态机

  • “计算指令” 是不能感知时间的
    • spin count 计时会出现 “机器变快,游戏没法玩” 的情况
    • syscall 是感知时间的唯一方法

“劫持” 和时间相关的 syscall/库函数

  • 改变程序对时间的认知
  • 就像手表调快/慢了一样
2024 南京大学《操作系统:设计与实现》
变速齿轮

定制游戏外挂

“劫持代码” 的本质是 debugger 行为

  • 游戏也是程序,也是状态机
  • 外挂就是 “为这个游戏专门设计的 gdb”

例子:锁定生命值

  • 创建,线程 spin modify:
while (1) hp = 9999;
  • 但还是可能出现 hp < 0 的判定 (一刀秒)
  • 可以 patch 掉判定的代码 (软件动态更新)
2024 南京大学《操作系统:设计与实现》
变速齿轮

代码注入

用一段代码 “勾住” (hook) 函数的执行

  • 然后就可以入侵程序逻辑 (从而为所欲为) 了

center

2024 南京大学《操作系统:设计与实现》
变速齿轮

代码注入 (cont'd)

“我听说恶魔果实是海中恶魔的化身。吃了它就具有恶魔般的能力,相对的也会遭到海的厌恶。”

2024 南京大学《操作系统:设计与实现》
变速齿轮

关于外挂/代码注入

也可以用来做 “好” 的事情

技术,无论是计算机系统、编程语言还是人工智能,都是给人类带来福祉的——我们甚至可以开发游戏外挂辅助你练习、提高成绩。

与此同时,强大的技术总有 “负面” 的用途。用任何技术损害他人的利益,都是一件可耻的事情 (academic integrity)。同样,如果你希望在人生这场 game (博弈) 中走得更远,我们也希望 “诚朴雄伟” 是每个南大人的气质。

2024 南京大学《操作系统:设计与实现》