gdb-peda를 이용해서 한번 main 함수를 봐야겠죠?

 

 

여기서 함수들이 사용이 되는것을 알 수 있는데 한번 보면 

printf 함수와 scanf함수, 다시 printf함수가 사용되는것을 볼 수 있습니다. 

(이제 자세한 설명은 생략하도록 하겠습니다.)

 

한줄 한줄 살펴봅시다. 

 

 

여기는 이제 바로 알겠죠? 스택 프롤로그 입니다. 

 

 

이렇게 rax의 값을 0으로 만들어 주고 있습니다.

 

 

그런다음 rbp-0xc라는 곳에 0이라는 값을 넣고 있습니다.

 

 

eax에 0이라는 값을 mov 해주고 있습니다.  그 후에 printf 함수를 call 하고 있네요 

한번 계속해서 실행 해보도록 하겠습니다.

 

 

하지만 printf 함수의 문자열이 출력이 될것이라고 생각했지만 결과는 아무것도 나오지 않았습니다.

왜 이렇게 되는걸까요? -> 추후에 설명하도록 하겠습니다.

scanf 함수를 call하는 +66까지 실행을 시켜보겠습니다.

 

 

정상적으로 실행되고 있습니다. 

 

 

계속 실행해보면 func함수를 호출하고 있습니다.

 

 

printf 함수를 호출하고 종료가 되는것 같습니다.

 

 

지금까지 메인함수를 보았습니다

다음 포스팅에서 func 함수를 마저 보도록 하겠습니다.

 

+ Recent posts