[C] read 함수

2019. 1. 21. 12:45

pwnable 문제에서 보통 유저로부터 데이터를 받을 때 read(0, buf, 64); 이런식으로 받는 경우가 많다.

이 경우 stdin을 통해 buf에 64바이트를 받는다는 건데; 

유저가 64바이트를 꽉꽉채워서 데이터를 줄 수도 있고, 8바이트만 보내고 싶다면 정확히 8바이트만 보내줄수도 있다.

(여기서 \n포함하여보내면 \n까지 받아준다. 즉 엔터누르면 엔터까지 받아준다.)


분명히 알았던 사실인데; 쓸 때마다 헷갈려서 저번에 문제풀때도 많이 헤맸다;;

1바이트만 쓰고싶은데 그러면 어떻게할지 몰라서... \n만 보내거나 (1byte)\n식으로 해서 보냈었다;; 당연히 read가 받는 결과는

"\x10"이거나 "\x10\x61" 이런식이다.


pwntool을 이용한다면 conn.send("\x61")만 보내도 된다. 이런것도 잊고있었다니 ㅂㄷ...

+ Recent posts