03 2022 档案
摘要:first fit c源码 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { fprintf(stderr, "This file doesn't demonstrate an attack, but sh
阅读全文
摘要:pwn heap 1 test.c #include<stdio.h> #include<stdlib.h> int main(){ void* ptr = malloc(0x100); free(ptr); return 0; } chunk 最小的size8字节(32位系统) chunk分配的时
阅读全文
摘要:《汇编语言》 学习笔记 第一章 基础知识 1.1 机器语言 每一种微处理器,由于硬件设计和内部结构的不同,就需要不同的点评脉冲来控制,使他工作。所以每一种微处理器都有自己的机器指令级,也就是机器语言。 1.2 汇编语言的产生 此后,程序员使用汇编指令编写源程序,这时候就需要使用编译器,将汇编指令转成
阅读全文
摘要:ret2libc 3 漏洞点 src开辟了256字节空间,dest开辟了56个地址 strcpy将src中的字符串拷贝到dest中 src可控 反汇编 int __cdecl main(int argc, const char **argv, const char **envp) { char **
阅读全文
摘要:retlibc 2 分析 这道题和第一个ret2libc唯一的区别就是没有/bin/sh 从上一道题的知识可以构造出以下模板 由于我们插入了一段gets,所以我们需要在发送完打入gets的payload后另外写入gets的内容 exp from pwn import * p = process('.
阅读全文
摘要:ret2libc 1 exp from pwn import * p = process('./ret2libc1') elf = ELF('./ret2libc1') system_plt = elf.plt["system"] bin_sh = next(elf.search(b"/bin/sh
阅读全文
摘要:pwndbg基本操作 基本指令 help //帮助 i //info,查看一些信息,只输入info可以看可以接什么参数,下面几个比较常用 i b //常用,info break 查看所有断点信息(编号、断点位置) i r //常用,info registers 查看各个寄存器当前的值 i f //i
阅读全文
摘要:动态链接过程 第一次调用函数 第二次调用函数 此时system@got中已经保存了正确的system函数的真实地址 可以直接进行调用
阅读全文
摘要:函数调用 程序执行前 执行system函数时 接下来需要调用system需要的arg 这时候的system的栈帧 retuen add = exit() arg = "/bin/sh" exit 与system函数同
阅读全文