Сейчас на форуме: asfa, bartolomeo, hgdagon (+6 невидимых) |
eXeL@B —› Программирование —› Создание проекта для написания дровины, ручками? |
Посл.ответ | Сообщение |
|
Создано: 21 апреля 2006 17:30 · Поправил: theCollision · Личное сообщение · #1 Целую неделю искал простоту создания проекта для написания драйвера и не нашел. что значит для меня простота, поясню на примере создания консольного приложения с использованияем VC++ v6.0: 1. Open("total commander.exe") ) 2. shif+F4, NameFile: - 1.cpp 3. press "enter" 4. Save file. Close file 5. выделяю файл и щелкаю на нем "enter", т.к. расширения "cpp" ассоцированы с VC++ 6.0 то открывается этот продукт 6. Пишу код 7 Жму Ctrl+F7 8. Ctrl+F5 Наблюдаю работу приложения Просто? Вот и я говорю, что чем проще тем лучше!!! Как же мне научиться создовать проект, (желательно ручками) где в driver.cpp,driver.h и на этом все, после создать проект подобно п.7(выше) и наблюдать результат? Кто как делает? Имею: WDFv10.iso,Driver Studio 3.2, WinXP sp2, Visual C++ 6.0 Замачание: Нужна именно Visual C++ 6.0!!! Про .NET я и в Солдатове могу почитать зы: Пока я настроил VC++ 6.0, в нем после установки Driver Studio 3.2 появилось "Driver Studio" -> Driver Wizard, но он такой "проектище" создает, что не то что мне новичку, виртуозу то поди трудно разобраться. ----- My love is very cool girl. |
|
Создано: 21 апреля 2006 17:36 · Личное сообщение · #2 |
|
Создано: 21 апреля 2006 20:37 · Личное сообщение · #3 DrGolova Если бы я знал еще, что да как! Солдатова только начал читать, у него минус: - Не успев выложить фундамент, строит стены. Я только начал этим миром интересоваться, читаю Руссиновича, но в ней только теория, но зато какая. В Шрайбере, для тех кто уже что-то сделал, в упаковщиках на www.wasm.ru опять же, нужен опыт. А я начинающий в мире уровня ядра и пока мне надо по легче. Прошу пояснить или пролить свет на данную область ----- My love is very cool girl. |
|
Создано: 08 мая 2006 00:20 · Поправил: Sax0n · Личное сообщение · #4 чот в "имею" DDK не указан я этим вопросом тож нетак давно интересовался. Пришел вот к чему: 1. Ставится VMWare. На неё винда 2k/xp/2k3 2. Ставится DDK. 3. Ставится VC6 4. Ставится DS 3.2 5. Создается проект и настраивается (выбери себе подходящий) =================================================================== VISUAL STUDIO 6 C/C++ Compiler: /nologo /Gz /ML /W3 /Zi /Oi /Gy /I "." /I "$(TARGET_INC_PATH)" /I "$(CRT_INC_PATH)" /I "$(DDK_INC_PATH)" /I "$(WDM_INC_PATH)" /I "..\TCRConfig\VpnComm" /FI"warning.h" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D DBG=1 /D FPO=0 /D "NDIS_MINIPORT_DRIVER" /D NDIS_WDM=1 /D NDIS40_MINIPORT=1 /D NDIS40=1 /FR".\objchk\i386/" /Fo".\objchk\i386/" /Fd".\objchk\i386\ipsecvpn.pdb" /Zel -cbstring /GF /c Linker: ntoskrnl.lib hal.lib wmilib.lib ndis.lib sagos32.lib /nologo /base:"0x10000" /version:5.0 /stack:0x40000,0x1000 /entry:"DriverEntry" /incremental:no /pdb:".\objchk\i386/ipsecvpn.pdb" /machine:IX86 /nodefaultlib /out:".\objchk\i386\ipsecvpn.sys" /libpath:"$(TARGET_LIB_PATH)" /driver /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096,4210 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /SECTION:INIT,d /MERGE:.rdata=.text /FULLBUILD /RELEASE /OPT:REF /OPT:ICF /align:0x80 /osversion:5.00 /subsystem:native,1.10 /debug:FULL Дествия после сборки (PostBuildStep) E:\PROGRA~1\COMPUW~1\SOFTIC~1\SoftICE\nmsym.exe /translate:source,package,always .\objchk\i386\ipsecvpn.sys Релиз XP2600:*************************************************************** ********** Компилятор: /nologo /G6 /Gz /ML /W3 /Zi /Oi /X /I "$(BASEDIR_XP2600)\inc\wxp" /I "$(BASEDIR_XP2600)\inc\ddk\wxp" /I "$(BASEDIR_XP2600)\inc\crt" /D DBG=1 /D "_DEBUG" /D "_WINDOWS_" /D "WIN32" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_WIN2K_COMPAT_SLIST_USAGE" /FAs /Fa"Debug_WinXP2600/" /FR"Debug_WinXP2600/" /Fo"Debug_WinXP2600/" /Fd"Debug_WinXP2600/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c BASEDIR_XP2600 = путь к DDK директории. Линкер: ntoskrnl.lib hal.lib wmilib.lib /nologo /base:"0x10000" /version:2.2 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /pdb:"Debug_WinXP2600/имя.pdb" /map:"Debug_WinXP2600/имя.map" /machine:IX86 /nodefaultlib /out:"Debug_WINXP2600\имя.sys" /libpath:"$(BASEDIR_XP2600)\lib\wxp\i386" /debug:FULL /subsystem:native,1.10 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /MERGE:.rdata=.text /SECTION:INIT,d /driver /FULLBUILD /RELEASE /OPT:REF /OPT:ICF /align:0x80 /osversion:5.00 /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 Дебаг XP2600:*************************************************************** ********** Компилятор: /nologo /G6 /Gz /ML /W3 /Zi /Oi /X /I "$(DDKPATH)\inc\wxp" /I "$(DDKPATH)\inc\ddk\wxp" /I "$(DDKPATH)\inc\crt" /D DBG=1 /D "_DEBUG" /D "_WINDOWS_" /D "WIN32" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0400 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_WIN2K_COMPAT_SLIST_USAGE" /FAs /Fa"Debug_WinXP2600/" /FR"Debug_WinXP2600/" /Fo"Debug_WinXP2600/" /Fd"Debug_WinXP2600/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c Линкер: ntoskrnl.lib hal.lib wmilib.lib /nologo /base:"0x10000" /version:2.2 /stack:0x40000,0x1000 /entry:"DriverEntry@8" /incremental:no /pdb:"Debug_WinXP2600/driver.pdb" /map:"Debug_WinXP2600/driver.map" /machine:IX86 /nodefaultlib /out:"Debug_WINXP2600\driver.sys" /libpath:"$(DDKPATH)\lib\wxp\i386" /debug:FULL /subsystem:native,1.10 /MERGE:_PAGE=PAGE /MERGE:_TEXT=.text /MERGE:.rdata=.text /SECTION:INIT,d /driver /FULLBUILD /RELEASE /OPT:REF /OPT:ICF /align:0x80 /osversion:5.00 /IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 Win2000 релиз***************************************************************** ******** Компилятор: /nologo /G6 /Gz /ML /W3 /O2 /I "$(BASEDIR_NT5)\inc" /I "$(BASEDIR_NT5)\inc\ddk" /I "$(BASEDIR_NT5)\inc\ddk\wdm" /D "NDEBUG" /D "_WINDOWS_" /D "WIN32" /D "_MBCS" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0500 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_IDWBUILD" /D "_NT2000_SYS_DRIVER_" /FAs /Fa"Release_Win2000/" /FR"Release_Win2000/" /Fo"Debug_Win2000/" /Fd"Debug_Win2000/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c Линкер: ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /version:2.2 /entry:"DriverEntry@8" /subsystem:windows /pdb:none /map:"Release_Win2000/имя.map" /machine:I386 /nodefaultlib /out:"Release_WIN2000\имя.sys" /libpath:"$(BASEDIR_NT5)\libfre\i386\" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d /OPT:NOREF -FORCE:MULTIPLE -FULLBUILD -MERGE:.rdata=.text -align:0x20 -osversion:5.00 -subsystem:native,1.10 -driver:WDM -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 /RELEASE Дебаг:**************************************************************** ********* Компилятор: /nologo /G6 /Gz /ML /W3 /Zi /Oi /I "$(BASEDIR_NT5)\inc" /I "$(BASEDIR_NT5)\inc\ddk" /I "$(BASEDIR_NT5)\inc\ddk\wdm" /D "_DEBUG" /D DBG=1 /D "_WINDOWS_" /D "WIN32" /D "_MBCS" /D _X86_=1 /D i386=1 /D "STD_CALL" /D CONDITION_HANDLING=1 /D NT_UP=1 /D NT_INST=0 /D WIN32=100 /D _NT1X_=100 /D WINNT=1 /D _WIN32_WINNT=0x0500 /D _WIN32_IE=0x0400 /D WIN32_LEAN_AND_MEAN=1 /D DEVL=1 /D FPO=0 /D _DLL=1 /D "DRIVER" /D "_IDWBUILD" /D "_NT2000_SYS_DRIVER_" /FAs /Fa"Debug_Win2000/" /FR"Debug_Win2000/" /Fo"Debug_Win2000/" /Fd"Debug_Win2000/" /FD /Zel /QIfdiv- /QIf /QI0f /GF -cbstring /c Линкер: ntoskrnl.lib hal.lib kernel32.lib /nologo /base:"0x10000" /version:2.2 /entry:"DriverEntry@8" /subsystem:windows /incremental:no /pdb:"Debug_Win2000/имя.pdb" /map:"Debug_Win2000/имя.map" /debug /machine:I386 /nodefaultlib /out:"Debug_WIN2000\имя.sys" /libpath:"$(BASEDIR_NT5)\libfre\i386\" -MERGE:_PAGE=PAGE -MERGE:_TEXT=.text -SECTION:INIT,d /OPT:NOREF -FORCE:MULTIPLE -FULLBUILD -MERGE:.rdata=.text -align:0x20 -osversion:5.00 -subsystem:native,1.10 /driver:WDM -debug:FULL -IGNORE:4001,4037,4039,4065,4070,4078,4087,4089,4096 но после я задал себе вопрос - нафига нужна студия 6? Веть структуры драйверные она не парсит, да и отлаживать драйвер в ней нельзя. После чего послал ее от драйверов подальше и пользуюсь .bat Ту точно все проще некуда. Есть один .c и куча хедеров. компилица это одним кликом. затем kmdmanager`ом прописываю драйвер и запускаю. потом останавливаю. Отлаживаю софтайсом. Использую bpint 3 и конструкции вида #ifdef DEBUG __asm{int 3} #endif Вот вроде и все. |
|
Создано: 08 мая 2006 00:54 · Личное сообщение · #5 theCollision пишет: Если бы я знал еще, что да как! $Evil`s_Interrupt, это просто ;) В аттаче каркас driver.c, driver.h с MAKEFILE и SOURCES под WinDDK (хрюшевый) 9da5_08.05.2006_CRACKLAB.rU.tgz - xp.7z ----- ring 0 |
|
Создано: 09 мая 2006 00:32 · Поправил: Python · Личное сообщение · #6 |
|
Создано: 09 мая 2006 01:58 · Личное сообщение · #7 |
|
Создано: 09 мая 2006 14:38 · Личное сообщение · #8 Значит так, AFAIK, есть 3 способа компилить дрова: a) используя makefile, sources и команду build - проще всего настроить, самый стабильный environment, но весь вывод в консоль b) вызвать этот build из редактора, который парсит CL output (ie error messages) - просто, эффектно, стабильно, но нет проекта (дерева файлов) c) создать новый DLL project в VC6, VS2003 or VS2005 и прописать все compiler and linker options из лога который создаёт build - непросто, но есть file tree, completion, etc. |
|
Создано: 10 мая 2006 05:36 · Личное сообщение · #9 |
|
Создано: 10 мая 2006 06:47 · Личное сообщение · #10 |
eXeL@B —› Программирование —› Создание проекта для написания дровины, ручками? |