안녕하세요 글루미입니다😁
오늘은 프로세스 메모리 구조에 대한 포스팅입니다.
저는 대학교에서 인공지능 사이버보안학과를 전공했는데요, 아무래도 보안학과인 만큼 리버싱 실습 경험이 몇 번 있어서 그때마다 올리 디버거나 x64디버거, 혹은 이뮤니티 디버거를 활용했었습니다.
디버거를 이용해서 리버싱을 진행할때마다 스택 메모리상태를 살피면서 변수와 함수의 리턴주소를 확인했던 기억이 있는데요, 프로세스 메모리 구조에 대해서 알고 있으면 해당 부분에서도 도움이 훨씬 많이 됐을 것 같습니다.
학습은 다음 링크를 참고하였습니다.
https://watermelon-sugar.tistory.com/37
프로세스(Process) 메모리 구조
프로그램(Program)과 프로세스(Process)의 차이 프로그램이란? 프로그램이란 어떤 작업을 위해 실행할 수 있는 파일을 뜻한다. 프로세스란? 프로세스란 운영체제 입장에서 하나의 작업 단위이며, 컴
watermelon-sugar.tistory.com
Stack
스택 영역은 프로그램이 자동으로 사용하는 메모리 영역입니다. 스택 영역에는 지역변수, 매개변수, 리턴값 등 잠시 사용되었다가 사라지는 임시 데이터를 저장하는 영역입니다. 스택은 기본적으로 함수 호출 시 할당되고 반환 시 소멸되기 때문에 컴파일할 때 크기가 결정됩니다. `Stack`은 높은 주소에서 낮은 주소 순으로 할당됩니다.
Heap
힙은 동적 데이터 영역으로, 메모리 주소에 의해서 참조되고 사용되는 영역입니다. 따라서, 프로그램 동작 시 크기가 결정됩니다. 프로그래머가 메모리를 동적 할당하게 되면 힙 영역이 사용됩니다. 대표적으로 `C`에서의 `malloc`등이 있습니다. 힙은 낮은 주소에서 높은 주소 순으로 할당됩니다.
'Naver boostcamp' 카테고리의 다른 글
[학습 정리] 네이버 부스트캠프 챌린지 Day06 학습 정리 (0) | 2024.07.22 |
---|---|
[회고] 네이버 부스트캠프 9기 챌린지 1주차 위클리 회고 (0) | 2024.07.21 |
[학습 정리] 네이버 부스트캠프 챌린지 Day03 학습 정리 (0) | 2024.07.17 |
[학습 정리] 네이버 부스트캠프 챌린지 Day02 학습 정리 (0) | 2024.07.16 |
[학습 정리] 네이버 부스트캠프 챌린지 Day01 학습 정리 (0) | 2024.07.15 |