Конференция "Прочее" » Компиляция драйвера на Delphi
 
  • Dreamse (08.07.08 20:34) [0]
    Добрый вечер.

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

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

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

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

    Все исходники отправлю по запросу.
  • Украинец (08.07.08 20:37) [1]

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


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

    Кроме того Руссиновича книга не помешает.
  • dreamse (08.07.08 20:44) [2]
    > Украинец   (08.07.08 20:37) [1]

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

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

    В исходниках есть батник компиляции, он указывает на компилятор delphi и затем на Link.exe от MASM. Но при запуске появляються какие то ошибки компиляции.
  • Украинец (08.07.08 20:47) [3]

    > dreamse   (08.07.08 20:44) [2]


    Во 1-х под 64 оно работать не будет(можно будет попробовать шаманство с FreePascal, но это не гарантированно), во вторых будут странности с расширением функциональности драйвера, все или не будет работать или будет работать странно, по причине хитрых взаимодействий функций пользовательского режима и режима ядра.
  • Игорь Шевченко © (08.07.08 20:49) [4]
    Драйверы надо писать на С (без ++)
  • ketmar © (08.07.08 20:50) [5]
    >Драйвер написан на Delphi
    плюнь в лицо тому, кто это натворил и выгони его из своего дома.

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

    ---
    Do what thou wilt shall be the whole of the Law.
  • dreamse (08.07.08 20:52) [6]
    Есть ли еще варианты для перехвата запуска программ (exe, com, scr) без использования драйвера ? Именно перехват а не отслеживание (в связи с тем чтобы отслеживаемый файл не успел напакостить пока его не убили)

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

    Желательно на Delphi :) Других языков программирования я пока не знаю :(
  • Игорь Шевченко © (08.07.08 20:53) [7]

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


    audit настрой - оно тебе в Event log будет писать, какие процессы запускались и зачем
  • dreamse (08.07.08 20:54) [8]
    К вопросу о драйвере:

    не весь проект, а pas файл для ознакомления: http://www.prog-gate.pp.ru/fido7.ru.delphi.talk/664.html
  • dreamse (08.07.08 20:55) [9]
    > Игорь Шевченко ©   (08.07.08 20:53) [7]

    Это все конечно хорошо :)
    Но повторюсь! Мне нужен не лог того что запускалось, а перехват запуска.
  • VirEx © (08.07.08 20:56) [10]

    > Dreamse

    http://kladovka.net.ru/index.cgi?pid=list&rid=456
    может чего и поймешь
  • ketmar © (08.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.
  • Игорь Шевченко © (08.07.08 20:58) [12]
    ketmar ©   (08.07.08 20:56) [11]

    Собственно, локальную политику безопасности в винде не отменили. Автор  же не говорит, нафига ему потребовалось дварковать запускаемые процессы влэндишным способом, но наверняка все такие решения уже есть в настройках той самой политики
  • ketmar © (08.07.08 21:00) [13]
    >[12] Игорь Шевченко © (2008-07-08 20:58:00)
    скорее всего ты прав. но это ж не интересно…

    ---
    Understanding is not required. Only obedience.
  • 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 эх ... давно бы мне драйвер скомпилили я бы и отстал
  • ketmar © (08.07.08 21:08) [15]
    >[14] dreamse (2008-07-08 21:05:00)
    >В связи с этим прошу больше на локальные политики не посылать :) Есть задача, нужно
    >её как то решить…

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

    ---
    Do what thou wilt shall be the whole of the Law.
  • Игорь Шевченко © (08.07.08 21:09) [16]

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


    Ты работаешь в Microsoft ?
  • Украинец (08.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 © (08.07.08 21:13) [18]
    >[14] dreamse (2008-07-08 21:05:00)
    кстати, родной: а кто это тебе на свисте позволит всякие неподписаные драйвера втыкать?
    а про свистуx64 как?

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

    ---
    Understanding is not required. Only obedience.
  • dreamse (08.07.08 21:17) [19]
    > ketmar ©   (08.07.08 21:08) [15]

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

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

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

    А вы ?
  • dreamse (08.07.08 21:18) [20]
    > ketmar ©   (08.07.08 21:13) [18]

    Скажите мне умные люди: Как сделать перехват нормальный запуска процесосв на Delphi?
  • kernel © (08.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
  • Украинец (08.07.08 21:31) [22]

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


    Подписать на год всего 400$
  • Украинец (08.07.08 21:35) [23]

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



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


    Ну сделал ты человеку медвежью услугу, а ПО прослывёт глючным.
  • ketmar © (08.07.08 21:36) [24]
    >[19] dreamse (2008-07-08 21:17:00)
    за метлой. немедленно. и работать по своей прямой специальности.

    ---
    Understanding is not required. Only obedience.
  • blackman © (08.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 © (08.07.08 21:42) [26]

    > dreamse

    Все же советую начать изучать С и основы написания драйверов под Windows. Это занятие и с нормальными и предназначенными для этого инструментами сродни постройке корабликов в бутылках, а ты еще хочешь строить эти кораблики без участия рук и с завязанными глазами.
  • Игорь Шевченко © (08.07.08 21:52) [27]

    > А вы ?


    Я в первую очередь не желаю странного, в частности самопального перехвата запуска процессов, каковой перехват делается как минимум тремя стандартными способами.
  • dreamse (08.07.08 22:00) [28]
    > Игорь Шевченко ©   (08.07.08 21:52) [27]

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

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

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

    А я бы в свою очередь был бы очень благодарен любой подсказке, кроме конечно слов что делать что то не нужно
  • Игорь Шевченко © (08.07.08 22:03) [29]
    dreamse   (08.07.08 22:00) [28]


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


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


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


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


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


    Ты название софта скажи, чтобы никто из близких/родственников/знакомых его по незнанию не купил.
  • dreamse (08.07.08 22:16) [30]
    > Игорь Шевченко ©   (08.07.08 22:03) [29]

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

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

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

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

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

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

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

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

    Решение будет идти встраиваемым модулем для нашего специализированного софта.
  • Eraser © (08.07.08 22:26) [31]
    > [0] Dreamse   (08.07.08 20:34)

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

    драйвер это самая самая крайняя мера. надо трижды задуматься, а потом задуматься еще раз, прежде чем выбрать этот вариант.
  • DVM © (08.07.08 22:29) [32]

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

    заработает ли под обычным пользователем в Vista?
  • Eraser © (08.07.08 22:31) [33]
    нет, не уверен даже что заработает под обычным пользователем в xp.
    но на то есть манифест. драйвер точно под обычным польззователем не заработает, а в vista64 не заработает и под админом )
  • Украинец (08.07.08 23:03) [34]

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


    Кетмар, ну вам разве не стыдно. Я лично люблю чтобы убрано было чисто, а не как нибудь. А как этот человек пишет программы я уже понял...
  • dreamse (08.07.08 23:14) [35]
    Удалено модератором
  • Украинец (08.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.
  • Украинец (08.07.08 23:27) [37]

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


    Можешь попробовать заменить отладчик [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
  • Rouse_ © (08.07.08 23:35) [38]

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


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

    Млин - у меня дежавю? Я думал только один образчик сего чуда есть, а оказывается нэт, метаморфируются они, итить их за ногу :)))
    Жаль нельзя Девида Блейна вспомнить...
  • umbra © (08.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) с хелпом
  • Игорь Шевченко © (08.07.08 23:50) [40]

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


    вам жалко потратить денег на НОРМАЛЬНОЕ решение ? В таком случае озвучь название софта, чтобы компании его тоже не покупали.
  • DRG (09.07.08 00:43) [41]
    Удалено модератором
  • Petr V. Abramov © (09.07.08 01:08) [42]

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

    уж слишком он специализиованным и нужным специалистам софт должен быть, чтоб для установки нужно было иметь право ставить драйверы. Софт точно будет в top-10 "головная боль админа" после разнообразных клиент-банков.
  • umbra © (09.07.08 01:39) [43]

    > уж слишком он специализиованным и нужным специалистам софт
    > должен быть, чтоб для установки нужно было иметь право ставить
    > драйверы. Софт точно будет в top-10 "головная боль админа"
    > после разнообразных клиент-банков.
    >

    и антивирусов :)
  • Dreamse (09.07.08 05:19) [44]
    > Игорь Шевченко ©   (08.07.08 23:50) [40]

    При стоимости софта 2 000 $ 10 000 $ отдавать за антивирусное решение это слегка перебор
  • ketmar © (09.07.08 09:42) [45]
    >[34] Украинец (2008-07-08 23:03:00)
    >Кетмар, ну вам разве не стыдно. Я лично люблю чтобы убрано было чисто, а не как
    >нибудь. А как этот человек пишет программы я уже понял…

    тоже правильно. ну а что с ним делать тогда? но если будет с метлой — можно потребовать подмести ещё раз, и ещё, и ещё. глядишь, научится. на компост всё-таки жаль пускать, не всем же программистами быть.

    ---
    Understanding is not required. Only obedience.
  • ketmar © (09.07.08 09:44) [46]
    >[38] Rouse_ © (2008-07-08 23:35:00)
    >Я думал только один образчик сего чуда есть, а оказывается нэт, метаморфируются
    >они

    Розыч, к сожалению, один выпустили в «дикую природу». а сейчас сам знаешь — еда токсичная, вода токсичная, воздух токсичный…

    ---
    Understanding is not required. Only obedience.
  • Rouse_ © (09.07.08 12:32) [47]
    У меня тут на машине 3 экземпляра таких чуд есть, есесно ничего серьезного не представляют. Один IOPM скидывает, второй умеет делать BEEP а третий как раз это чудо которое PsSetCreateProcessNotifyRoutine использует с обрывками DDK.

    Когда настроение плохое, периодически улучшаю его просмотром исходного кода сиих образчиков :)
  • ketmar © (09.07.08 13:44) [48]
    >[47] Rouse_ © (2008-07-09 12:32:00)
    злюка ты. а люди ведь старались, писали…

    ---
    Do what thou wilt shall be the whole of the Law.
  • Rouse_ © (09.07.08 13:44) [49]
    Их бы старания да в нужное русло ;)
  • Украинец (09.07.08 16:23) [50]
    Кстати, по поводу драйверов на Delphi есть даже серьезная статья http://www.rsdn.ru/article/delphi/kmdelphi.xml

    Вот только интересно, какую мысль проследовали авторы, когда ее писали - убрать конкурентов?
 
Конференция "Прочее" » Компиляция драйвера на Delphi
Есть новые Нет новых   [134439   +39][b:0.001][p:0.001]