1.c与c++不检查输入的长度和类型
应用程序在获取输入的数据时,本来要获取10个,结果获取成12个,就发生溢出
如果输入的变量与程序返回值挨得很近,直接覆盖成我们要执行的a代码
2.什么是pwn
向目标发送特定的数据,使其执行我们发送的恶意代码
Web安全也是一样,比如xss,通过我们输入的xss代码获取用户信息
实际上就是程序没有对用户的输入信息进行严格的校验
3.pwn的基础知识
Ax:储存我们的计算结果和函数返回值
Bx:基址寄存器,存放访问内存的地址
Cx:计数寄存器,比如你要循环5次,你的cx里面就是5
Dx:数据寄存器,存放ro端的一个内存地址
SI:
DI:
Move a,b 从si赋值到di,存的是数据地址
状态标志:标志结果,比如是正数还是负数,还是错误
Cs:放代码
Ds:比如放全局变量
Ss:函数的局部变量
Es:其他段寄存器用光用它,用得比较少