Reverse专题二:异架构/游戏逆向
2025.7.17
张曹琛 @Das Schloss
# Part.1 WASM 逆向 前端 + 汇编 = ?
## 普通前端代码 例题:osu!gaming ctf - wysi baby
- JavaScript:完全明文 - 可以混淆,但是难看且慢 ## wasm 例题:osu!gaming ctf - wysi revenge
- wasm 类似 LLVM BC 或者可执行文件 - 浏览器会自动转换成 WAT,类似 LLVM IR ## 逆向方法 - ghidra wasm 插件 - JEB ## 更多例题 - assembly online - wasm rpg
# Part.2 游戏引擎逆向 Unity
## Mono Unity 使用 Mono 架构,实现 .Net Framework 跨平台执行
C# 编译生成 MSIL,进而被执行 ## C# 逆向 类似 python,MSIL 非常容易被逆向回 C#
dnSpy:能将 MSIL 反汇编回 C#,并且支持 MSIL 甚至 C# 的修改 ## IL2CPP 把 MSIL 转换为 C++ 编码,之后编译成机器码 - 提高运行效率 - 解决 IOS 等平台不支持内置 .NET 虚拟机的问题 - 提高安全性 破解:IL2CPP Dumper ## Unity 例题 - Perfect Match X-treme(Sekai CTF 2022) - baby unity(XYCTF 2024)
# Part.3 游戏机平台逆向 Nintendo - 从 FC 到 Switch
## 架构 CPU 架构 - NES: 6502 - GB: Z80 - GBA: ARM v7 - NDS: ARM v9 - 3DS & switch: ARM v11
其中 6502 架构较为少见,ARM 虽使用较多,但由于 RISC 以及调试不方便,相比 Intel 汇编也更困难一点
不同主机/掌机平台的 ROM 格式也有区别 ## 逆向方法 静态调试:IDA 或者 ghidra 的 loader plugin
动态调试:各种模拟器 ## 例子 - NES - Rockman - GBA - Hackergame 2021 GPA - 星之卡比 镜之大迷宫 - NDS - HSCTF 2021 hcsDS - 3DS - 0ctf 2023 3ds boy - hxpctf 2021 hxp3drm
# Part.4 windows平台游戏逆向 PlantsVsZombies
## 重要工具 Cheat Engine - 最主要的功能:内存搜索 - 支持多种扫描方式 - 可对内存进行修改或锁定 - 内置反汇编器等工具 ## 例子 植物大战僵尸
Cheat Engine 分析游戏 + CPP 编写游戏修改工具
- OpenProcess - ReadProcessMemory - WriteProcessMemory - VirtualProtectEx ## 其他游戏修改技术路线 - DLL 注入 + 卸载(CreateRemoteThread + LoadLibrary) - Hook 技术 (IAT Hook,Inline Hook;SSDT Hook;DMA Attack)
如何反作弊?
# 谢谢大家 --- # questions?