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 |
댓글