информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыЗа кого нас держат?Сетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 TeamViewer обвинил в своем взломе... 
 Docker Hub закрыл доступ из России 
 Google заблокировала 2 с лишним... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
1. Насчет консоли DDK : 02.02.04 03:28  Число просмотров: 1554
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> 1. Насчет консоли DDK :
> Start -> Development Kits -> W2k -> Checked build
> Environment/Free build Environment
> (отладочная и релизные варианты)
> Запускаешь одну из них ...
> cd C:\NTDDK\src\kernel\mca\imca\sys, а затем build ,- если
> сработает нормально, значит DDK видит VC - а это и есть
> минимально необходиое ...
>
> 2. Компиляция под VC6 ("доработать напильником по смыслу"):
> - Созадть пустой проект и добавить к нему исходняки
> драйвера
> - В "Tools" -> "Options" -> "directoris":
> прописать пути к хедерам DDK (C:\NTDDK\inc\) и поднять и
> вверх
> прописать пути к библиотекам DDK (C:\NTDDK\libchk\i386) и
> поднять их вверх
> - В "Project Seting":
> - Для компилятора в "Project options:" добавить что-нибудь
> типа:
> /nologo /G4 /Gz /MTd /W3 /Z7 /Oi /Gf /Gy /I "E:\NTDDK\inc"
> /D "_DEBUG" /D X86 /D "i386" /D "STD_CALL" /D
> "CONDITION_HANDLING" /D "WIN32_LEAN_AND_MEAN" /D "NT_UP" /D
> "RDRDBG" /D "SRVDBG" /D "DBG" /D "_IDWBUILD" /U "NT_INST"
> /Fo".\Debug/" /Fd".\Debug/" /FD /Zel /c
> - Для линковщика в "Project options:" добавить что-нибудь
> типа:
> ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000"
> /entry:"DriverEntry@8" /incremental:no
> /pdb:".\Debug/testdrv1.pdb" /debug /debugtype:both
> /machine:I386 /nodefaultlib /out:".\Debug\testdrv1.sys"
> /SUBSYSTEM:native
> - выходным файлом сделать *.sys

ага, а потом при загрузке драйвера бегать вокруг компа с бубенцами и молица что Вижуал слинковал усе правильно =)))))
<programming>
[c++] кто-нить делал дрова под nt с помощью ntddk? 31.01.04 13:16  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys) скомпилить, но ничо не получается, пишет что в ntddk.h какието ошибки. Я навена не грамотно прилепил DDK инклюдники к VC++. Есть ли какойнить альтернативный способ компилить драйвера?? или как можно с VC++ их компилить и как прилепить DDK инклюдники.
Помогите кто-нить плиз!!
В нормальных версиях VC (proffessional, enterprise) те же... 02.02.04 14:23  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 02.02.04 14:27  Количество правок: 2
<"чистая" ссылка>
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys)
> скомпилить, но ничо не получается, пишет что в ntddk.h
> какието ошибки. Я навена не грамотно прилепил DDK
> инклюдники к VC++. Есть ли какойнить альтернативный способ
> компилить драйвера?? или как можно с VC++ их компилить и
> как прилепить DDK инклюдники.
> Помогите кто-нить плиз!!

В нормальных версиях VC (proffessional, enterprise) те же компилятор, линкер и т.д. Все что нужно сделать - указать пути к include, lib, #define, и конечное правильные опции, особенно для link.

Многое удобно указать через pragma-comment:
#pragma comment(linker, "/merge:.edata=.text")
#pragma comment(linker, "/merge:.rdata=.text")
#pragma comment(linker, "/merge:_TEXT=.text")
#pragma comment(linker, "/merge:NOPAGED=.text")
#pragma comment(linker, "/merge:NOPAGE=.text")
#pragma comment(linker, "/merge:_PAGE=PAGE")
#pragma comment(linker, "/merge:PAGED=PAGE")

#pragma comment(linker, "/entry:WhistlerDriverEntry")
#pragma comment(linker, "/base:0x10000")
#pragma comment(linker, "/align:0x1000")
//#pragma comment(linker, "/release")
//#pragma comment(linker, "/driver")
#if _WIN32_WINNT < 0x0501
//# pragma comment(linker, "/osversion:5.00")
# pragma comment(linker, "/subsystem:native,5.00")
#elif _WIN32_WINNT < 0x0502
//# pragma comment(linker, "/osversion:5.01")
# pragma comment(linker, "/subsystem:native,5.01")
#else
//# pragma comment(linker, "/osversion:5.02")
# pragma comment(linker, "/subsystem:native,5.02")
#endif
//#pragma comment(linker, "/filealign:0x200")
//#pragma comment(linker, "/force:multiple")
Здесь закоментированы строчки которе уже уже не поддерживаются компилятором из VS.NET 2003

Рекомендую взять DDK от W2K3 (там в комплекте обновленный для W2K), и VS.NET 2003 (не просто VS.NET а именно 2003).

Готовых проектов VC 6.0 у меня не сохранилось, я уже давно перешел на VC.NET. Но проект для VC из VS.NET могу подкинуть - http://leo.yuriev.ru/?131
При желании могу дать и саму "C++ Templates Library for Windows Drivers".

Удачи!
Очень ценная инфа! Спасибо! 02.02.04 21:33  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
Очень ценная инфа! Спасибо!

> При желании могу дать и саму "C++ Templates Library for
> Windows Drivers".
secure@smtp.ru
[Win32] [C++] на, бери, не жалка =) 02.02.04 02:19  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys)
> скомпилить, но ничо не получается, пишет что в ntddk.h
> какието ошибки. Я навена не грамотно прилепил DDK
> инклюдники к VC++. Есть ли какойнить альтернативный способ
> компилить драйвера?? или как можно с VC++ их компилить и
> как прилепить DDK инклюдники.
> Помогите кто-нить плиз!!

вот эту тулзу(QuickSYS), и не морочь людям голову:
http://www.ntkernel.com/downloads/QuickSYS.src.zip
[Win32] Дык, QuickSYS оно конечно хорошо 02.02.04 03:17  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> вот эту тулзу(QuickSYS), и не морочь людям голову:
> http://www.ntkernel.com/downloads/QuickSYS.src.zip
Но кста, создает не совсем точный проект. Самый точный метод - выдирание ключей непосредственно из логов.
не согласен, она создает правильный проект, который к тому... 02.02.04 03:23  
Автор: NeuronViking Статус: Незарегистрированный пользователь
Отредактировано 02.02.04 03:26  Количество правок: 1
<"чистая" ссылка>
> > вот эту тулзу(QuickSYS), и не морочь людям голову:
> > http://www.ntkernel.com/downloads/QuickSYS.src.zip
> Но кста, создает не совсем точный проект. Самый точный
> метод - выдирание ключей непосредственно из логов.

не согласен, она создает правильный проект, который к тому же можно лехко про-адджастить в любое время, более того, эта тулза с исходниками, так что можешь и добавить/убрать от туда чтонть свое...

отличная, легкая и нужная тулза, имхо.

а "выдирание ключей непосредственно из логов" - это имхо мазохизм =) и @#$ова тонна лишнего времени, уж если на то пошло, то лучше создать свой кастом баттон на тулбаре в Вижуал студии и назначить ему маленький БАТничек и все дела...

да и еще, если уж ты такой прЫнципиальный ;) то "самый" точный метод - это все делать тока в ДДК через его утилиты(это насчет компилляции и линковки в Вижуал студии;). хе хе...
[C++] setenv 01.02.04 16:22  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Скачать win2000DDK, хочю с помощью VC++ драйвер (*.sys)
> скомпилить, но ничо не получается, пишет что в ntddk.h
> какието ошибки. Я навена не грамотно прилепил DDK
> инклюдники к VC++. Есть ли какойнить альтернативный способ
> компилить драйвера?? или как можно с VC++ их компилить и
> как прилепить DDK инклюдники.
> Помогите кто-нить плиз!!
Как уже сказали, надо из DDK-окружения компилить. Устанавливается оно командой setenv (находится в каталоге bin в DDK). Из этого окружения можно и VC потом запустить (msdev.exe), но при этом надо еще и проект сделать для VC. Во первых в Compuware Driver Studio есть тулза для конвертирования sources файла в проект VC6-го (*.dsp). Но она генерит какой-то глючный проект. Я поступаю проще:

Собираю драйвер обычным способом (build в каталоге с sources файлом) и получаю buildfre.log (или buildchk.log если окружение было checked). После этого копирую ключи для компилятора в окно для ключей компилятора, а для линкера - в ключи для линкера. После таких манипуляций проект всегда собирается нормально на этой же машине. Если предполагается сборка на разных машинах, то абсолютные пути надо позаменять всякими $(BASEDIR), $(DDK_INC_PATH), $(DDK_LIB_PATH) и т.д.
Балин, да, я делаю Check build environmen - так в инструкции... 02.02.04 11:38  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
> > Скачать win2000DDK, хочю с помощью VC++ драйвер
> (*.sys)
> > скомпилить, но ничо не получается, пишет что в ntddk.h
> > какието ошибки. Я навена не грамотно прилепил DDK
> > инклюдники к VC++. Есть ли какойнить альтернативный
> способ
> > компилить драйвера?? или как можно с VC++ их компилить
> и
> > как прилепить DDK инклюдники.
> > Помогите кто-нить плиз!!
> Как уже сказали, надо из DDK-окружения компилить.
> Устанавливается оно командой setenv (находится в каталоге
> bin в DDK). Из этого окружения можно и VC потом запустить
> (msdev.exe), но при этом надо еще и проект сделать для VC.
> Во первых в Compuware Driver Studio есть тулза для
> конвертирования sources файла в проект VC6-го (*.dsp). Но
> она генерит какой-то глючный проект. Я поступаю проще:
>
> Собираю драйвер обычным способом (build в каталоге с
> sources файлом) и получаю buildfre.log (или buildchk.log
> если окружение было checked). После этого копирую ключи для
> компилятора в окно для ключей компилятора, а для линкера -
> в ключи для линкера. После таких манипуляций проект всегда
> собирается нормально на этой же машине. Если предполагается
> сборка на разных машинах, то абсолютные пути надо
> позаменять всякими $(BASEDIR), $(DDK_INC_PATH),
> $(DDK_LIB_PATH) и т.д.

Балин, да, я делаю Check build environmen - так в инструкции написано, а мне вылетает вот что -
-----------------------------------------------------------------------------
New or updated MSVC detected. Updating DDK environment....

Setting environment for using Microsoft Visual C++ tools.
"Ш∙♠" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Starting dirs creation...Completed.

D:\NTDDK>
-----------------------------------------------------------------------------

Какая то ошибка, что делать - не знаю
Ты, вроде, прямо из VC пытаешься компилить, а это не есть гуд 31.01.04 20:21  
Автор: S-pent Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ты, вроде, прямо из VC пытаешься компилить, а это не есть гуд

1. Нужно консоль DDK запустить.
2. Вообще интересно какая конкретно версия VC(6/7)/DDK(w2k/XP)
3. Интересно какие сообщения выдаются при запуске консоли DDK
(она должна определить наличие VC)
и при build
4. Если из VC компилить, то нужно порядок использования
заголовочных файлов изменить и настройки компилятора

ЗЫ: Если хочешь, могу парочку книг порекомендовать (купить их придется ;) )
Ну кароче у меня VC интерпрайз эдишн 6.0, а DDK win2k 01.02.04 13:52  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
Ну кароче у меня VC интерпрайз эдишн 6.0, а DDK win2k
В инструкции к DDK написано что можно компилить в VC (только интерпрайз и профешенол) только надо сервис пак установить.

ЗА: А что такое консоль DDK??
1. Насчет консоли DDK : 01.02.04 15:19  
Автор: S-pent Статус: Незарегистрированный пользователь
Отредактировано 01.02.04 16:42  Количество правок: 1
<"чистая" ссылка>
1. Насчет консоли DDK :
Start -> Development Kits -> W2k -> Checked build Environment/Free build Environment
(отладочная и релизные варианты)
Запускаешь одну из них ...
cd C:\NTDDK\src\kernel\mca\imca\sys, а затем build ,- если сработает нормально, значит DDK видит VC - а это и есть минимально необходиое ...

2. Компиляция под VC6 ("доработать напильником по смыслу"):
- Созадть пустой проект и добавить к нему исходняки драйвера
- В "Tools" -> "Options" -> "directoris":
прописать пути к хедерам DDK (C:\NTDDK\inc\) и поднять и вверх
прописать пути к библиотекам DDK (C:\NTDDK\libchk\i386) и поднять их вверх
- В "Project Seting":
- Для компилятора в "Project options:" добавить что-нибудь типа:
/nologo /G4 /Gz /MTd /W3 /Z7 /Oi /Gf /Gy /I "E:\NTDDK\inc" /D "_DEBUG" /D X86 /D "i386" /D "STD_CALL" /D "CONDITION_HANDLING" /D "WIN32_LEAN_AND_MEAN" /D "NT_UP" /D "RDRDBG" /D "SRVDBG" /D "DBG" /D "_IDWBUILD" /U "NT_INST" /Fo".\Debug/" /Fd".\Debug/" /FD /Zel /c
- Для линковщика в "Project options:" добавить что-нибудь типа:
ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /entry:"DriverEntry@8" /incremental:no /pdb:".\Debug/testdrv1.pdb" /debug /debugtype:both /machine:I386 /nodefaultlib /out:".\Debug\testdrv1.sys" /SUBSYSTEM:native
- выходным файлом сделать *.sys
1. Насчет консоли DDK : 02.02.04 13:14  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
> 1. Насчет консоли DDK :
> Start -> Development Kits -> W2k -> Checked build
> Environment/Free build Environment
> (отладочная и релизные варианты)
> Запускаешь одну из них ...
> cd C:\NTDDK\src\kernel\mca\imca\sys, а затем build ,- если
> сработает нормально, значит DDK видит VC - а это и есть
> минимально необходиое ...
>
> 2. Компиляция под VC6 ("доработать напильником по смыслу"):
> - Созадть пустой проект и добавить к нему исходняки
> драйвера
> - В "Tools" -> "Options" -> "directoris":
> прописать пути к хедерам DDK (C:\NTDDK\inc\) и поднять и
> вверх
> прописать пути к библиотекам DDK (C:\NTDDK\libchk\i386) и
> поднять их вверх
> - В "Project Seting":
> - Для компилятора в "Project options:" добавить что-нибудь
> типа:
> /nologo /G4 /Gz /MTd /W3 /Z7 /Oi /Gf /Gy /I "E:\NTDDK\inc"
> /D "_DEBUG" /D X86 /D "i386" /D "STD_CALL" /D
> "CONDITION_HANDLING" /D "WIN32_LEAN_AND_MEAN" /D "NT_UP" /D
> "RDRDBG" /D "SRVDBG" /D "DBG" /D "_IDWBUILD" /U "NT_INST"
> /Fo".\Debug/" /Fd".\Debug/" /FD /Zel /c
> - Для линковщика в "Project options:" добавить что-нибудь
> типа:
> ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000"
> /entry:"DriverEntry@8" /incremental:no
> /pdb:".\Debug/testdrv1.pdb" /debug /debugtype:both
> /machine:I386 /nodefaultlib /out:".\Debug\testdrv1.sys"
> /SUBSYSTEM:native
> - выходным файлом сделать *.sys

Во, второй вариант самое то! Спасибо!
1. Насчет консоли DDK : 02.02.04 03:28  
Автор: NeuronViking Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> 1. Насчет консоли DDK :
> Start -> Development Kits -> W2k -> Checked build
> Environment/Free build Environment
> (отладочная и релизные варианты)
> Запускаешь одну из них ...
> cd C:\NTDDK\src\kernel\mca\imca\sys, а затем build ,- если
> сработает нормально, значит DDK видит VC - а это и есть
> минимально необходиое ...
>
> 2. Компиляция под VC6 ("доработать напильником по смыслу"):
> - Созадть пустой проект и добавить к нему исходняки
> драйвера
> - В "Tools" -> "Options" -> "directoris":
> прописать пути к хедерам DDK (C:\NTDDK\inc\) и поднять и
> вверх
> прописать пути к библиотекам DDK (C:\NTDDK\libchk\i386) и
> поднять их вверх
> - В "Project Seting":
> - Для компилятора в "Project options:" добавить что-нибудь
> типа:
> /nologo /G4 /Gz /MTd /W3 /Z7 /Oi /Gf /Gy /I "E:\NTDDK\inc"
> /D "_DEBUG" /D X86 /D "i386" /D "STD_CALL" /D
> "CONDITION_HANDLING" /D "WIN32_LEAN_AND_MEAN" /D "NT_UP" /D
> "RDRDBG" /D "SRVDBG" /D "DBG" /D "_IDWBUILD" /U "NT_INST"
> /Fo".\Debug/" /Fd".\Debug/" /FD /Zel /c
> - Для линковщика в "Project options:" добавить что-нибудь
> типа:
> ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000"
> /entry:"DriverEntry@8" /incremental:no
> /pdb:".\Debug/testdrv1.pdb" /debug /debugtype:both
> /machine:I386 /nodefaultlib /out:".\Debug\testdrv1.sys"
> /SUBSYSTEM:native
> - выходным файлом сделать *.sys

ага, а потом при загрузке драйвера бегать вокруг компа с бубенцами и молица что Вижуал слинковал усе правильно =)))))
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach