20250623-20250629

20250623-20250629

附件:
【超级会员V5】通过百度网盘分享的文件:20250623-20250629
链接:https://pan.baidu.com/s/1aI5enMz9hl9OaFNaPRyJJw?pwd=padm
提取码:padm

题目复现

[GHCTF 2025]my_vm

vm的pwn,需要很强的逆向知识,本题的设计器思路并不难,值得学习

Snipaste_2025-06-29_00-49-13

操作码对应操作如下:

其中,v2代表destination_register,v3代表source_register_1,v4代表source_register_2

  1. 操作码 0x10(16):将指令的低 16 位值加载到目标寄存器 reg[v2]
  2. 操作码 0x20(32):将寄存器 reg[v2] 的值压入Stack。
  3. 操作码 0x30(48):从Stack中弹出一个值并存储到寄存器 reg[v2]
  4. 操作码 0x40(64):将 reg[v3] + reg[v4] 的结果存储到 reg[v2]
  5. 操作码 0x50(80):将 reg[v3] - reg[v4] 的结果存储到 reg[v2]
  6. 操作码 0x60(96):将 reg[v3] ^ reg[v4] 的结果存储到 reg[v2]
  7. 操作码 0x70(112):将 reg[v3] >> reg[v4] 的结果存储到 reg[v2]
  8. 操作码 0x80(128):将 reg[v3] << reg[v4] 的结果存储到 reg[v2]
  9. 操作码 0x90(144):将 reg[v3] 的值存储到内存地址 memory[reg[v2]] 处。

需要注意的是,Stack和Memory都是定义在bss段的变量.

题目把打印信息的函数地址给了funcptr并在最后调用,funcptr在bss段:

学习笔记

操作系统课设and英语考试……

posted @ 2025-07-04 10:12  SX住一  阅读(5)  评论(0)    收藏  举报