без лишних проверок так Код (Text): UINT32 PeFaChkSum( IN PVOID pRawFileView, IN ULONG FileSize ) { ULONG i = 0; UINT32 Checksum = 0; for(i = 0; i < (FileSize+1)>>1; i++) { Checksum += ((UINT16 *)pRawFileView)[i]; Checksum = (Checksum>>16)+(Checksum&0xFFFF); } Checksum = (Checksum>>16)+(Checksum&0xFFFF); Checksum += FileSize; return Checksum; }
http://wasm.ru/forum/viewtopic.php?id=34083 - в энтом инструменте есть "умный" дампер "Dump On Page" в том числе с автоподсчетом CheckSum (её можно будет посмотреть в PE-заголовке)
RET у той суммы, что в заголовке другое назначение, она покрывает неформатированный поток смысла в ее пересчете для образа нет, т к в общем случае применены будут релоки, изменены глобальные данные и так далее