StartService & STATUS_IMAGE_CHECKSUM_MISMATCH

Тема в разделе "WASM.WIN32", создана пользователем S_T_A_S_, 25 июл 2005.

  1. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Доброго времени суток!



    Есть драйвер, собирается таким образом (компилятор MSVC NET 7.1)
    Код (Text):
    1. cl /Gz %kmd_resource%.res %kmd_source% /link /align:32 /driver /machine:x86
    2.   /entry:init /subsystem:native,5 /merge:.rdata=.text /base:0x10000000
    Как правило, запускается и работает нормально.



    НО, на некоторых системах (от версии ОС, похоже, не зависит, поскольку проявляется на 2K SP4, XP SP1, XP SP2) StartService возвращает ошибку. GetLastError выдаёт ERROR_BAD_DRIVER, а системный загрузчик STATUS_IMAGE_CHECKSUM_MISMATCH.



    Доступа к этим компьютерам нет, но предполагается, что файл умышленно не модифицировался.

    Возможны ли какие-то причины этой ошибки КРОМЕ модификации файла\поля checksum в заголовке?



    ЗЫ: В MSDN и google никаких других вариантов естественно нет :dntknw:(

    Единственное, что приходит в голову - файл модифицируется каким-то вирусом на машине пользователя.
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Ещё может бэды на винте, а посмотри в ldrapi.c ф-цию LdrVerifyMappedImageMatchesChecksum
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Что-то и MmCheckSystemImage ни на какие мысли не наводит. У себя я могу воспроизвести ситуацию, только изменив checksum в заголовке или другой байт в файле. Похоже, или у юзеров вирь, или они сами PE падчить пытаются :dntknw:(