Stack
-
7 스택 프레임리버싱 엔지니어링/리버싱 핵심 원리 2022. 3. 13. 23:36
(흐름상 5->6보다 5->7이 이해에 좋은 것 같아 업로드 순서 수정) 7.1 스택 프레임 ESP(스택 포인터)가 아닌 EBP(베이스 포인터) 레지스터를 사용하여 스택 내의 로컬 변수, 파라미터, 복귀 주소에 접근하는 기법 ESP 값은 프로그램 내에서 수시로 변경되기 때문에 스택에 저장된 변수, 파라미터에 접근하기 어렵고 CPU가 정확한 위치를 참고하기 어렵다 ESP 값을 EBP에 저장하고 함수 내에서 유지하면, 안전하게 해당 함수의 변수, 파라미터, 복귀 주소에 접근할 수 있다. 스택 프레임의 구조 PUSH EBP ; 함수 시작(기존의 값을 스택에 저장) MOV EBP, ESP ; 현재의 ESP를 EBP에 저장 ... MOV ESP, EBP ; ESP 정리(함수 시작했을 때 값으로 복원) POP EB..