SMALL
level3 // can you fly?
시작에 앞서 hint를 실행해 보았다.
// autodig
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(int argc, char **argv){
char cmd[100];
if( argc!=2 ){
printf( "Auto Digger Version 0.9\n" );
printf( "Usage : %s host\n", argv[0] );
exit(0);
}
strcpy( cmd, "dig @" );
strcat( cmd, argv[1] );
strcat( cmd, " version.bind chaos txt");
system( cmd );
}
※ dig라는 명령어가 나오는데 처음본다.
검색해본 결과 nslookup을 생각해보라고 한다.
그렇가면 nslookup은 뭐지??
- nslookup은 도메인 서버의 IP주소를 확인하는 프로그램으로, 윈도우 운영체제에도 있다고한다.
- 사용방법은 크게 두가지로 나뉘어 지는데 nslookup <IP를 알고 싶은 도메인 주소>의 형태가 첫번째 방법이다.
- 위와 같이 www.nave.com의 IP주소가 210.89.160.88와 125.209.222.142. 이라는 것을 뽑아낼수 있다.
- nslookup을 입력한후 IP를 알고 싶은 도메인 주소를 입력하는 형태가 두번째 방법이다.
흠 네이버 주소가 여러개가 있나보다 계속 바뀌었다..
dig에 대해서는 nslookup처럼 도메인의 IP주소를 확인할 수 있는 명령어라고 한다. nslookup보다 더욱 상세하고 자세한 정보를 알 수 있다.
- dig 사용법은 dig @<쿼리할 DNS> <서버의 IP>와 같이 사용하면 된다.
autodig 는 입력받은 문자열에 해당하는 DNS서버에서 운영 중인 BIND 프로그램의 버전을 확인하는 명령을 실행하는 것이다.
autodig에서의 cmd 배열은 인자를 받아서 이렇게 입력해준다.
- dig @'argv[1]' version.bind chaos txt
삽집을 겁나 많이 하다가
more hints 에서
- 동시에 여러 명령어를 사용하려면?--> ';' 이용 ( 출처 : http://coffeenix.net/doc/shell_programming/shell2.htm )
- 문자열 형태로 명령어를 전달하려면? --> ' " ' 이용 ( 출처 : https://geundi.tistory.com/42 )
앞에
서버요청해주고 뒤에 my-pass 라는 프로그램은 뒤에 어떤게 와도 무시하고 실행하는것이라고 한다.
앞의 인자는 필요없고 뒤에 my-pass만 필요하니 실행!
그럼 다음 단계로~~