리틀엔디안 변환

message=b'A'*0x84+p32(0x80485b9)
p.sendline(message) 이렇게 해서 일단 답은 나오긴했는데... 너무 궁금한게 그럼 message가 대충 b'AAAA....Ax/b9\x85\x04\x08' 이렇게 되는데,,, 왜 return address 부분만 리틀 엔디안으로 바꾸나요..? 바꿀거면 아예 통으로 바꿔서 x/b9\x85\x04\x08b'AAAA....A 이런식으로 저장되어야 리틀 엔디안으로 저장해서 리턴주소가 스택의 가장 아래(주소 높은 부분)로 가지 않나요..? ㅠㅠㅠ

#pwnable
작성자 정보
답변 2
Hmin
강의 수강: 10

입력을 아마 read 함수로 받을 텐데 read함수는 문자열로 입력을 받습니다.
문자열은 입력받을 때 스택에 그대로 들어갑니다.

2023.04.05. 19:04
avatar
wyv3rn
무플 방지 위원회장

아키텍쳐 별 한번에 다루는 데이터 크기를 생각하시면 쉽습니다.

말씀하신 것처럼 생각할 수 있지만 결국 64비트에서는 8바이트씩 데이터를 다루기 때문에 이를 기준으로 끊어서 해당하는 엔디언 방식으로 값이 들어갑니다.

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