decode()와 p64()

fho문제에서는 *addr = value;이렇게 되어있어서 str(free_hook).decode()이런식으로 바이트로 보내서 exploit에 성공했는데 이 문제에서는 *(long *)*ptr = *(ptr+1);이렇게 되어있어서 p64(free_hook)이런식으로 패킹해서 보내야 exploit에 성공하더라고요 어쩔때 decode()로 보내야되고 어쩔때 p64()로 보내야되는것인가요?

#pwnable
작성자 정보
답변 1

%d로 입력을 받거나 %x, %s등으로 입력을 받으면 포멧 스트링이 있어서 숫자, 문자로 그대로 보내야하지만 read(0, ptr, size); 이런식으로 입력받을 땐 포멧 스트링이 없기 때문에 패킹을 해서 보내줘야합니다.

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