본문 바로가기

System Hacking

정보보안5 (12) - main함수의 인자

1. main 함수

1의 인자

- 포인터 배열 : 배열인데 주소를 원소로 하는 배열

- 배열 포인터 : 포인터인데 배열을 나타내는

 

int main( int argc, char *argv[] )   // 포인터 배열

{

 printf("%s \n", argv[1] )   // argv[1]는 주소가 들어있다.

 return 0;

};

 

메인함수도 하나의 함수이기 때문에

push    ebp

mov    ebp,    esp

ebp + 4 에는 eip

ebp + 8 에는 int argc

ebp + 12에는 char *argv[]가 있다.

밑의 예제는 ebp + 8 즉 argc(인자의 개수를 표현)를 확인 할 수 있다.

(인자의 개수에는 파일의 이름도 포함되어있다.)

 

 

 

 

 

[실습]

 

argv의 첫번째 요소에는 시행파일이름이, 다음부터는 main의 인자값들이 들어가는 것을 확인 할 수 있다.