информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft Authenticator прекращает... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[win32] муть с typedefами в ntddk. ниче не понимаю! 24.07.02 06:09  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Нуно состряпать драйвер монитора файловой системы. В качестве "рыбы" использую проект FileObjectInfo. Там один #include <ntddk.h>, бльше ссылок на ДДК нет. Компилю: 95 ошибок - "то не определено", "это определено дважды"!!! Пытался просто выдрать из ДДК все определения: запутался в "многоэтажных" ifdefах.
Народ, кто писал сам драйверы под НТ, подскажите, как обычно эта хрень распутывается?
возьми готовый драйвер от FileMon-a 26.07.02 23:03  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
Виноват, обоср-ся! Кого интересует, как сделать свой sys см.внутри! 30.07.02 04:26  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Итак, чтобы не гемороиться, читая Мелкомягкие хелпы:
sys компилиься не VC, а входящей в DDK утилитой build.
Запускают ее из того же консольного окна, в котором отработал Checked или Build Environment.
Установить в нем каталог проекта и запустить.
Мона батик написать.
Виноват, обоср-ся! Кого интересует, как сделать свой sys см.внутри! 30.07.02 10:59  
Автор: Green Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Ну это в самом начале DDK написано... но не удобно, согласись.
А я makefile свой подставляю, примерно такого содержания :

NAME = PrlPrgm
OBJS = %Hook.obj %Filters.obj %FastIO.obj %PrlPrgm.obj

#----------------------------------------------------------------------------
# Path definitions
#----------------------------------------------------------------------------
DDK_PATH=d:\winddk\2195
DDK_INCPATH=$(DDK_PATH)\inc
DDK_INCPATH_EXT=$(DDK_PATH)\inc\ddk

!ifdef DEBUG
TARGET_PATH = .\Debug
OBJS = $(OBJS:%=.\Debug\)
#DDK_LIBPATH = $(DDK_PATH)\lib\i386\checked
DDK_LIBPATH = $(DDK_PATH)\libchk\i386
!else
TARGET_PATH = .\Release
OBJS = $(OBJS:%=.\Release\)
#DDK_LIBPATH = $(DDK_PATH)\lib\i386\free
DDK_LIBPATH = $(DDK_PATH)\libfre\i386
!endif

TARGETTYPE=DRIVER

#----------------------------------------------------------------------------
# Common definition
#----------------------------------------------------------------------------
TARGET = $(TARGET_PATH)\$(NAME).sys

#----------------------------------------------------------------------------
# Libraries for building kernel driver
#----------------------------------------------------------------------------
LIBRARIES = $(DDK_LIBPATH)\ntoskrnl.lib $(DDK_LIBPATH)\hal.lib \
$(DDK_LIBPATH)\int64.lib $(DDK_LIBPATH)\libc.lib

#----------------------------------------------------------------------------
# C compiler executable, compiler options
#----------------------------------------------------------------------------
CC = cl
!ifdef DEBUG
CFLAGS = /nologo /c /Zp8 /Fd"$(TARGET_PATH)/" \
# /Fa"$(TARGET_PATH)/" /Fo"$(TARGET_PATH)/" /I$(DDK_INCPATH) /I$(DDK_INCPATH_EXT) /I$(WIN_INCPATH) \
/Od /Zi /W3 /Gz /DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0400 \
/D_X86_=1 /Di386=1 /D_DEBUG /DDBG=1 /DDEBUG_INTO_MEM=1
!else
CFLAGS = /nologo /c /Zp8 /Fd"$(TARGET_PATH)/" \
/Fo"$(TARGET_PATH)/" /I$(DDK_INCPATH) /I$(DDK_INCPATH_EXT) /I$(WIN_INCPATH) /GB /Ox /W3 /Gz \
/DWIN32=100 /D_NT1X_=100 /DWINNT=1 /D_WIN32_WINNT=0x0400 \
/D_X86_=1 /Di386=1 /DNDEBUG
!endif

#----------------------------------------------------------------------------
# Resource compiler
#----------------------------------------------------------------------------
RC = rc
!ifdef DEBUG
RCOPT= -R -L 0x409 -X -I "$(DDK_INCPATH)" -D "_DEBUG"
!else
RCOPT= -R -L 0x409 -X -I "$(DDK_INCPATH)" -D "NDEBUG"
!endif

#----------------------------------------------------------------------------
# Linker executable, linker options
#----------------------------------------------------------------------------
LINKER = link
!ifdef DEBUG
LFLAGS = /NOLOGO /DRIVER:UPONLY /ALIGN:0x20 /BASE:0x10000 /DEBUG \
/DEBUGTYPE:BOTH /ENTRY:DriverEntry@8 /INCREMENTAL:NO /MACHINE:IX86 \
/NODEFAULTLIB /SUBSYSTEM:NATIVE,4.00
!else
LFLAGS = /NOLOGO /DRIVER:UPONLY /ALIGN:0x20 /BASE:0x10000 \
/ENTRY:DriverEntry@8 /INCREMENTAL:NO /MACHINE:IX86 \
/NODEFAULTLIB /SUBSYSTEM:NATIVE,4.00
!endif

#----------------------------------------------------------------------------
# Debug support Ýòî ÷òîá ñðàçó ñîçäàâàëàñü òàáëèöà ñèìâîëîâ äëÿ SoftIce
#----------------------------------------------------------------------------
NMSYM = "d:\Program Files\NuMega\DriverStudio\SoftICE\nmsym.exe"
#NMFLAGS = /trans:source,package,always /load:symbols /out:$(TARGET_PATH)\prlprgm.nms /source:.
NMFLAGS = /trans:source,package,always /load:symbols /out:d:\winnt\system32\drivers\prlprgm.nms /source:.

#----------------------------------------------------------------------------
# Display some parameters
#----------------------------------------------------------------------------
!message Target = $(TARGET)

#----------------------------------------------------------------------------
# Main targets
#----------------------------------------------------------------------------
ALL: destdir "$(TARGET)"

destdir:
@if not exist "$(TARGET_PATH)\." mkdir "$(TARGET_PATH)"

CLEAN:
@-echo Clear target directory
@-del "$(TARGET_PATH)\*.*"

SOFTICE:
@-net start ntice
@$(NMSYM) $(NMFLAGS) "$(TARGET)"

INSTALL:
# copy "$(TARGET)" *.bak
# @-net stop $(NAME)
# @-del "%SystemRoot%\system32\drivers\$(NAME).sys"
# @copy "$(TARGET)" "%SystemRoot%\system32\drivers\$(NAME).sys"

"$(TARGET)": $(OBJS)
$(LINKER) @<<linker.opt
$(LFLAGS)
/OUT:"$(TARGET)"
/MAP:"$(TARGET_PATH)\$(NAME).map"
$(OBJS) $(LIBRARIES)
<<
!ifdef DEBUG
@$(NMSYM) $(NMFLAGS) "$(TARGET)"
!endif

#----------------------------------------------------------------------------
# Sources
#----------------------------------------------------------------------------
SOURCE = Hook.c
#DEP = prlprgm.h

"$(TARGET_PATH)\Hook.obj": $(SOURCE) $(DEP)
$(CC) $(CFLAGS) $(SOURCE)

SOURCE = prlprgm.c
#DEP = prlprgm.h

"$(TARGET_PATH)\prlprgm.obj": $(SOURCE) $(DEP)
$(CC) $(CFLAGS) $(SOURCE)

SOURCE = Filters.c
#DEP = prlprgm.h

"$(TARGET_PATH)\Filters.obj": $(SOURCE) $(DEP)
$(CC) $(CFLAGS) $(SOURCE)

SOURCE = FastIO.c
#DEP = prlprgm.h

"$(TARGET_PATH)\FastIO.obj": $(SOURCE) $(DEP)
$(CC) $(CFLAGS) $(SOURCE)

#----------------------------------------------------------------------------
# end of makefile

> Итак, чтобы не гемороиться, читая Мелкомягкие хелпы:
> sys компилиься не VC, а входящей в DDK утилитой build.
> Запускают ее из того же консольного окна, в котором
> отработал Checked или Build Environment.
> Установить в нем каталог проекта и запустить.
> Мона батик написать.
1




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


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