완료됨
read()의 got의 값을 읽을 때 -> read = u64(p.recvn(6)+b"\x00"*2) 왜 이런식으로 값을 읽는지 궁금합니다.
read()의 got의 값을 읽을 때 -> read = u64(p.recvn(6)+b"\x00"*2) 왜 이런식으로 값을 읽는지 궁금합니다.
rop프로그램에서 read()의 got값이 leak될 때 출력 되는 값을 보면
[DEBUG] Received 0x7 bytes:
00000000 50 63 03 06 0a 7f 0a │Pc··│···│
00000007
이런식으로 나오더라구요.
그래서 제가 생각했을 때는 7바이트가 출력되므로 read = u64(p.recvn(7) + b'\x00') 이렇게 해야겠다고 생각했었는데 풀이를 보니 위와 같이 6바이트 까지만 값을 받네요. 왜 입력되는 값을 다 받지 않고 6바이트만 받는건가요?
(7바이트를 다 받으면 오류가 나긴 하네요. 왜 그런가요?)
#시스템_해킹
#공격기법
#rop
작성자 정보

