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의 인자값들이 들어가는 것을 확인 할 수 있다.
'System Hacking' 카테고리의 다른 글
3일차] 보안가이드[파일 및 디렉터리 관리] (2) | 2018.04.12 |
---|---|
1~2일차] 보안 가이드[계정관리] (0) | 2018.04.11 |
정보보안5 (13,14,15) - 시스템 콜 (systemcall) (0) | 2017.11.06 |
정보보안5 (16) - 디버거 (0) | 2017.11.02 |
정보보안5 (10,11) - call, 스택메모리의 함수표현 (0) | 2017.10.26 |