20250623-20250629
20250623-20250629
附件:
【超级会员V5】通过百度网盘分享的文件:20250623-20250629
链接:https://pan.baidu.com/s/1aI5enMz9hl9OaFNaPRyJJw?pwd=padm
提取码:padm
题目复现
[GHCTF 2025]my_vm
vm的pwn,需要很强的逆向知识,本题的设计器思路并不难,值得学习
操作码对应操作如下:
其中,v2代表destination_register,v3代表source_register_1,v4代表source_register_2
- 操作码
0x10
(16):将指令的低 16 位值加载到目标寄存器reg[v2]
。 - 操作码
0x20
(32):将寄存器reg[v2]
的值压入Stack。 - 操作码
0x30
(48):从Stack中弹出一个值并存储到寄存器reg[v2]
。 - 操作码
0x40
(64):将reg[v3] + reg[v4]
的结果存储到reg[v2]
。 - 操作码
0x50
(80):将reg[v3] - reg[v4]
的结果存储到reg[v2]
。 - 操作码
0x60
(96):将reg[v3] ^ reg[v4]
的结果存储到reg[v2]
。 - 操作码
0x70
(112):将reg[v3] >> reg[v4]
的结果存储到reg[v2]
。 - 操作码
0x80
(128):将reg[v3] << reg[v4]
的结果存储到reg[v2]
。 - 操作码
0x90
(144):将reg[v3]
的值存储到内存地址 memory[reg[v2]]
处。
需要注意的是,Stack和Memory都是定义在bss段的变量.
题目把打印信息的函数地址给了funcptr并在最后调用,funcptr在bss段:
学习笔记
操作系统课设and英语考试……