информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Прекращение работы антивируса Касперского... 
 Microsoft Authenticator теряет... 
 Облачнолазурное 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] setenv 01.02.04 16:22  Число просмотров: 1612
Автор: 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) и т.д.
<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