작은 메모장
운영체제 프로세스 가상주소공간 실습 본문
가상 주소 공간을 실제 눈으로 확인해보자
xdbg 프로그램을 이용하여 가상주소 공간을 실제로 확인해볼 것임
이건 윈도우 기본 프로그램 중 계산기 프로그램을 디버거로 연 것으로, 여러가지 내용이 담겨 있는 것을 볼 수 있음
조금 더 명확한 확인을 위해, processexplorer프로그램으로 프로세스간 부모-자식 관계를 살펴봄
프로그램을 실행시키면, x64dbg 프로세스 아래에 calc, 계산기 프로그램이 존재하고 있음을 확인 가능
다시 x64dbg를 실행시키면, 상단에 메모리 맵(Memory Map)이라는 탭이 보임
메모리 맵은 로드된 프로그램 이미지의 주소와 DLL 파일이 로드된 주소, 권한 등을 확인할 수 있는 가상 메모리 공간
어떤 주소에 스택이 존재하고, 경로가 위치해있으며, 시작 부분 주소가 어디인지 확인할 수 있는 강력한 기능
뿐만 아니라 메모리 값을 수정하거나 새 메모리 값을 주입하는 것도 가능함
x64dbg를 다시 실행시켜 또다른 계산기 프로그램을 실행
분명 같은 디버거로 같은 계산기를 실행했는데 디버거 상의 주소는 같지만 프로세스는 개별로 감지됨
이는 각각의 가상주소에 대해 물리주소가 겹치지 않도록 메모리에 매핑을 하고 있기 때문
즉, 가상 주소는 같으나 두 프로세스는 서로 독립적으로 동작하고 있음을 확인 가능
'KISA 사이버 보안 훈련 > 리버스 엔지니어링 훈련' 카테고리의 다른 글
가상주소공간의 스택 메모리 (0) | 2023.07.04 |
---|---|
CPU의 레지스터와 주요 명령어 (0) | 2023.07.04 |
PE 파일의 구조 (0) | 2023.07.03 |
운영체제의 프로세스 가상주소공간 (0) | 2023.07.02 |
윈도우 실행파일의 내부 구조와 동작과정 (0) | 2023.07.02 |