PWN学习笔记1--入门

0x00 pwn介绍

PWN是指二进制漏洞的发掘和利用,CTF中PWN题目一般出现在linux平台上

0x01 pwn所需的基础知识

  • c语言
  • 汇编语言
  • Python
  • 操作系统基础
  • linux基本命令

寄存器

IP/EIP/RIP:指向当前的命令地址
SP/ESP/RSP:指向栈的顶部
BP/EBP/RBP:指向栈的底部

一种后进先出的数据结构,用于调用函数过程中回复寄存器的状态。

大端与小端模式

以0x12345678为例(从左到右代表地址从低到高)

  • 小端 \x78\x56\x34\x12
  • 大端 \x12\x34\x56\x78

大端模式:PowerPC、IBM、Sun、大部分网络协议
小端模式:X86、DEC

0x02 栈溢出

栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致栈中与其相邻的变量的值被改变。这种问题是一种特定的缓冲区溢出漏洞。
发生栈溢出的基本前提是:

  • 程序必须向栈上写入数据
  • 写入的数据大小没有被良好地控制

0x03 参考

从零开始学CTF

-------------本文结束感谢您的阅读-------------