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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
возьми готовый драйвер от FileMon-a 26.07.02 23:03  Число просмотров: 954
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
<programming>
[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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach