[Win x64] Отключение проверки сертификатов.

Тема в разделе "WASM.NT.KERNEL", создана пользователем MuForum, 1 фев 2011.

  1. MuForum

    MuForum Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    109
    Доброго времени суток.
    Написал драйвер для своих нужд, отладил его под Windows XP x86-32/7 x86-32.
    Встала задача сделать поддержку WinXP x64 и Win7 x64.
    Начитался кучу статей про PathGaurd, методы обхода его и т.д.

    Пробовал использовать указания со статьи: How to disable digital driver signing signature in Windows 7;
    - Но даже после этого мне не удалось загрузить не подписанный драйвер.


    # Задача: Загрузить не подписанный драйвер на ОС WinXP x64 и Win7 x64.
    - Все действия необходимо выполнять программно, чтобы не задевать "девственную" психику пользователя.


    # Вопрос: Возможно ли каким-то образом отключить полностью проверку сертификатов драйверов, чтобы можно было загружать не подписанный драйвер на 64-битных осях?
    - Или есть ещё какие-то варианты что-бы решить эту проблемы?


    # Добавлено: Так же нашел исходники для отключения PathGuard, но на сколько я понял они работают лишь на WinVista. (Перейти)


    P.S. -> Надеюсь на советы/подсказки профи.
     
  2. onSide

    onSide New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2008
    Сообщения:
    476
    Ага, "для своих нужд" с отключением патч гуарда))) Врятли тебе скажут как обойти проверку подписи. Но есть утилиты которые тупо програмно жмут F8 на старте и потом клацают стрелочкой вниз на нужный пункт и жмут ентер)
     
  3. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Если проблема в том, что функция ObRegisterCallbacks() возвращает отлуп типа STATUS_ACCESS_DENIED, то для этого придётся таки подписать драйвер, потому что эта функция форсирует проверку подписи независимо от того, включена или нет проверка цифровой подписи драйверов при их загрузке. Создаёшь тестовый сертификат, подписываешь им драйвер, разрешаешь тестовые подписи в настройках загрузчика системы (bcdedit.exe), - всего этого должно хватить. Ах да, совсем забыл про флаг Integrity Check в файле-образе драйвера, его можно установить через параметры линкера, а прочитать об этом всём можно здесь.
     
  4. JivotnoE

    JivotnoE New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2009
    Сообщения:
    10
    I Создание точки входа в BCD ( патч winloader, ntoskrnl ) - http://fyyre.ivory-tower.de/txt/bootloader.txt

    II Способ, в подробностях то что написал x64

    1) прописываем в административной консоли: Bcdedit.exe –set TESTSIGNING ON и перезагружаемся, в итоге на десктопе после перезагрузки по углам красоваться соответствующие надписи.
    2) создаем сертификат, это можно сделать с помощью тулзы makecert
    (Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer)
    3) Открываем консоль Сертификаты - (Run->mmc->File+Add/Remove Snap-in->Certificates...) там находим свой сертификат(например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities)
    4) подписываем драйвер с помощью signtool.exe, например так:
    signtool sign /v /s PrivateCertStore /n "TestCertforWDK" driver.sys
     
  5. Ladr

    Ladr New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2009
    Сообщения:
    17
    Насколько помню в WinXP x64 патчгварда нет.
     
  6. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    и != или
     
  7. MuForum

    MuForum Member

    Публикаций:
    0
    Регистрация:
    11 мар 2007
    Сообщения:
    109
    Необходимо чтобы драйвер поддерживал следующие ОС: WinXP x86-32, WinXP x86-64, Win7 x86-32, Win7 x86-64;
    - Нужно чтоб драйвер поддерживал и WinXp x64, и Win7 x64 (Обе 64-битные оси)
     
  8. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    MuForum
    Не подписанный драйвер невозможно загрузить на x64 системах. Прими это как аксиому.
    Прочитай внимательно пост #4.
    Если юзаешь ObRegisterCallbacks (или оные), то не забудь про integritycheck.
    Может вдохновился идеей патчинга PathGuard ? (на overclockers.ru есть и патчи для Win7 x64).
     
  9. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Неправильно помнишь.

    Нормальные драйвера не нуждаются в таких диких хаках и дурацких патчах. Примите это уже, наконец, за аксиому.
     
  10. Ladr

    Ladr New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2009
    Сообщения:
    17
    Ошибся. Патчгуард и правда есть. В Xp64 драйвер без цифровой сигнатуры можно загрузить без выбора соотв опций в меню загрузки.
    HIPS нуждается в хуках.
     
  11. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Скорее автора программ, способных выложить 600 баксов в год мелкософту
     
  12. Babyshamble

    Babyshamble New Member

    Публикаций:
    0
    Регистрация:
    2 май 2010
    Сообщения:
    67
    Ты что, 600 баксов в год выложить никто не способен ! :)
     
  13. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Если это программа бесплатная или если автор начинающий, то не способен, особенно в нашей стране.


    да и за что платить в конечном итоге? за право писать под винду? майкрософт же ничего не дает взамен кроме этого права!


    Так что не платить-вопрос принципа!
     
  14. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Кто сказал платить Микрософту именно? Платить нужно компаниям, выдающим сертификаты, например VeriSign.

    А взамен ты получаешь возможность всегда идентифицировать тебя как автора программы, если ты подпишешь ее своим сертификатом. То есть ты получаешь потенциальное доверие клиентов.
    А за это и 600 и больше баксов выложить не жалко

    Вы как дети
     
  15. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    о каких 600 баксах речь?

    http://www.globalsign.com/code-signing/
    1 year
    $229
     
  16. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    Почитайте внимательно. этот сертификат не дает права подписывать драйвера. Сертификаты, дающие право подписывать драйвера - от 600 баксов.
     
  17. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    В любом случае, я уже написал выше, даже если и 600 баксов - все равно их будут отдавать и _правильно_ сделают. Не хотите отдавать - не пишите софт под ядро
     
  18. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    Great
    Т.е. драйвер по определению не может входить в freeware прожект?
     
  19. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    T800, 21.02.2011 15:27:27:
    >> В любом случае, я уже написал выше, даже если и 600 баксов -
    >> все равно их будут отдавать и _правильно_ сделают.
    >> Не хотите отдавать - не пишите софт под ядро

    а как быть с freeware прогами?

    great, 15:28:59:
    купить _себе_ один сертификат и штамповать хоть тысячу программ

    great, 15:29:29:
    сертификат лишь подтверждает, что это именно та версия, что _ты_ собрал и что ее не подменил какой-нибудь хакер на свой руткит

    ---

    Насколько я помню, у того же трукрипта валидная цифровая подпись.
     
  20. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    Freeware не подразумевает нулевые затраты на разработку и продвижение.