Сейчас на форуме: tyns777 (+4 невидимых) |
eXeL@B —› Программирование —› Как отладить драйвер на windows 7 x64? |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 09 октября 2009 19:10 · Личное сообщение · #1 Семерка не дает грузить неподписанные драйвера. Для того чтобы их загружать, надо по F8 выбрать вариант загрузки без проверки подписи. Хороший вариант, но в нем не работает Local Kernel Debugging в windbg. А если грузиться в режиме отладки ядра, то работает Local Kernel Debugging, но проверка подписи включена. Как быть? ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 09 октября 2009 19:19 · Личное сообщение · #2 |
|
Создано: 09 октября 2009 19:28 · Поправил: Hexxx · Личное сообщение · #3 |
|
Создано: 09 октября 2009 19:38 · Поправил: Модератор · Личное сообщение · #4 |
|
Создано: 09 октября 2009 19:44 · Поправил: Модератор · Личное сообщение · #5 1. Запатчить ядро винды и саму винду, включая бутлоадер. Я делал на других версиях такое. 2. Попробовать тестовый сертификат. Но его могли отключить, последних веяний в этом деле не знаю. 3. Попробуй удалённый дебаг через вмварь, там точно можно отключать подпись и сохранять работоспособность. 4. Для висты были варианты типа 5. Отладить на более ранней версии ОС. З.Ы. По твоей ссылке баян, имхо. В висте это отключили, не думаю, что в релизной 7 это работает, хотя попробовать можно. |
|
Создано: 09 октября 2009 19:45 · Личное сообщение · #6 |
|
Создано: 09 октября 2009 19:52 · Личное сообщение · #7 |
|
Создано: 09 октября 2009 19:57 · Личное сообщение · #8 |
|
Создано: 09 октября 2009 21:10 · Поправил: Vol4ok · Личное сообщение · #9 ихмо самый лучший способ запустить дровину это использовать метод предусмотренный разработчиком (если конеш речь не идет о патче ядра и подобных извратах) - т. е. использовать тестовые сертификаты. Надо только один раз разобраться как их делать, и спокойно разрабатывать драйвера как и раньше. Что интересно, что в WDK 7600 не вошел набор утилит для самоподписи, посему почитав топик, я заинтересовался, а может реально в 7600 отключили? Поэтому тока что проверил у себя на варе (Win7 build 7600 x64) - ось успешно проглатила сертификат не сказав не слова, причем драйвер успешно завелся и начал активно дбгпринтить. Если есть вопросы по созданию сертификата и подписыванию - спрашивай, даж тулзу для подписывания могу дать. По поводу отладки все куда суровей, нормальных отладчиков, таких чтобы можно было отлаживать дров на локальной машине я в природе не видел (разве что тока opendbg когда допишем;), поэтому вариантов дебага пока совсем не много: 1) подрубить второй комп и устроить удаленную отладку через kd 2) поставить винду на варю, а к ней прикрутить тот же kd и дебагать локально, однако если дров обслуживает железку - :P 3) Довольствоваться dbgprint-ами ;) лично я стараюсь обходиться всегда 3им, и только когда совсем все плохо то юзаю 1-2, но это бывает очень редко. |
|
Создано: 09 октября 2009 22:13 · Личное сообщение · #10 |
|
Создано: 09 октября 2009 23:23 · Личное сообщение · #11 |
|
Создано: 10 октября 2009 00:45 · Личное сообщение · #12 |
|
Создано: 10 октября 2009 13:11 · Личное сообщение · #13 Итак по пунктам: 1) прописываем в административной консоли: Bcdedit.exe –set TESTSIGNING ON и перезагружаемся, в итоге на десктопе после перезагрузки по углам красоваться соответствующие надписи. 2) создаем сертификат, это можно сделать с помощью тулзы makecert - dl.getdropbox.com/u/159112/Dropbox/drv_signing/makecert.rar (например так: Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer), или скачать и установить готовый - dl.getdropbox.com/u/159112/Dropbox/drv_signing/TestCertforWDK.rar (пароль: cracklab). 3) Открываем консоль Сертификаты - (Run->mmc->File+Add/Remove Snap-in->Certificates...) там находим свой сертификат(например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities) 4) Далее качаем - dl.getdropbox.com/u/159112/Dropbox/drv_signing/easysign.rar, в архиве папка bin в которой собранна наиболее свежая сборка консольных тулз для подписывания, а именно Inf2Cat.exe - тула для генерации .cat файлов из .inf файлов (нужен .NET), и signtool.exe - как не трудно догадаться для подписывания этого .cat файла (а также и всего остального, например можно сам драйвер тоже подписать). Дабы не стать К.О. я не буду писать о том как пользоваться хелпом чтобы заюзать эти тулы, а спициально для тех кто не любит суровые консольные апликации я написал простой оконный фронт-энд - easysign.exe, о котором расскажу по подробнее 1. Вбиваем в Inf Dir путь к папке где лежит сам .inf файл и все необходимые файлы к нему прилогающиеся. 2. Выбираем ОСи где работает драйвер. 3. Cross Cert - будет нужна если вы захотите подписать драйвер по настоящему, а так оставляем пустым 4. Cert Store - названия хранилеща где лежит наш сертификат (например PrivateCertStore) 5. Cert Name - название сертификата (например TestCertforWDK), если сертификат один в хранилище то можно и не заполнять это поле. 6. Time Stamp - адрес таймстампингового сервиса, для тестового сертификата - пофиг, можно оставить пустым 7. Файлы которые надо подписать, тут нужно обязательно добавить кат файл (если еще не создан, то прописать его имя вручную), а также можно добавить все файлы драйверов 8. Generate Catalog Only - если подписывать не надо, а только создать .cat файл 9. Жмем Sign - чтобы создать .cat и подписать, жмем Log - чтобы почитать что произошло, часто бывают ошибки, например неправильно составлен .inf файл, либо signtool чего то не нашел. 5) проверяем что все хорошо подписалось, для этого открываем свойство .cat файла (или драйвера) и смотрим вкладку Digital Signatures - если есть то можем полюбоваться на результат, если нет, то где то накосячили. Далее при установке драйвера, например через деспетчер устройств, там будет иконка, что типо драйвер подписан и все норм. 6) Enjoy! ЗЫ: все что написано тут, а также многие тулзы, можно найти в WDK 600X в папке bin/SelfSign, в WDK 7600 лажет только свежий Inf2Cat.exe. ЗЫ2: по поводу отладки с помощью второго компа, если вдруг кто-то отважется на такое, то не забудьте заземлить оба компа, дабы отважный порыв не спалил вашу мамку ;) |
|
Создано: 10 октября 2009 13:31 · Личное сообщение · #14 |
|
Создано: 10 октября 2009 17:32 · Личное сообщение · #15 |
|
Создано: 10 октября 2009 19:04 · Личное сообщение · #16 |
|
Создано: 10 октября 2009 23:50 · Личное сообщение · #17 |
|
Создано: 16 октября 2009 12:22 · Поправил: Hexxx · Личное сообщение · #18 |
|
Создано: 16 октября 2009 18:15 · Личное сообщение · #19 Hexxx пишет: А какого вида нужно сделать inf файл если у меня обычный kernel mode service, а не WDM? хотел заняться этим но пока времени нету, так что ничего готового нет. можно попробовать переделать чуток inf из примеров WDK, например src/setup/infs/clasfilt - драйверу фильтру не требуется привязка ни к какаим устройствам, поэтому он оч похож на то что надо, так что можно взять за основу этот inf, выкинуть лишнее (например всякие AddReg-и) осавив только необходимые для установки поля. Потом там нужно будет добавить поля которые укажет в ошибках inf2cat, например, скорее всего, надо будет указать дату и имя файла каталога (поля DriverVer, CatalogFile в секции [version]). ЗЫ: если получится то выложи плз, думаю многим пригодится. |
|
Создано: 16 октября 2009 19:39 · Поправил: Coderess · Личное сообщение · #20 > Нафига, если это твоя собственная дровина? Никогда не задумывался над подписью драйверов, нашел статью описывающую подробно данный процесс на Windows семейства Longhorn и Windows Vista Пошаговое руководство по подписыванию и подготовке драйверов аппаратных устройств www.microsoft.com/rus/technet/articles/vista/4846.mspx/ ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes |
|
Создано: 23 октября 2009 13:51 · Личное сообщение · #21 |
|
Создано: 23 октября 2009 20:39 · Личное сообщение · #22 дабы не плодить схожие темы об неподписанных драйверах - вот однокнопочная утилита для подписывания драйверов Driver Signature Enforcement Overrider www.ngohq.com/home.php?page=dseo - с ее помощью запустил драйвер LoverFilters для DVD-R привода. Но вот что любопытно - кроме него там висит еще два драйвера и тоже не подписанные - но запускались они и до єтого, т.е. без перевода системы в Test Mode и подписывания!!! Может кто знает в чем хитрость? |
|
Создано: 25 октября 2009 10:42 · Личное сообщение · #23 |
|
Создано: 25 октября 2009 12:56 · Личное сообщение · #24 |
|
Создано: 25 октября 2009 13:51 · Личное сообщение · #25 |
|
Создано: 27 октября 2009 20:00 · Личное сообщение · #26 |
|
Создано: 14 ноября 2009 00:47 · Поправил: Vol4ok · Личное сообщение · #27 Итак, у меня появились 2 новости по САБЖу, хорошая и очень хорошая : ) - первая, я сделал inf-файл (о котором писалось выше), который корректно подписывается, если кому интересно то его можно забрать - - вторая, inf файл вообще не нужен! можно подписать только сам драйвер и этого вполне достаточно. По пунктам: 1-3) - смотреть cracklab.ru/f/action=vthread&forum=6&topic=15123#13" target="_blank">выше</a> 4) подписываем драйвер с помощью Code:
5) устанавливаем драйвер с помощью 6) радуемся что драйвер работает (или синему экрану;) По этому поводу я для себя собрал небольшой шаблон для написания и подписывания драйверов под 32 и 64 бита, которым могу поделиться. Шаблон включает в себя bat-файлы для сборки и подписи: buildme.bat - собирает проект с помощью мэйкфайла. signme.bat - подписывает проект вышеописанным способом (без генерации cat-файла) signme (with cat).bat - генерирует cat и подписывает его а также сам драйвер (нужно скопировать inf в папку с драйвером) внутри батников можно менять переменные, значение которых думаю должно быть очевидно Также шаблон включает настроенный проект под vs2008 в котором тож можно собирать драйвер. В проекте используется переменная среды WINDDK - путь к WDK (например C:\WinDDK\7600). Однако в настройках возможны ошибки, так что если кто обнаружит что, пишите мне багрепорты Шаблон можно забрать тут - http://dl.dropbox.com/u/159112/Dropbox/drv_signing/simple_driver.rar |
|
Создано: 21 июня 2010 13:24 · Поправил: Vol4ok · Личное сообщение · #28 я таки нашел время и написал статью по поводу подписи драйвера на x64, поместил ее в песочницу хабры, т.к. нужен инвайт - |
|
Создано: 21 июня 2010 13:39 · Личное сообщение · #29 |
|
Создано: 21 июня 2010 17:05 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› Как отладить драйвер на windows 7 x64? |
Эта тема закрыта. Ответы больше не принимаются. |