Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Вниз

Компиляция драйвера на Delphi   Найти похожие ветки 

 
Dreamse   (2008-07-08 20:34) [0]

Добрый вечер.

Возникла необходимость отслеживать и перехватывать запуск программ на NT платформе. Методы перехвата хуком приемлемы но есть свои проблемы, в связи с этим решил поискать решение основанное на драйвере.

Драйвер и все исходники к нему нашел.
Драйвер написан на Delphi и пример к нему тоже. Все это дело компилируеться если я не ошибаюсь 2 или 3 версией Delphi + MASM (Link.exe)

Проблема в том что я в компиляции драйвера разобраться не могу :(
В связи с этим у меня просьба к форумчанам.

Возможно на форуме есть люди которые смогут разобраться, по этому у меня просьба разобраться с исходником (он небольшой по сути) и скомпилировать драйвер (после чего прислать драйвер, а так же если не трудно метод компиляции и описание ошибки) на Email

Все исходники отправлю по запросу.


 
Украинец   (2008-07-08 20:37) [1]


>
> Dreamse   (08.07.08 20:34)
>
> Добрый вечер.


Не ищите приключений на свою задницу. Надите в сети книгу Солдатова http://www.proklondike.com/contentview.php?content=12&print=1 и напишите на чистом С. Проблем будет меньше.

Кроме того Руссиновича книга не помешает.


 
dreamse   (2008-07-08 20:44) [2]

> Украинец   (08.07.08 20:37) [1]

Спасибо конечно за ссылку, но С ++ надо учить, а перехват запуска нужно сделать максимум дня через 4 так что время на изучение к сожалению не хватает :(

Решение уже есть, есть все исходные тексты, надо только откомпилировать. Там даже ошибок по сути не должно быть, я просто не знаю как скомпилировать *.sys

В исходниках есть батник компиляции, он указывает на компилятор delphi и затем на Link.exe от MASM. Но при запуске появляються какие то ошибки компиляции.


 
Украинец   (2008-07-08 20:47) [3]


> dreamse   (08.07.08 20:44) [2]


Во 1-х под 64 оно работать не будет(можно будет попробовать шаманство с FreePascal, но это не гарантированно), во вторых будут странности с расширением функциональности драйвера, все или не будет работать или будет работать странно, по причине хитрых взаимодействий функций пользовательского режима и режима ядра.


 
Игорь Шевченко ©   (2008-07-08 20:49) [4]

Драйверы надо писать на С (без ++)


 
ketmar ©   (2008-07-08 20:50) [5]

>Драйвер написан на Delphi
плюнь в лицо тому, кто это натворил и выгони его из своего дома.

зыж я сильно подозреваю, откуда растут ноги у этого драйвера. не надо, родной, не надо. возьми нормальный DDK, там, по-моему, даже есть пример на PsSetCreateProcessNotifyRoutine.

---
Do what thou wilt shall be the whole of the Law.


 
dreamse   (2008-07-08 20:52) [6]

Есть ли еще варианты для перехвата запуска программ (exe, com, scr) без использования драйвера ? Именно перехват а не отслеживание (в связи с тем чтобы отслеживаемый файл не успел напакостить пока его не убили)

Inject DLL не хочеться делать, так как все антивирусники с проективной защитой ругаються.

Желательно на Delphi :) Других языков программирования я пока не знаю :(


 
Игорь Шевченко ©   (2008-07-08 20:53) [7]


> Есть ли еще варианты для перехвата запуска программ (exe,
>  com, scr) без использования драйвера ?


audit настрой - оно тебе в Event log будет писать, какие процессы запускались и зачем


 
dreamse   (2008-07-08 20:54) [8]

К вопросу о драйвере:

не весь проект, а pas файл для ознакомления: http://www.prog-gate.pp.ru/fido7.ru.delphi.talk/664.html


 
dreamse   (2008-07-08 20:55) [9]

> Игорь Шевченко ©   (08.07.08 20:53) [7]

Это все конечно хорошо :)
Но повторюсь! Мне нужен не лог того что запускалось, а перехват запуска.


 
VirEx ©   (2008-07-08 20:56) [10]


> Dreamse

http://kladovka.net.ru/index.cgi?pid=list&rid=456
может чего и поймешь


 
ketmar ©   (2008-07-08 20:56) [11]

>[7] Игорь Шевченко © (2008-07-08 20:53:00)
это только следилка, убивать так не выйдет.

>[6] dreamse (2008-07-08 20:52:00)
>Inject DLL не хочеться делать, так как все антивирусники с проективной защитой
>ругаються.

и по условию не подходит: процесс-то уже запущен, когда инжектнулось. более того, TLS callbacks стартуют ещё раньше, чем процедуры инита DLL, емнип.

---
Understanding is not required. Only obedience.


 
Игорь Шевченко ©   (2008-07-08 20:58) [12]

ketmar ©   (08.07.08 20:56) [11]

Собственно, локальную политику безопасности в винде не отменили. Автор  же не говорит, нафига ему потребовалось дварковать запускаемые процессы влэндишным способом, но наверняка все такие решения уже есть в настройках той самой политики


 
ketmar ©   (2008-07-08 21:00) [13]

>[12] Игорь Шевченко © (2008-07-08 20:58:00)
скорее всего ты прав. но это ж не интересно…

---
Understanding is not required. Only obedience.


 
dreamse   (2008-07-08 21:05) [14]

> ketmar ©   (08.07.08 20:56) [11]

> и по условию не подходит: процесс-то уже запущен, когда инжектнулось. более того, TLS callbacks стартуют ещё раньше, чем процедуры инита DLL, емнип.

Немного не так поняли меня.
Делаеться Inject например на Explorer а в библиотеке которую присоеденили к Explorer.exe уже изет отслеживание CreateProcess в связи с этим можно сделать перехват. Решение уже готово, но работает не ахти на OS Vista :(

В связи с этим нужно решение для NT систем включая висту

> Игорь Шевченко ©   (08.07.08 20:58) [12]

Понимаете есть такое понятие как разработка софта для распространения его среди юзеров не имеющих понятия что такое политика безопасности, что такое драйвреа и пр а знающих только 2 кнопки в компьютере Это кнопка питания и кнопка пуск.

В связи с этим прошу больше на локальные политики не посылать :) Есть задача, нужно её как то решить...

p.s эх ... давно бы мне драйвер скомпилили я бы и отстал


 
ketmar ©   (2008-07-08 21:08) [15]

>[14] dreamse (2008-07-08 21:05:00)
>В связи с этим прошу больше на локальные политики не посылать :) Есть задача, нужно
>её как то решить…

тебе уже сказали как её решить. политики безопасности — как раз для твоего случая. дальше для доставания гланд через анус — на форум проктологоанатомов.

---
Do what thou wilt shall be the whole of the Law.


 
Игорь Шевченко ©   (2008-07-08 21:09) [16]


> Понимаете есть такое понятие как разработка софта для распространения
> его среди юзеров не имеющих понятия что такое политика безопасности,
>  что такое драйвреа и пр а знающих только 2 кнопки в компьютере
> Это кнопка питания и кнопка пуск.


Ты работаешь в Microsoft ?


 
Украинец   (2008-07-08 21:11) [17]


> dreamse   (08.07.08 21:05) [14]
>
> > ketmar ©   (08.07.08 20:56) [11]
>
> > и по условию не подходит: процесс-то уже запущен, когда
> инжектнулось. более того, TLS callbacks стартуют ещё раньше,
>  чем процедуры инита DLL, емнип.
>
> Немного не так поняли меня.
> Делаеться Inject например на Explorer а в библиотеке которую
> присоеденили к Explorer.exe уже изет отслеживание CreateProcess
> в связи с этим можно сделать перехват. Решение уже готово,
>  но работает не ахти на OS Vista :(
>
> В связи с этим нужно решение для NT систем включая висту
>
> > Игорь Шевченко ©   (08.07.08 20:58) [12]
>
> Понимаете есть такое понятие как разработка софта для распространения
> его среди юзеров не имеющих понятия что такое политика безопасности,
>  что такое драйвреа и пр а знающих только 2 кнопки в компьютере
> Это кнопка питания и кнопка пуск.
>
> В связи с этим прошу больше на локальные политики не посылать
> :) Есть задача, нужно её как то решить...
>
> p.s эх ... давно бы мне драйвер скомпилили я бы и отстал


Третья глава Солдатова "Простой драйвер в стиле NT". DDK и WDK с сайта MS.

WDK здоровый, около 600 мб.


 
ketmar ©   (2008-07-08 21:13) [18]

>[14] dreamse (2008-07-08 21:05:00)
кстати, родной: а кто это тебе на свисте позволит всякие неподписаные драйвера втыкать?
а про свистуx64 как?

не занимайся чушью, послушай, что тебе умные люди говорят.

---
Understanding is not required. Only obedience.


 
dreamse   (2008-07-08 21:17) [19]

> ketmar ©   (08.07.08 21:08) [15]

> тебе уже сказали как её решить

Тебе я уже тоже сказал что данный вариант политиками не настроишь так как софт на продажу, на продажу зарубеж, на продажу в другие города ... кто будет ездить с софтом за 100 $ и настраивать политики на каждой рабочей станции ?

> Игорь Шевченко ©   (08.07.08 21:09) [16]

А вы ?


 
dreamse   (2008-07-08 21:18) [20]

> ketmar ©   (08.07.08 21:13) [18]

Скажите мне умные люди: Как сделать перехват нормальный запуска процесосв на Delphi?


 
kernel ©   (2008-07-08 21:31) [21]

dreamse,
DCC от Delphi 3:

dcc32.exe -jP -$A-,B-,C-,D-,G-,H-,I-,J-,L-,M-,O+,P-,Q-,R-,T-,U-,V-,W+,X+,Y- имя_файла_исходника.pas

Далее link"уем WinDDK:

link.exe /NOLOGO /ALIGN:32 /BASE:0x10000 /SUBSYSTEM:NATIVE /DRIVER
/FORCE:UNRESOLVED /ENTRY:DriverEntry$qqsxp13DRIVER_OBJECTxp14UNICODE_STRING
имя_файла_исходника.obj /out:имя_файла_исходника.sys ntoskrnl.lib


 
Украинец   (2008-07-08 21:31) [22]


> ketmar ©   (08.07.08 21:13) [18]
>
> >[14] dreamse (2008-07-08 21:05:00)
> кстати, родной: а кто это тебе на свисте позволит всякие
> неподписаные драйвера втыкать?
> а про свистуx64 как?


Подписать на год всего 400$


 
Украинец   (2008-07-08 21:35) [23]


> kernel ©   (08.07.08 21:31) [21]
>
> dreamse,
> DCC от Delphi 3:



> dreamse   (08.07.08 21:17) [19]
>  софт на продажу, на продажу зарубеж, на  продажу в другие города ...


Ну сделал ты человеку медвежью услугу, а ПО прослывёт глючным.


 
ketmar ©   (2008-07-08 21:36) [24]

>[19] dreamse (2008-07-08 21:17:00)
за метлой. немедленно. и работать по своей прямой специальности.

---
Understanding is not required. Only obedience.


 
blackman ©   (2008-07-08 21:39) [25]

Наверное вот эта статья подвигла на подвиги?
Перехват API функций в Windows NT (часть 1). Основы перехвата.
http://www.wasm.ru/article.php?article=apihook_1
(ахтунг!, детям и слабонервным просьба соблюдать необходимые меры предосторожности ^_^

Тогда нужно и коменты прочесть
http://www.wasm.ru/comment.php?artcode=apihook_1


 
DVM ©   (2008-07-08 21:42) [26]


> dreamse

Все же советую начать изучать С и основы написания драйверов под Windows. Это занятие и с нормальными и предназначенными для этого инструментами сродни постройке корабликов в бутылках, а ты еще хочешь строить эти кораблики без участия рук и с завязанными глазами.


 
Игорь Шевченко ©   (2008-07-08 21:52) [27]


> А вы ?


Я в первую очередь не желаю странного, в частности самопального перехвата запуска процессов, каковой перехват делается как минимум тремя стандартными способами.


 
dreamse   (2008-07-08 22:00) [28]

> Игорь Шевченко ©   (08.07.08 21:52) [27]

> каковой перехват делается как минимум тремя стандартными способами.

Интересный вы все же человек, учите - учите неизвестно чему, а вот подсказать хотя бы 1-2 способа из 3-х стандартных почему то не можете :(

Дело ведь не в том что по вашему мнению этого не нужно делать, дело в том что это будет сделанно в любом случае :)  Рано или поздно, так как надо!

А я бы в свою очередь был бы очень благодарен любой подсказке, кроме конечно слов что делать что то не нужно


 
Игорь Шевченко ©   (2008-07-08 22:03) [29]

dreamse   (08.07.08 22:00) [28]


> Интересный вы все же человек


Спасибо за комплимент


> учите - учите неизвестно чему, а вот подсказать хотя бы
> 1-2 способа из 3-х стандартных почему то не можете :(


или не хочите. Также как ты не хочешь объяснить, нафига оно тебе надо.


> Дело ведь не в том что по вашему мнению этого не нужно делать,
>  дело в том что это будет сделанно в любом случае :)  Рано
> или поздно, так как надо!


Ты название софта скажи, чтобы никто из близких/родственников/знакомых его по незнанию не купил.


 
dreamse   (2008-07-08 22:16) [30]

> Игорь Шевченко ©   (08.07.08 22:03) [29]

> Также как ты не хочешь объяснить, нафига оно тебе надо.

Есть база постоянно обновляемых сигнатур троянов, рекламных модулей, шпионов и пр гадости. Нужно сделать файловый монитор на запуск этих файлов.

Почему бы не пользоваться нормальным антивирусом?
потому что необходимо встроить данный функционал в свою БОЛЬШУЮ систему.

SDK Касперский предоставляет но поддержка их сканера в неших продуктах стоит 10 000 $ на 3 месяца ... это нереальная несколько цена.

SDK Сканнера от Panda антивирус тоже есть, но договориться с ними не получилось.

> Ты название софта скажи, чтобы никто из близких/родственников/знакомых его по незнанию не купил.

Не купит, модуль деактивирования сигнатур входит в специализированный софт для рабочих станций в компаниях. Домашним пользователям он не грозит :)

p.s Знаю, знаю что это не решение ... но есть такое понятие как : Шеф сказал делай так ... вот и делаю ..

Решение будет идти встраиваемым модулем для нашего специализированного софта.


 
Eraser ©   (2008-07-08 22:26) [31]

> [0] Dreamse   (08.07.08 20:34)

зачем драйвер, когда есть готовые средства в user mode, вот пример http://code.progler.ru/view/376

драйвер это самая самая крайняя мера. надо трижды задуматься, а потом задуматься еще раз, прежде чем выбрать этот вариант.


 
DVM ©   (2008-07-08 22:29) [32]


> Eraser ©   (08.07.08 22:26) [31]

заработает ли под обычным пользователем в Vista?


 
Eraser ©   (2008-07-08 22:31) [33]

нет, не уверен даже что заработает под обычным пользователем в xp.
но на то есть манифест. драйвер точно под обычным польззователем не заработает, а в vista64 не заработает и под админом )


 
Украинец   (2008-07-08 23:03) [34]


> ketmar ©   (08.07.08 21:36) [24]
>
> >[19] dreamse (2008-07-08 21:17:00)
> за метлой. немедленно. и работать по своей прямой специальности.


Кетмар, ну вам разве не стыдно. Я лично люблю чтобы убрано было чисто, а не как нибудь. А как этот человек пишет программы я уже понял...


 
dreamse   (2008-07-08 23:14) [35]

Удалено модератором


 
Украинец   (2008-07-08 23:20) [36]


> Eraser ©   (08.07.08 22:26) [31]
>
> > [0] Dreamse   (08.07.08 20:34)
>
> зачем драйвер, когда есть готовые средства в user mode,
> вот пример http://code.progler.ru/view/376
>
> драйвер это самая самая крайняя мера. надо трижды задуматься,
>  а потом задуматься еще раз, прежде чем выбрать этот вариант.


Ему не только отслеживать, но и перехватывать(запрещать). A WMI позволяет только отслеживать CreateProcess.


 
Украинец   (2008-07-08 23:27) [37]


> dreamse   (08.07.08 23:14) [35]
>
> Скачал winDDK скомпилил пример, вроде работает. Но опять
> не перехват а отслеживание :(
>
> Спасибо всем.
> Если будет возможность без драйвера Перехватить !!! Не отследить
> а Перехватить запуск то напишите пожалуйста.


Можешь попробовать заменить отладчик [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]


 
Rouse_ ©   (2008-07-08 23:35) [38]


> не весь проект, а pas файл для ознакомления: http://www.
> prog-gate.pp.ru/fido7.ru.delphi.talk/664.html


>> function DriverEntry;
>> begin
>> ...

Млин - у меня дежавю? Я думал только один образчик сего чуда есть, а оказывается нэт, метаморфируются они, итить их за ногу :)))
Жаль нельзя Девида Блейна вспомнить...


 
umbra ©   (2008-07-08 23:46) [39]


> WinDDK 2000 скачать можно отсюда : http://lohovod.narod.
> ru/

WinDDK 2003 можно скачать отсюда - http://www.microsoft.com/whdc/DevTools/ddk/default.mspx :)

Про перехват - есть книжка Рихтера и есть типа-сдк Detours от микрософта (http://research.microsoft.com/research/downloads/Details/d36340fb-4d3c-4ddd-bf5b-1db25d03713d/Details.aspx) с хелпом


 
Игорь Шевченко ©   (2008-07-08 23:50) [40]


> Не купит, модуль деактивирования сигнатур входит в специализированный
> софт для рабочих станций в компаниях


вам жалко потратить денег на НОРМАЛЬНОЕ решение ? В таком случае озвучь название софта, чтобы компании его тоже не покупали.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.08.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.049 c
15-1215574736
AEN
2008-07-09 07:38
2008.08.24
Есть ли у Билла Гейтса ВО?


15-1215259867
critical_error
2008-07-05 16:11
2008.08.24
windows: critical error


2-1216556223
MixPix
2008-07-20 16:17
2008.08.24
вставить TTreeNode в дерево


2-1216146938
batya-x
2008-07-15 22:35
2008.08.24
узнать букву USB-диска


2-1216349599
Ренг
2008-07-18 06:53
2008.08.24
Сервер - клиенты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский