yvyvSunlight
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

C函数栈帧

x86_64 & x86函数基本结构 123456push rbpmov rbp, rsp...mov rsp, rbppop rbpret 进入新函数的栈帧前,要要将调用函数指令的下一条指令地址压入栈里(调用者的栈帧)。 64位函数栈帧再调用新函数前rsp是00调用新函数后先把下一条指令的地址:jmp main+175 压入栈此时rsp是08因此在新函数栈帧中第一个push前rsp
2025-03-04
pwn

pwntools使用

ELF1exe = ELF("./attachment") ELF对象的属性四大用途 sym 查找符号地址 符号表 函数、变量地址 plt 获取plt表地址 ==plt表和got表相比最重要的特性就是plt表可执行而got表不可执行 plt会跳转到相应函数处的地址== got 获取got表地址 查找字符串的地址 .search[b
2025-03-04
pwn

ret2libc

libc基地址 + 函数偏移量 = 函数真实地址 问题是==怎么找libc基地址==呢?=> 泄漏一个函数的真实地址 有时间了解一下 libc的延迟绑定技术 got表-plt表 泄漏一个函数的真实地址=> 一般方法是采用==got表泄漏==以puts函数为例只要之前执行
2025-03-03
pwn

栈对齐

加ret跳push需要花时间总结下加pop行不行?ROP-基础-ret2libc2_ret2libc2下载-CSDN博客
2025-03-03

GHCTF-2025_wp

Hello_world给了后门函数,基本的栈溢出有pie partial write + 栈对齐exp: 123456789101112131415161718192021222324252627282930from pwn import *import oscontext(arch='amd64', os='linux', log_level='
2025-03-03
WP

elf文件段

2025-03-02

使用pwntools时的语法注意点

p32不能操作负数需要和负数 与 上 1,转化为无符号数 12var_v2 = -557122643 & 0xFFFFFFFF # 32位 8个F (4字节)p32(var_v2)
2025-03-02
pwn

虚拟环境网络问题

wsl2联网问题老生常谈了,写个脚本放在./scripts/proxy.sh 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364#!/bin/sh# hostip=$(cat /etc/resolv.conf |
2025-03-01
pwn

OS实验一

实验内容: 1.     在Linux/OpenEuler/OpenKylin系统中,增加一个系统调用/或内核模块,鼓励程序逻辑的多样化2.     撰写一个应用测试程序调用该系统调用/测试该内核模块3.     使用trace/ptrace/strace,或类似的系统跟踪工具来对该测试程序进行跟踪调试4.     附加:在指
2025-03-01

apoorvctf_wp

kogarashicafe - the first栈溢出 + 基本ROP exp: 123456789101112131415161718192021222324252627from pwn import *import oscontext(arch='i386', os='linux', log_level='debug')if os.
2025-03-01
WP
123456

搜索

Hexo Fluid