본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-
Study/ftz

FTZ level3

by intadd 2016. 6. 21.


FTZ (Free Training Zone) level3


 


1. 환경 : window10

2. VM, Red Hat Linux 9.0, putty


ID: level3

PW: can you fly?




  1.     Cat hint를 통해 힌트를 본다.


 2.     코드를 분석한다.

int main (int argc, cahr **argv )  // argc = 인자의 수  argv=인자

if ( argc !=2) à 받은 인자의 수가 2가 아니면 아래 코드 실행

아래코드는 =printf를 해주고 exit(0); 프로그램을 종료한다.

strcpy = 하나의 문자열 붙여넣는다.

Strcat = 두개의 문자열을  합친다.


 3. 두개의 명령어 동시에 입력하는 방법은 각 명령어 사이에 " ; " 를 붙여주면 됩니다.


 4. 문자열의 형태로 명령어를 전달하려면 "명령어" 이렇게 ""사이에 넣어주면 됩니다.

 

 cf 자세한 풀이 )

         autodig의 코드를 분석해 본다면 

        main함수에 넘겨주는 인자값이 2개 보다 작으면 프로그램을 종료시킨다.

  인자를 전달하는 방법은" /bin/autodig 내용" 이렇게 실행명령 뒤 띄어쓰기를 하면 된다.

  예를 들면 /bin/autodig A 라고 입력을 한다면 argc는 2가 된다 왜냐하면 파일을 실행시키는 명령도

  argc에 포함되기 때문이다. 

  그럼 이제 A 를 무엇으로 채우는 것이 좋을까

   /bin/autodig ";my-pass"로 채우면 된다 argv[0]=/bin/autodig가 될 것이고 argv[1]=";my-pass"가 될 것이다.

  참고로 ; 를 붙여주는 이유는 strcpy의 명령어로 "my-pass" 가 그대로 cmd에 붙여넣어지면

  my-pass 앞에있던 명령어와의 구분을 위해서이다.



'Study > ftz' 카테고리의 다른 글

FTZ level5  (0) 2016.06.21
FTZ level4  (0) 2016.06.21
FTZ level2  (0) 2016.06.21
FTZ level1  (0) 2016.06.21
FTZ trainer10  (0) 2016.06.20

댓글