main함수 buf 크기

안녕하세요 다름이 아니라
공부를 하던 도중 C 코드의 main 함수 부분에 char buf[0x28]로 선언을 하였는데
이후 파이썬 코드에서는 buf에 들어갈 "A"이 0x30 으로 되어 있더라구요 (8byte가 더 들어가 있는 것 같습니다...)
저희 더미 데이터를 넣을 공간이 총 buf (40byte) + SFP(8byte) 그리고 조작할 Return address(8byte) 로 알고 있는데
혹시 제가 놓치거나 모르는 것이 더 있는 건가요?
구체적인 답변해주시면 감사하겠습니다.!

#시스템_해킹 #툴 #pwntools
작성자 정보
답변 2
avatar
wyv3rn
무플 방지 위원회장

음?? 쓰신게 뭔가 계산이 안맞네요

코드에 0x28로 선언했는데 더미로 0x30을 썼다면 스택 0x28 + sfp 8이란 소린데,

그 밑에는 왜 buf가 0x40인지...

일단 설명이 잘못되신 것 같고,
대략 누락된 공간은 buf말고 다른 변수가 존재할때 그럴 가능성이 있습니다.

2023.01.14. 18:19
avatar
wyv3rn
무플 방지 위원회장

다시 코드를 보고 왔습니다.

스택 얼라인을 위한 8바이트가 추가되어있네요.

강의를 진행하시다보면 아실 수 있는 부분이고, 문제는 gdb로 실제 확보되는 공간을 확인해서 푸시면 됩니다 ㅎ

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