PE 파일의 오프셋 0x3c에있는 PE 헤더에 대한 포인터가 항상 0x80으로 설정되어 있습니까?PE 파일의 오프셋 0x3c에있는 PE 헤더에 대한 포인터가 항상 0x80으로 설정되어 있습니까?
왜이 포인터가 변경 될지 궁금합니다. DOS 헤더와 스텁은 처음 쓰여진 이후로 변경되지 않았을 것입니다.
PE 헤더는 이러한 DOS 아티팩트 바로 다음에 시작하므로 PE 포인터는 항상 0x80으로 설정됩니까? 그렇지 않다면, 왜?
PE 파일의 오프셋 0x3c에있는 PE 헤더에 대한 포인터가 항상 0x80으로 설정되어 있습니까?PE 파일의 오프셋 0x3c에있는 PE 헤더에 대한 포인터가 항상 0x80으로 설정되어 있습니까?
왜이 포인터가 변경 될지 궁금합니다. DOS 헤더와 스텁은 처음 쓰여진 이후로 변경되지 않았을 것입니다.
PE 헤더는 이러한 DOS 아티팩트 바로 다음에 시작하므로 PE 포인터는 항상 0x80으로 설정됩니까? 그렇지 않다면, 왜?
없이 오프셋 0x3c에서 PE 헤더 -이 될 수 IMAGE_DOS_HEADER.e_lfanew이다 값> = 0x40으로
많은 프로그램 가지고 의해 다운 NT 헤더를 밀어 DOS 스텁 후에 추가 된 Rich signature 가변 금액.
다른 DOS 스텁을 사용하거나 전혀 사용하지 않을 수도 있습니다. "이 프로그램은 DOS 모드에서 실행할 수 없습니다."라는 문구를 인쇄 할 필요가 없습니다. 작은 도스 게임을 하드 디스크 와이퍼에 넣고 원하는대로 인쇄하십시오.
조심 하셔도 overlap the NT header with the DOS header이므로 오프셋 < 0x40을 사용할 수도 있습니다. 중요한 것은 도스 헤더의 유일한 부분이 e_lfanew와 "MZ"이므로 NT 헤더를 만드는 데 필요한 모든 것이 될 수 있기 때문에 이것은 너무 어렵지 않습니다. 당신은 e_lfanew를 그 값을 안전하게 가질 수있는 NT 헤더의 일부와 정렬해야 할 것입니다.
감사합니다. PE 다이어그램에는 리치 서명이 없습니다. 또한 DOS 스텁은 PE 표준의 일부가 아닙니다 (내용을 의미 함)? – Shuzheng
@ NicolasLykkeIversen 나는 DOS 스텁에 원하는대로 넣을 수 있는지 100 % 확신합니다. DOS가 올바르게 실행되는 한 올바르게 실행됩니다. 일부 간단한 응용 프로그램은 다중 플랫폼 실행 파일을 제공하기 위해 이것을 사용하기 때문에 DOS와 Windows 모두에서 실행될 수 있습니다. – Ped7g