MessageBoxA() API 메모리맵 질문있습니다

해결됨
arsen 프로필

안녕하세요 강의 잘 보고 있습니다!

강의를 보며 실습을 하는데 강의처럼 되지 않아 질문드립니다.

MessageBox API에 브레이크 포인트를 걸고 실행해 API 호출 주소까진 확인했습니다.

그 다음 메모리맵에 들어가 user32 DLL 주소를 확인하니 강의와 주소가 다릅니다 ㅠㅠ

저는 텍스트섹션의 user32 DLL은 75E61000 주소로 나오는데 강의에서는 75B91000 주소가 나오더군요.. 원래 DLL 주소가 다른건지.. 제가 분석 도중 실수가 있던건지 궁금합니다!

SecurityFactory 프로필
SecurityFactory 9달 전

안녕하세요~ 
질문자분이 이해하기 쉽게 설명해드리겠습니다.

DLL이 로드되는 위치는 운영체제 환경과 상황에 따라 달라질 수 있습니다. 예를 들어 차를 항상 같은 자리에 주차하는 사람이 있다고 합시다. 그런데 하루는 그 자리에 다른 차가 있는 겁니다. 그럴 땐 다른 빈자리를 찾아서 주차할 수 밖에 없겠죠? DLL도 같습니다. 그래서 주소 값이 달라지는 거죠. (참고로 DLL을 포함한 실행파일이 메모리에 로드되는 디폴트 주소는 PE 헤더에 기록되어 있습니다.)

감사합니다.

arsen 프로필
arsen 9달 전

아침부터 답변을..!! 감사합니다 한번에 이해됬어요!

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스