내가 PE에 대한 자습서를 읽고 있었다 섹션 테이블에 점프하고는 섹션 테이블에 하나 SizeOfHeadersImageBase와 + SizeOfHeaders이
하지만 SizeOfHeaders에 ImageBase와를 추가하여
이동을 말한다
입니다,모든 헤더 섹션 + 테이블의 크기
그래서 ImageBase에 SizeOfHeaders를 추가하면 테이블이 아닌 섹션으로 이동하게됩니까?
내가 PE에 대한 자습서를 읽고 있었다 섹션 테이블에 점프하고는 섹션 테이블에 하나 SizeOfHeadersImageBase와 + SizeOfHeaders이
하지만 SizeOfHeaders에 ImageBase와를 추가하여
이동을 말한다
입니다,모든 헤더 섹션 + 테이블의 크기
그래서 ImageBase에 SizeOfHeaders를 추가하면 테이블이 아닌 섹션으로 이동하게됩니까?
SizeOfHeaders
실제로는 DOS 스텁을 포함한 전체 헤더의 크기입니다.
섹션 테이블의 주소를 가져 오려면 먼저 선택적인 헤더의 주소를 가져오고 FileHeader.SizeOfOptionalHeader
을 추가하십시오.
SizeOfHeaders
은 일부 파일에서 일치 할 수도 있지만 섹션 테이블의 위치를 찾는 데 사용되지 않습니다 (하지만 그렇게 생각하지는 않습니다). 여기
그것이 윈도우 헤더에 어떻게하는지 (및 시스템 로더)입니다 :
#define IMAGE_FIRST_SECTION(ntheader) ((PIMAGE_SECTION_HEADER) \
((ULONG_PTR)(ntheader) + \
FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + \
((ntheader))->FileHeader.SizeOfOptionalHeader \
))
참고 SizeOfOptionalHeader
의 실제 값이 선택되지 않았는지, 그것은 매우 크거나 부정적인 것일 수 있습니다 - 일부 악성 코드는 도구를 속일 때 속임수로 사용합니다.
더 자세한 내용은 물론 이상한 트릭을 보려면 here을 참조하십시오.
제공된 링크는 훌륭했습니다 .. 감사합니다. – questions
튜토리얼에 오류가있을 수 있습니까? –