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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Трабл... 01.03.02 12:33  Число просмотров: 943
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> - перехватчиков дисковых операций, по ним луучше всего
> учиться и по сырцу Scramdiska.

Там (в исходниках) на С++ код сделан - а мне надо на асме - нужно просто...

Лучше всего на MASM

Если кто не пожалеет представьте код с копированием файла средствами драйвера, плиз
<programming>
VxD 28.02.02 07:23  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Какие-нибудь функции или сервисы существуют,чтобы организовать
копирование файла при помощи статического драйвера?
(наподобие CopyFile)

То есть нужно,чтобы в виндах 98 мой драйвер реагировал на некоторые действия пользователя - и копировал один файл на место другого - не знаю как это сделать.В DDK не нашел ответа
VxD - сделал но по-другому 04.03.02 08:33  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Какие-нибудь функции или сервисы существуют,чтобы
> организовать
> копирование файла при помощи статического драйвера?
> (наподобие CopyFile)
>
> То есть нужно,чтобы в виндах 98 мой драйвер реагировал на
> некоторые действия пользователя - и копировал один файл на
> место другого - не знаю как это сделать.В DDK не нашел
> ответа

Если это кому-нибудь потребуется

Нашел в DDK98 где про файлы написано - сделал через IFSMgr_Ring0_FileIO

mov eax,R0_RENAMEFILE
mov esi,OFFSET32 oldfile
mov edx,OFFSET32 newfile
IFSMgr_Ring0_FileIO
Fs_renamefile(pioreq pir) 01.03.02 00:38  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmeother/storage_5xko.asp
VxD: Или хочешь звать файловые сервисы из VxD ? 28.02.02 16:25  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> Какие-нибудь функции или сервисы существуют,чтобы
> организовать
> копирование файла при помощи статического драйвера?
> (наподобие CopyFile)

То-есть, звать CreateFile, ReadFile ... из VxD ?
У меня есть немножко мыслей(кода), могу занести.
Чингачгук как всегда точнее всех понял... 01.03.02 07:17  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Какие-нибудь функции или сервисы существуют,чтобы
> > организовать
> > копирование файла при помощи статического драйвера?
> > (наподобие CopyFile)
>
> То-есть, звать CreateFile, ReadFile ... из VxD ?
> У меня есть немножко мыслей(кода), могу занести.

Вот ИМЕННО ЭТО Я И ХОТЕЛ УЗНАТЬ

Очень нужны (просто необходимы такие мысли)
Плиз,подскажи,а то своим умишком долго еще доходить буду
Пардон:: сразу не ответил. 02.03.02 05:55  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
> Очень нужны (просто необходимы такие мысли)
> Плиз,подскажи,а то своим умишком долго еще доходить буду

Тут вот какое дело. Я тут делал чтение своп-файла из вин32.(По этому поводу я долго пытал z0 в нитке ниже). И наткнулся

(далее речь идет о вин98)

на вот какой фикус-прикус:

зовем, к примеру (из win32-кода) CreateFile. Вызов проходит через kernel32. Но, как бы это сказать - транзитом: реально вызывается одна из VxD-шек, причем вызов ее до боли напоминает вот это:

Это пошел мой код, который сквозняком вызывает РЕАЛЬНЫЙ сервис из VxD:
Вызов того самого ORD_0001(процедура кернела):

.data
ORD_0001 dd 0BFF713D4h
TestName db "test.dat",0
SwpName db "C:\WINDOWS\win386.swp",0
;...
;; mov esi,offset SwpName ; В этом случае нам вернется 5 в EAX
mov esi,offset TestName ; А в этом - нормальное число (дескриптор на файл ?)
push ecx
mov eax,716Ch
push eax ; ?
push 0002a0010h ; 2a - VWIN32.VXD, 10 - ???
call dword ptr ORD_0001 ; VxDCall
; Если в ESI имя swap-а, то вернется в EAX 5(Доступ запрещен ?)
; Если в ESI имя нормального файла, то все OK - например, EAX=2e9h

А вот чтаа такое этот вызов на самом деле:

Функция LFN 6Ch: Создать или открыть файл с длинным именем(DOS !)
Ввод: AX=716Ch
BX=режим доступа Windows95
Биты 0-2:доступ
000-только для чтения
001-только для записи
; и т.д.

По моему мнению, этот сервис* можно тем более звать из других VxD через стандартный int 20h.
А к тому ж я вроде бы как видал, что вызовы ring0(VxD) - > ring3(kernel32) возможны, но тут лучше спецов спроси - я дилетант, вообще-то ж)

* Видимо, VWIN32.VXD - сборник, но реально - VMM32 ?
замечания 02.03.02 09:35  
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
> * Видимо, VWIN32.VXD - сборник, но реально - VMM32 ?

именно VWIN32 - т.н. "третье ядро" чикаги
все функции нужные APP-ам там сидят
VMM собственно и есть именно VMM - управлялка виртуальных машинок и драйверков
просто исторически она грузит всех (кто-то ж должен начинать) и поэтому популярнее чем VWIN32 (с точки зрения новичков)
Всмысле, хочешь перехватить запись в файл? 28.02.02 11:01  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
To Zef 01.03.02 07:25  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Нет не перехватить,а именно просто скопировать файл - я только недавно начал драйверами интересоваться - поэтому много чего еще не понимаю.

А в DDK я видел fs_renamefile,fs_openfile,fs_readfile и подобные им.
Только вот не нашел понятного примера их использования.
Что такое pioreq pir?
Плиз,объясните
Ищи Filemon - там сырцы sys & vxd 01.03.02 08:32  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
- перехватчиков дисковых операций, по ним луучше всего учиться и по сырцу Scramdiska.
Трабл... 01.03.02 12:33  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> - перехватчиков дисковых операций, по ним луучше всего
> учиться и по сырцу Scramdiska.

Там (в исходниках) на С++ код сделан - а мне надо на асме - нужно просто...

Лучше всего на MASM

Если кто не пожалеет представьте код с копированием файла средствами драйвера, плиз
На ASMе у Скрамдиска, но 01.03.02 12:41  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
он не перехватывает файловых операций, а только эмулирует диск и подключает его в систему.
Ищи Filemon - там сырцы sys & vxd 01.03.02 09:01  
Автор: New Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> - перехватчиков дисковых операций, по ним луучше всего
> учиться и по сырцу Scramdiska.

Спасибо - а я то тормоз и не подумал об этом - иногда этой отличной прогой пользуюсь

Еще раз спасибо
Ищи Filemon - там сырцы sys & vxd 01.03.02 11:58  
Автор: ih8u <i hate you> Статус: Member
<"чистая" ссылка>
Кстати сурсы FileMon'а лежат на сайте производителя - www.sysinternals.com
1




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


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