나는 DOS 헤더를 깊이 이해하려고 노력하고 있는데, 나는이 것들을 고수하고있다. 나는 유일한 필수 바이트가 MZ 서명과 PE 섹션에 대한 포인터 알고 있지만, 나는이 두 가지가 정확히 무엇인지 알고있다 : 대부분의 실행 '바이너리 코드에서DOS 헤더의 e_cblp 및 e_cp 란 무엇입니까?
USHORT e_cblp; // Bytes on last page of file
USHORT e_cp; // Pages in file
이 값은 각각 90H 및 03H입니다. 페이지는 512 바이트의 코드이므로 3 페이지가 있지만 어디에 있습니까? 파일에서 어디에서 찾을 수 있습니까? 512 바이트의 마지막 페이지에서이 90h (144) 바이트를 어떻게 확인할 수 있습니까?
이 정보는 DOS에서만 요청됩니다. 도스에서 실행되는 PE 파일의 유일한 코드는 DOS 스텁이며 3 페이지의 코드가 아니라 단지 64 바이트입니다. 그래서, 90h와 03h는 무엇을해야합니까? e_cblp=01h
과 e_cp=DOS header+DOS stub
을 말할 수 없습니까?