20145201《网络对抗》PC平台逆向破解
准备阶段
下载安装execstack.
获取shellcode的c语言代码
设置堆栈可执行
将环境设置为:堆栈可执行、地址随机化关闭(2开启,0表示关闭)
采用nop+shellcode+retaddr方式构造payload,其中\x4\x3\x2\x1处是将来要填的shellcode起始地址,最后一个字符不能是\x0a
开启一个新的终端将payload注入到pwn1中
在第一个终端中查询20145201pwn进程的UID 4948
-保持第二个终端如上图状态,再打开一个新终端,开启GDB,对20145201pwn进行调试
先用attach命令进入对应UID端口,进行追踪
- 设置断点
- retaddr+nop+shellcode方法
查看内存地址,最终找到shellcode起始地址,将返回地址重新注入: