Rev Lab 2:VM 逆向 ¶
Rev 专题二:VM 逆向的实验部分作业分为出题和解题两部分,理论部分的课件见 rev lec 2:VM 逆向:造一台机器,拆一台机器。
本 Lab 最高可加至 115 分。
出题(50% + bonus 5%)¶
出一个基于 VM 的 CTF 逆向题目。
- 题目附件压缩包(程序 + README/description)10%
- 出题 report 40%
- report bonus:内容有人味 / 巧思;技术上如控制流复杂化、编码花活、反 trace/ 反符号执行、反侧信道 bonus 5%
评分细则:
| 评分项 | 占比 |
|---|---|
| 附件能在指定环境稳定运行(推荐 x86_64 Linux/Windows) | 10% |
| 自定义 bytecode 格式 | 10% |
| 一个解释器,能执行若干条虚拟指令 | 10% |
| flag / 输入校验的核心逻辑必须主要发生在 VM bytecode 中 | 10% |
| 题目具备可解性(请开一个小节,写出或描述出合理的预期解法思路) | 10% |
| report bonus:内容有人味 / 巧思;技术上如控制流复杂化、编码花活、反 trace/ 反符号执行、反侧信道 | bonus 5% |
出题不以代码规模、混淆强度或 " 能不能不被 AI 一把梭 " 作为唯一评价标准。只要 VM 架构自洽、核心校验逻辑确实运行在 VM 中、题目可稳定复现,并且 report 讲清楚设计思路,就能拿到较高的基础分。
bonus 方向可以参考:反侧信道、控制流复杂化、藏特征(隐藏 dispatcher/state
出题作业 DDL1:7 月 23 日中午 12 点 ¶
- 请将出题后的题目(不含 report 和源码,即题目的呈现形式,建议打包压缩包)上传到 浙大云盘,按照其中的示例格式新建自己的文件夹。
- 出题的 report 上传学在浙大,题目附件和源码也交一次。
解题(50% + bonus 10%)¶
解一道 VM 题(自解或互解
- 题目附件 <1%(但得交)
- writeup 50%
- WP bonus 内容:有人味、展示试错过程 bonus 5%
- WP bonus 技术:自动化反汇编脚本、VM 模拟器、trace 分析等 bonus 5%
评分细则:
| 评分项 | 占比 |
|---|---|
| 正确识别程序中的 VM 特征,定位到相应部分 | 10% |
| VM 架构恢复(bytecode 格式、opcode 语义、状态存储方式:栈 / 寄存器 / 其他巧思) | 30% |
| 程序语义恢复并逆向求解出正确 flag | 10% |
| WP bonus 内容:有人味、展示试错过程 | bonus 5% |
| WP bonus 技术:自动化反汇编脚本、VM 模拟器、trace 分析等 | bonus 5% |
writeup 要求自包含、从解题者角度写:
- 写清楚对应的题目、出题人信息
- 完全从题目给出的信息逆向出来(这也要求出题人不能出不可解的题,例如不可逆加密)
- 自包含:没看过题目、没做过研究的人也能看懂——需要解释现象和思考过程,不能只贴结论
- 解题很少一帆风顺,踩过的坑、遇到的难关值得分享;一路到底、隐去所有探索分支的 writeup 不适合经验交流
可以找同学解对方出的题(比较有趣
解题作业 DDL2:7 月 30 日晚 23:59 ¶
在浙大云盘选择某个文件夹(示例除外)下你感兴趣的一道题目进行解答,并按照上述要求写题解。本部分评分几乎全在题解,请用心打磨,slides 上有一些 wp 的示例可供参考风格。
- 由于云盘上的题目是同学们自行上传的,若解题时遇到问题,在确认不是自行能解决的情况下,欢迎自行联系出题人或助教。
关于 AI 使用 ¶
不禁止 AI 辅助写 report/writeup,但浓重的 AI 味会酌情扣分,有小巧思会酌情加分。交付前请自己通读、审查一遍——如果连自己都不想读下去,大概不会太高分。建议:
- 总 - 分结构:先讲清楚思路,再展开细节,不要一开始就淹没在细节里
- 讲动机:不只讲 " 怎么做 ",也讲 " 为什么这么做 "
- 详略得当:不影响思路的无趣细节可以略过,避免又臭又长
- 言之有物:内容丰富度适中,不故意堆砌复杂度,也不能没东西可讲