Сейчас на форуме: tyns777 (+4 невидимых)

 eXeL@B —› Программирование —› Как отладить драйвер на windows 7 x64?
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 09 октября 2009 19:10
· Личное сообщение · #1

Семерка не дает грузить неподписанные драйвера. Для того чтобы их загружать, надо по F8 выбрать вариант загрузки без проверки подписи. Хороший вариант, но в нем не работает Local Kernel Debugging в windbg. А если грузиться в режиме отладки ядра, то работает Local Kernel Debugging, но проверка подписи включена.

Как быть?

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 октября 2009 19:19
· Личное сообщение · #2

Существует два варианта:
1. Ломать защиту от патчей и проверку цифровой подписи. Уже есть готовые решения.
2. Ждать релиза OpenDbg, в котором поддержка x64 есть, и который сам ломает систему. Ждать можно очень долго, поэтому надо смотреть в сторону 1-ого пункта.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 09 октября 2009 19:28 · Поправил: Hexxx
· Личное сообщение · #3

И всех делов то...
www.downloadatoz.com/windows-registry/faq,how-to-disable-digital-driver-signing-signature-in-windows-7.html

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 октября 2009 19:38 · Поправил: Модератор
· Личное сообщение · #4

Hexxx
"Готовые решения" это значит их несколько. Арчер посоветовал грохнуть инициализацию патч гварда. Есть вариант когда в систему ставится драйвер который "прибивает" "лишние фичи" ОС.

Добвалено:
Ну у тебя как раз, как Арчер делает описано.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 09 октября 2009 19:44 · Поправил: Модератор
· Личное сообщение · #5

1. Запатчить ядро винды и саму винду, включая бутлоадер. Я делал на других версиях такое.
2. Попробовать тестовый сертификат. Но его могли отключить, последних веяний в этом деле не знаю.
3. Попробуй удалённый дебаг через вмварь, там точно можно отключать подпись и сохранять работоспособность.
4. Для висты были варианты типа http://www.codeplex.com/easyhook/Release/ProjectReleases.aspx?ReleaseId=15850 которые на ходу отключают его, но для 7 не встречал таких, хотя не особо и искал.
5. Отладить на более ранней версии ОС.

З.Ы. По твоей ссылке баян, имхо. В висте это отключили, не думаю, что в релизной 7 это работает, хотя попробовать можно.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 октября 2009 19:45
· Личное сообщение · #6

Archer пишет:
Отладить на более ранней версии ОС

Вряд ли можно считать это удачным вариантом.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 09 октября 2009 19:52
· Личное сообщение · #7

да, поспешил радоваться. Не пашет моя ссылка. К сожалению мне на семерке надо проверять.

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 октября 2009 19:57
· Личное сообщение · #8

Hexxx пишет:
К сожалению мне на семерке надо проверять

Стало быть вот так:

Archer пишет:
1. Запатчить ядро винды и саму винду, включая бутлоадер. Я делал на других версиях такое.


Думаю если хорошо попросишь, Арчер даже даст примеры реализации под другие ОСи.



Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 09 октября 2009 21:10 · Поправил: Vol4ok
· Личное сообщение · #9

ихмо самый лучший способ запустить дровину это использовать метод предусмотренный разработчиком (если конеш речь не идет о патче ядра и подобных извратах) - т. е. использовать тестовые сертификаты. Надо только один раз разобраться как их делать, и спокойно разрабатывать драйвера как и раньше. Что интересно, что в WDK 7600 не вошел набор утилит для самоподписи, посему почитав топик, я заинтересовался, а может реально в 7600 отключили? Поэтому тока что проверил у себя на варе (Win7 build 7600 x64) - ось успешно проглатила сертификат не сказав не слова, причем драйвер успешно завелся и начал активно дбгпринтить.
Если есть вопросы по созданию сертификата и подписыванию - спрашивай, даж тулзу для подписывания могу дать.

По поводу отладки все куда суровей, нормальных отладчиков, таких чтобы можно было отлаживать дров на локальной машине я в природе не видел (разве что тока opendbg когда допишем;), поэтому вариантов дебага пока совсем не много:
1) подрубить второй комп и устроить удаленную отладку через kd
2) поставить винду на варю, а к ней прикрутить тот же kd и дебагать локально, однако если дров обслуживает железку - :P
3) Довольствоваться dbgprint-ами ;)
лично я стараюсь обходиться всегда 3им, и только когда совсем все плохо то юзаю 1-2, но это бывает очень редко.



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 09 октября 2009 22:13
· Личное сообщение · #10

У меня семерка как раз 7600 RTM, живая тачка не VmWare.

Vol4ok пишет:
Если есть вопросы по созданию сертификата и подписыванию - спрашивай, даж тулзу для подписывания могу дать.

Давай конечно.

-----
Реверсивная инженерия - написание кода идентичного натуральному





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 09 октября 2009 23:23
· Личное сообщение · #11

Bypassing PatchGuard on Windows x64
www.uninformed.org/?v=3&a=3&t=sumry

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 10 октября 2009 00:45
· Личное сообщение · #12

> Bypassing PatchGuard on Windows x64

Нафига, если это твоя собственная дровина?
Генеришь себе сертификат, добавляешь его в локальное хранилище, и пользуешься.



Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 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: по поводу отладки с помощью второго компа, если вдруг кто-то отважется на такое, то не забудьте заземлить оба компа, дабы отважный порыв не спалил вашу мамку ;)



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 10 октября 2009 13:31
· Личное сообщение · #14

Disable PatchGuard - eight byte modification
www.accessroot.com/arteam/forums/showtopic=8469&hl=



Ранг: 10.5 (новичок)
Активность: 0.010
Статус: Участник

Создано: 10 октября 2009 17:32
· Личное сообщение · #15

Пробовал F8 в режим отключенных подписей.
Затем через консоль:

bcdedit -set loadoptions "DISABLE_INTEGRITY_CHECKS"
bcdedit -set loadoptions "DDISABLE_INTEGRITY_CHECKS"




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 10 октября 2009 19:04
· Личное сообщение · #16

Не знаешь, что написать-лучше промолчи. Мало того, что это давно закрыли. Дык об этом и выше уже написали.



Ранг: 56.1 (постоянный), 9thx
Активность: 0.040
Статус: Участник

Создано: 10 октября 2009 23:50
· Личное сообщение · #17

да, TESTSIGNING + DISABLE_INTEGRITY_CHECKS
кстати, оно ещё и чексумму в PE-заголовке проверяет - во всяком случае у ядра.

Ну и вот как раз искал нечто похожее и наткнулся на парня the-bizarro.livejournal.com/ - он занимался правкой загрузчика для этих целей



Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 16 октября 2009 12:22 · Поправил: Hexxx
· Личное сообщение · #18

Vol4ok
А какого вида нужно сделать inf файл если у меня обычный kernel mode service, а не WDM?

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 16 октября 2009 18:15
· Личное сообщение · #19

Hexxx пишет:
А какого вида нужно сделать inf файл если у меня обычный kernel mode service, а не WDM?

хотел заняться этим но пока времени нету, так что ничего готового нет.
можно попробовать переделать чуток inf из примеров WDK, например src/setup/infs/clasfilt - драйверу фильтру не требуется привязка ни к какаим устройствам, поэтому он оч похож на то что надо, так что можно взять за основу этот inf, выкинуть лишнее (например всякие AddReg-и) осавив только необходимые для установки поля. Потом там нужно будет добавить поля которые укажет в ошибках inf2cat, например, скорее всего, надо будет указать дату и имя файла каталога (поля DriverVer, CatalogFile в секции [version]).

ЗЫ: если получится то выложи плз, думаю многим пригодится.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 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




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 23 октября 2009 13:51
· Личное сообщение · #21

Подписать - подписалось. А запускаться не дает как и раньше.

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 56.2 (постоянный), 22thx
Активность: 0.030.08
Статус: Участник

Создано: 23 октября 2009 20:39
· Личное сообщение · #22

дабы не плодить схожие темы об неподписанных драйверах - вот однокнопочная утилита для подписывания драйверов Driver Signature Enforcement Overrider www.ngohq.com/home.php?page=dseo - с ее помощью запустил драйвер LoverFilters для DVD-R привода. Но вот что любопытно - кроме него там висит еще два драйвера и тоже не подписанные - но запускались они и до єтого, т.е. без перевода системы в Test Mode и подписывания!!! Может кто знает в чем хитрость?




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 25 октября 2009 10:42
· Личное сообщение · #23

Disable PatchGuard - the easy/lazy way



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 25 октября 2009 12:56
· Личное сообщение · #24

Alf

Если не затруднит, выложи Driver Signature Enforcement Overrider на какой - нибудь обменник, а то с официального сайта редиректит хз куда.



Ранг: 20.5 (новичок), 3thx
Активность: 0.010
Статус: Участник

Создано: 25 октября 2009 13:51
· Личное сообщение · #25

Lo пишет:
Если не затруднит, выложи Driver Signature Enforcement Overrider


dump.ru/file/3644496



Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 27 октября 2009 20:00
· Личное сообщение · #26

Hexxx пишет:
Подписать - подписалось. А запускаться не дает как и раньше.

скинь инф для kernel servicе который у тебя получился я попробую у себя подписать и запустить.



Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 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) подписываем драйвер с помощью signtool.exe, например так:
Code:
  1. signtool sign //s PrivateCertStore /"TestCertforWDK" driver.sys


5) устанавливаем драйвер с помощью KmdManager.zip

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



Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 21 июня 2010 13:24 · Поправил: Vol4ok
· Личное сообщение · #28

я таки нашел время и написал статью по поводу подписи драйвера на x64, поместил ее в песочницу хабры, т.к. нужен инвайт - Все о подписи драйверов Windows. Думаю статья будет полезна начинающим дровописарям и тем кто еще только собирается переходить на 64бит.




Ранг: 116.6 (ветеран), 8thx
Активность: 0.050
Статус: Участник

Создано: 21 июня 2010 13:39
· Личное сообщение · #29

Сколько раз отлаживал дрова в х64 - ниразу не замарачивался с подписью (во всяком случае под XP).




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 21 июня 2010 17:05
· Личное сообщение · #30

Может, потому, что хр не требует подписи, а остальные х64 требуют?


. 1 . 2 . >>
 eXeL@B —› Программирование —› Как отладить драйвер на windows 7 x64?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати