В зависимости от того, что у вас есть для контрольной суммы, вы можете либо отключить заголовок COFF (где находится временная метка), либо дополнительный заголовок. В последнем случае вы просто сохраняете только данные таблицы разделов и разделов (двоичный контент исполняемого файла). Если вы убедитесь, что исходный код не изменен, а компиляция и флаги ссылок не изменены, данные раздела должны оставаться неизменными. Если вы хотите включить номера версий или размер кода в контрольную сумму, вы должны включить дополнительный заголовок.
Чтобы найти начало опционального заголовка, выполните следующую процедуру:
- чтения 4-байтовый подписи базовый адрес из 0x3C.
- Перейти подпись смещения.
- Смещение 20 байт. Это начало дополнительного заголовка.
- Здесь вы должны ожидать 0x10b, если это 32-разрядный exe-файл или 0x20b, если 64-разрядный.
Чтобы найти начало раздела таблицы, следующую процедуру:
- Read 4-байтовый подписи базовый адрес из 0x3C.
- Перейти подпись смещения.
- смещение 16 байт.
- Прочтите 2-байтовый дополнительный размер заголовка здесь.
- Перейти к необязательному заголовку.
- Смещение Необязательный размер байта заголовка. Это начало таблицы разделов.
- Здесь вы должны ожидать название раздела (например, «.text», «.data» и т. Д.).
Для получения полной информации о формате PE & COFF, скачайте: Microsoft PE and COFF Specification.
Почему вы пытаетесь это сделать? Какова фактическая проблема, которую вам нужно решить? – Johnsyweb
Ну, я не совсем уверен, что буду честным, и я начинаю думать, что меня отправили на кроличью тропу. Это был запрос моего менеджера ... –