Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.24;
Скачать: CL | DM;

Вниз

Компиляция драйвера на 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;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.026 c
10-1148989839
Andrey_Gor
2006-05-30 15:50
2008.08.24
Error: "Интерфейс не поддерживается"


2-1216712194
Оксана Вл.
2008-07-22 11:36
2008.08.24
StringGrid


6-1192218336
prisoner849
2007-10-12 23:45
2008.08.24
IdHTTP и Post в Indy 10 (BDS 2006)


2-1216210259
Костик
2008-07-16 16:10
2008.08.24
Как отловить событие.


2-1216564436
Иваннн
2008-07-20 18:33
2008.08.24
TreeNode из TreeView