pwn环境搭建_CTF中pwn题的搭建

2017年5月11日 补:

1、socat 中有参数reuseaddr,使用的时候加上这个,顾名思义,这个参数的意思就是地址(端口)重用,是为了防止socat绑定失败或者由于某些情况退出时,重新使用此端口需要等待2分钟的时间。

如果端口忙,但TCP状态位于 TIME_WAIT ,可以重用端口。如果端口忙,而TCP状态位于其他状态,重用端口时依旧得到一个错误信息,指明”地址已经使用中”。如果你的服务程序停止后想立即重启,而新套接字依旧使用同一端口,此时SO_REUSEADDR 选项非常有用。必须意识到,此时任何非期望数据到达,都可能导致服务程序反应混乱,不过这只是一种可能,事实上很不可能。

3、关闭地址空间随机化PIE(ASLR)

一般情况下NX(Windows平台上称其为DEP)和地址空间分布随机化(ASLR)会同时工作。

内存地址随机化机制(address space layout randomization),有以下三种情况

0 - 表示关闭进程地址空间随机化。

1 - 表示将mmap的基址,stack和vdso页面随机化。

2 - 表示在1的基础上增加栈(heap)的随机化。

之前提到可以使用命令sudo -s echo 0 > /proc/sys/kernel/randomize_va_space来关闭ASLR,但是经提醒,这样关闭了所有程序的随机化还是有一定的风险的,所以可以在程序编译的时候增加参数-no-pie关闭程序的pie,只关闭此程序的随机化,而其它的程序不变

可以看到开启了pie的程序地址会一直变化

你可能感兴趣的:(pwn环境搭建)