04_ROP-Ret2Libc-32实例


首先我们先复习一下32位系统调用 想办法调用execve("/bin/sh", null, null),然后先办法传入/bin///sh,系统调用execve eax = 11, ebx = bin_sh_addr, ecx = 0, edx = 0 int 0x80 #include <stdio

03_深入跟踪plt和got表


下面是对给出的流程图中 ELF 程序中函数调用过程(以 puts 为例)的详细分析。这反映了 ELF 动态链接中 PLT(Procedure Linkage Table)与 GOT(Global Offset Table)协作进行延迟绑定(lazy binding)的机制。当程序第一次调用一个动态库

02_ROP-Ret2Libc概述


01_利用ROP-Ret2Syscall突破NX保护


ROPgadget的使用方法 程序如下

06_Ret2Shellcode-64位


可以发现我们的字符串/bin/sh只有一个斜杠了,这是因为在32位我们担心会补0,但是64位,可以mov一下都传过去。 #include<stdio.h> char buf2[200]; int main() { setvbuf(stdout,0,2,0); char buf[20]

05_手动制作shellcode并测试


这是shellcode的测试代码,具体用途是把shellcode当作命令运行 这是一段标准的shellcode

04_Ret2Shellcode-32位


Ret2Shellcode和Ret2libc区别在于有没有nx保护,先来讲讲shellcode shellcode Shellcode 是一种小巧的、用于攻击目的的机器代码,其通常在目标系统中执行,以获得控制权或执行特定的指令。Shellcode这个名称来源于早期的攻击目标是获取系统的 shell,

03_gdb附加动态调试


如何在GDB中附加调试64位程序,尤其是在开发脚本时? 1. 使用GDB调试64位程序 当我们处理 ELF 文件时,可能需要进行动态调试。在这种情况下,我们通常会借助 GDB 工具。而在使用 pwntools 进行开发时,pwntools 提供了对 GDB 的内置支持模块,简化了调试流程。 其中,最

02_Rop-Ret2Text实例详解


快速定位偏移 Pwndbg:cyclic 200 || cyclic -l 地址 Pwn-peda: pattern create 200 || pattern offset 地址 以下是第二章保护与溢出提到的objdump工具 实例 这里我编写了一