stack void testint int int main int A

  • Slides: 12
Download presentation

다음의 소스를 이용해 메모리의 stack영역에 함수의 호출 구조에 대해서 조사해 보겠다. void test(int, int);

다음의 소스를 이용해 메모리의 stack영역에 함수의 호출 구조에 대해서 조사해 보겠다. void test(int, int); int main() { int A = 0 x 12345678; int B = 0 x. ABCDEFBA; printf("[%08 X] : main() addressn", main); test(A, B); return 0; } void test 2() { printf("test 2n"); } void test(int a, int b) { int C= 0 x 11223344; int *p= &C; p = p+2; *p = (int)test 2; Print. Hexa. NAscii(&p, 150); }

Main: esp Test: *p Test C Test: ebp Test return address Test의 인자 B,

Main: esp Test: *p Test C Test: ebp Test return address Test의 인자 B, A Main: B Main: A Main: ebp