vtable에 대한 힌트

제가 맨 처음 입력때 get_shell의 주소값을 넣고, 4. change에 name의 주소값을 넣으면 쉘은 실행되는데 계속

[*] Switching to interactive mode
$  [*] Got EOF while reading in interactive

이런 오류가 뜹니다. 제가 알기로는 이 오류가 비정상적으로 쉘이 종료되었을때로 알고있는데 혹시 제 코드중에 무엇이 오류인지 힌트를 얻고싶습니다.
제가생각한 시나리오는

  1. name변수에 shell의 주소값을 넣고 2. 4에서 change때 stderr + 1인 stderr vtable에 name의 주소값을 넣고 3. 2.error을 실행시켜 쉘을실행시킨다.
    이 시나리오를 짜고 코드를 작성하였는데 계속 이 부분에서 막혀서 도움을 얻고자 질문글을 쓰게되었습니다.
#pwnable
작성자 정보
답변 2
avatar
snwo
CTF First Place

vtable 은 함수테이블입니다. error 을 실행시키면 vtable + ? 을 호출하게 되니, ? 만큼 뺸값을 name 변수에 써야합니다.

2020.09.12. 13:41
avatar
Sechack
CTF First Place

조금 오래된 질문이지만 힌트를 드리자면 fwrite함수는 vtable+0x38의 주소를 호출합니다. 그말은 즉 vtable+0x38에 쉘코드가 들어가야 된다는 말이죠.

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