ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2022/03/15][짤막한 이야기 - 이미지베이스]
    짤막한 이야기 2022. 3. 15. 13:30
    728x90
    반응형

    [2022/03/15][짤막한 이야기 - 이미지베이스]
    이미지베이스(ImageBase)는 Windows의 EXE 파일(= 소프트웨어)이라면 반드시 가지고 있는 속성이다.
    이미지 상태에서의 베이스 값을 의미하는데, 즉, 프로그램이 메모리에 적재될 때의 시작위치를 의미한다.
    그림의 PEView는 HelloWorld.exe를 UPX 패커로 패킹을 적용하였을 때의 이미지베이스를 보여준다.
    0x400000의 위치에 HelloWorld.exe가 적재될 예정이라는 의미이다.
    일반적으로 컴파일러가 소스코드를 프로그램으로 컴파일할 때, 이미지베이스는 0x400000으로 자동 설정된다.
    그런데 그림의 아래에서 4가지의 이미지를 볼 수 있는데, 각각의 시작주소가 모두 다름을 확인할 수 있다.
    4개의 프로그램은 모두 이미지베이스가 0x400000으로 동일한데 실제 메모리에 올라가는 주소는 0x4C0000, 0xF40000, 0xB20000, 0xD10000으로 다른데, 그 이유는 무엇일까?
    그것은 프로그램이 파일 상태에서 이미지 상태로 변환될 때, 이미지베이스를 확인하여 메모리에 적재하기도 하지만, 그것만을 확인하는 것이 아니기 때문이다.
    그러면 이미지베이스보다 우선하여 각 이미지의 적재시작위치를 다르게 만들어주는 요인은 과연 무엇일까?
    [관련된 짤막한 이야기 - 파일과 프로세스(=이미지)[2022/03/02]]
    [관련된 문서 - 핀툴 프로그래밍 기본서[제3부. 핀툴로 UPX 언패킹하기]]
    #이야기 #루니프 #핀 #핀툴 #이미지베이스 #시작주소 #패킹 #언패킹 #UPX #압축 #패킹된코드 #원본오브젝트 #해커 #개발자 #분석가 #코딩

    728x90
    반응형
Designed by Tistory.