# Part.2 Windows游戏PvZ逆向
## 工具
- IDA
- CE
- x32/x64dbg
- ollydbg
## Cheat Engine
- 有官方的CE教学12关
- 支持内存扫描
- 支持代码注入
## 例3 修改PvZ游戏内容
- 修改阳光
- 修改冷却时间
- 阳光自动收集
- 多种修改功能->整合->修改器或用于改版制作
## C#逆向工具
- Unity 使用Mono架构,实现 .Net Framework 跨平台执行
- C# 编译生成MSIL,进而被执行
- ILSpy
- dnSpy
## 例4 Perfect Match X-treme
- Assembly-CSharp.dll 是 Unity 游戏引擎编译后的核心脚本程序集,包含游戏开发者编写的 C# 代码逻辑
- 记忆力不行怎么办...行也没用
- 晕3d怎么办...不晕也没用
- dnSpy分析关键函数
- CE扫描内存偷flag
- 修改重力(MoveBehaviour.MovementManagement)和高度判断(HeightCheck)
- 或许其他方法?
## Javascript
- 涉及混淆->反混淆
- 动态调试
## 例5 BeginCTF stickgame
- 反混淆 https://obf-io.deobfuscate.io/
- 动态调试
- 修改分数
## Python
- .pyc文件是 Python将.py源代码编译后生成的字节码文件
- 可以通过uncompyle6反编译
## 安卓-Java
- jadx
- 安卓模拟器
## Golang
- IDAGolangHelper
## 总结
- 游戏逆向为了什么?
- 修改作弊? 怀旧? 了解原理?
- 打比赛? 上课?
- 架构千千万,学也学不完—>查阅资料和快速学习的能力十分重要
## 作业
- 基础:
- 复现课上的题目例2 GPA
- 复现课上的题目例4 Perfect Match X-treme
- 复现课上的题目例5 stick game
- 完成题目:微观世界,题目材料在学在浙大上给出,请于提交的报告中呈现逆向过程与结果
- 完成题目:迷宫,题目材料在学在浙大上给出,请于提交的报告中呈现逆向过程与结果
- 挑战:
- 尝试自己喜欢的游戏逆向/工具开发,可以描述逆向的原因,技术流程和结果等等(也可以查阅网上资料)。
- 例子: Minecraft mod制作/Terraria失谐门等等
## 预告
- 逆向专题2 "自动"逆向技巧 @f0rm2l1n
- 引言:人工密集型的逆向过程
- 基础:符号执行器基础 - 以 angr 为例
- 实战:符号执行用于自动化逆向
- 反思:符号执行存在的不足
- 拓展:其他"自动"化技巧探讨
- Maybe他自己的一些逆向经验见解分享
# 谢谢大家~希望大家能够喜欢上逆向!
---
# Questions?
Contact me? QQ 917581079