
Shellcode可以放到bss段然后去执行我们的shell
可以控制好几段位置不相邻的代码(gadgets),用rop技术
随着nx保护技术的开启,往堆栈写代码的方式已经发挥不了效果
Rop:Return-oriented Programming(面向返回的编程)
在缓冲区溢出的基础上利用程序已有的小片段,来改变我们程序寄存器变量的值,从而达到控制程序执行流程的效果
所以gadgets是以ret结尾的指令序列,通过这些序列我们可以修改某些地址内容,控制流程
但是gadgets的地址不是固定的,所以我们每次都要想办法获取动态的地址
实验:
Checksec: nx开启了
Disass main
调用的setbuf是优化内存ro的,就是我们有大量内存读写的时候,他会优化你内存的ro读写
Rop两点要求:溢出;能控制返回地址
Gets不控制溢出

-M intel 以intel模式显示
一个显示system函数,一个要显示所有的函数,找到前面的bin/sh参数
2619



被折叠的 条评论
为什么被折叠?



