해결된 질문
20.02.06 00:09 작성
·
235
0
안녕하세요 강의 잘 보고 있습니다!
강의를 보며 실습을 하는데 강의처럼 되지 않아 질문드립니다.
MessageBox API에 브레이크 포인트를 걸고 실행해 API 호출 주소까진 확인했습니다.
그 다음 메모리맵에 들어가 user32 DLL 주소를 확인하니 강의와 주소가 다릅니다 ㅠㅠ
저는 텍스트섹션의 user32 DLL은 75E61000 주소로 나오는데 강의에서는 75B91000 주소가 나오더군요.. 원래 DLL 주소가 다른건지.. 제가 분석 도중 실수가 있던건지 궁금합니다!
답변 2
1
1
2020. 02. 06. 09:03
안녕하세요~
질문자분이 이해하기 쉽게 설명해드리겠습니다.
DLL이 로드되는 위치는 운영체제 환경과 상황에 따라 달라질 수 있습니다. 예를 들어 차를 항상 같은 자리에 주차하는 사람이 있다고 합시다. 그런데 하루는 그 자리에 다른 차가 있는 겁니다. 그럴 땐 다른 빈자리를 찾아서 주차할 수 밖에 없겠죠? DLL도 같습니다. 그래서 주소 값이 달라지는 거죠. (참고로 DLL을 포함한 실행파일이 메모리에 로드되는 디폴트 주소는 PE 헤더에 기록되어 있습니다.)
감사합니다.