이 메모리 주소들은 objdump [실행 파일명]에 의해, 실행파일이 실제로 실행이 되어서 메모리 상으로 로드가 되어,
얻어진 주소값인지?, 아니면 실제로 실행파일의 실행이 일어난다면, 이러한 메모리 주소들에 로드가 될 것인지?..
여러가지 경우의 수가 떠오르는데, 검색을 해 봐도 다른 분들은 잘 이해하고 계시는지 이러한 질문은 없네요ㅠㅠ
마찬가지로 gdb ㅅㅣㅎ행시 나타나는 메모리 주소도 실제로 무엇을 뜻하는지 아시는 분은 설명해 주시면 정말 감사하겠습니다.
Hit : 4086 Date : 2011/08/02 10:49
$Zero
해당 프로그램이 실행시 메모리에 올라갈 주소가 맞습니다.
디버거로 실행하면서 진행상황을 보는것이니까요 .
이 주소들은 프로그램이 실행되는 환경에 따라서 그때그때 다르지만,
커널영역과 유저영역이 나뉘어 있으므로 대체적으로 올라가는 주소는 비슷합니다.
(범위가 한정적이거든요)
2011/08/02
pwn3r
objdump 부분에 대한 답변을 드리자면 어디서 들은내용으로는 커널에 image 가 매핑될때 기준이 되는 base address가 정의되어있다고하네요 @_ @
그 base address과 프로그램 바이트코드들의 offset을 이용하여 계산하는게 아닐까합니다 (?)
(애초에 디버거도 이과정을 거치겠죠)