프로그래밍

 3198, 1/160 회원가입  로그인  
   qkrwncks96
   perl 명령질문

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3460 [복사]


perl -e 'print "\x5"'

프로그램에 인자로 전달하면


5는 4바이트 정수형으로 전달되더라구요

왜그러는거죠 ? 원래 전달되는건 4바이트정수인가요?


그리고

31337 은 16진수로 7a68 이니까

정수 31337 을 전달하고싶으면

perl -e 'print "\x31337"' 이렇게 전달하는거아닌가요  ? 그런데 이상한값이 나와요 ㅠㅠ

  Hit : 4339     Date : 2012/07/21 02:59



    
supershop 첫번째 질문은 프로그램 내부에서 받은 값을 어떻게 처리하느냐에 따라 다릅니다. 4바이트로 전달된다면 프로그램 내부에서 4바이트로 처리를 했기 때문일겁니다.

두번째는 31337이 16진수로 7a69 이므로 \x69\x7a 로 전달하시면 됩니다.
\x가 붙으면 16진수로 쓰는거고, little endian 환경을 고려해서 바이트 순서를 뒤집어주셔야 합니다.
2012/07/21