CTF pwn题之虚拟机题型详解

本文详细介绍了CTF中的虚拟机pwn题型,包括如何分析虚拟机指令,理解其工作原理。重点在于从程序的物理器件模拟和指令解析逻辑两方面入手,同时提供了一个2019年OGeek比赛的VM pwn实例,该题目涉及虚拟内存数组越界漏洞。总结强调了在面对此类复杂问题时,要保持初心,持续学习。
摘要由CSDN通过智能技术生成

虚拟机题型详解

概述

  随着对pwn题的学习,慢慢开始接触VM虚拟机的pwn题了,刚开始做这种类型的题时会发现代码量比较大,略显复杂,复杂的部分主要是在用程序实现虚拟机指令那里。
  其实这种题做法和普通pwn类似,也是寻找漏洞,复杂的地方在于需要我们去分析出虚拟机实现的指令,然后用这些指令操作进行漏洞利用。

如何分析

  接下来介绍下如何分析,对于VM类型的pwn题,复杂的地方在于分析出该VM对应实现的指令,那么如何分析需要一定章法。这里需要简单知晓一些计算机组成原理和汇编语言的知识。
  VM类型的pwn究其本质还是用程序实现了一个虚拟机,这个虚拟机可以解析自定义的指令。这里我们可以类比真实的机器,程序在运行时需要操作寄存器、内存空间,内存空间细分的话还有栈、堆以及代码段等。pwn题的虚拟机就是用程序虚拟了这些物理器件,并通过代码逻辑来对指令进行解析,使得各个虚拟部件合理配合,完成工作。
  因此在分析虚拟机实现了哪些指令时,我们可以从下面两个大方向入手。首先找到虚拟实现的物理器件,比如程序可能单独malloc几块内存用来当作寄存器或者栈空间,亦或者就用全局变量来实现,此时位于bss段上。第二步就是读代码逻辑,分析指令,这里考虑程序是用二进制判别指令还是用字符串直接判别。用字符串的话,就比较简单,容易识别。用二进制的话,这里需要知道指令构成的基本知识,学过计算机组成原理的话,我们知道指令由操作码 | 操作数构成,根据操作数的个数还可分为一操作数指令、两操作书指令以及三操作数指令等。因此在分析指令时,我们可以将这些概念加入到代码逻辑的阅读中,帮助

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值