리버싱 공부
스택 프레임 기법
스택을 다루는데 있어서 ESP 레지스터, 현재 스택을 가리켜 주는 ESP레지스터를 사용하는데 함수를 만들고 사용할 때 함수를 들어가서 ESP 레지스터를 막 사용하다 보면 원래 돌아가야 할 위치를 알고 있더라도 함수의 시작 위치를 알 수 없게 되고 사용이 굉장히 복잡해진다. 그걸 방지?하기 위해 스택 프레임 기법이라는 방식이 도입되었다고 하는데. 함수를 들어갔을 때의 스택의 위치를 EBP레지스터, 베이직 포인터 레지스터가 가지고 있고, 함수에서 스택을 다룰 때 ESP를 사용 후 나중에 EBP에서 함수의 첫 주소를 가지고 있게 하며 안전하게 리턴할 수 있게 한다. 리버싱 핵심원리에 있는 예제와 비슷하게 코딩해봤다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include < stdio.h > #include < stdio.h > int add( int num1, int num2); int main() { int a, b; a = 10 ; b = 20 ; int c; c = add(a, b); printf ( "%d\n" , c); } int add( int num1, int ...