내가 PE 파일의 헤더를 하나하나 분석을 해보고 있거든


VA = 이미지 로드 주소 + RVA 라고 하길래 이미지 로드 주소가 어디에 저장되는지 봤더니 Image Base 더라?



Image Base는 EXE의 경우 0x00400000를 기준 잡고 파일 데이터가 로드된다고 하는데


한 프로세스에 대해서 그렇게 올라가면 맞겠지만 문제는 윈도우즈 상에서는 현재 여러 프로세스들이 메모리에 매핑되잖아?


Image Base는 고정된 값이고 VA = Image Base + RVA가 맞다면, 그럴 땐 모든 프로세스가 같은 VA에서 로딩될 수 있다는건데 그것부터가 애초에 말이 안된다고 생각함.

 


절대적인 측면에서 뭐 메모리에서 실제로 어떤 번지에 로드된다는건지 존나 이해를 못하겠음.


내가 운영체제에서 공부했을 때는 무슨 해시 테이블 참조해서 매핑하는 방식으로 한다 했는데 그거랑 아예 다른건가?