当前位置:   article > 正文

pwn栈溢出原理及我的第一个exp_针对栈溢出的exp框架

针对栈溢出的exp框架

栈在内存中的位置

在这里插入图片描述

操作系统内核

栈区:程序运行中用于存放局部变量的地方
向下生长(高–>低)

共享库映射区域:当程序是动态链接的,那么其依赖库就会映射到这一块

堆区malloc或者new申请新的空间,将从堆区分配出去
向上生长(从低到高)

可读可写区:用于映射data段和bss段,也就是存放程序全局静态变量的地方

只读区:映射ELF文件 的 .test(有的有x)(程序执行流所在的段)

未使用的地方

在kali上写一个简单的功能为输出进程号的test.c

#include <stdio.h>
#include  <unistd.h>

int main()
{
	printf("pid: %d\n",getpid());
	getchar(); // 不让它快速结束
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

编译运行

cat /proc/PID/maps
查看进程的虚拟地址空间是如何使用的

(root
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/705291
推荐阅读
相关标签