Глобальный системный хук

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Глобальный системный хук

Сообщение ANDLL » 06.05.2005 (Пт) 17:56

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

Собственно вопрос.
а) Чем так отлично словосочетание NativeDLL? ОС Windows расширяется либо за счет COM-DLL, либо за счет драйверов. Первые на VB создать можно, а про вторые нигде не упоменается.
б) У кого нибудь есть реальные примеры использования таких хуков(кроме SetWindowsHook)? У Windows что, есть какой-то глобальный центр сообщений? Или подразумевается перехват прерываний? Так этого никакой сёрвис не может...

В общем-то это не столько нападка на клевитников, сколько просьба просветить меня темного...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.05.2005 (Пт) 20:42

Native DLL означает "DLL, экспортирующая нужные функции". Любая COM DLL является частным случаем Native DLL, т.к. экспортирует от 2 до 4 обязательных функций.
Отличие DLL от EXE в том, что в ней, как правило, оставлена таблица перемещений, которая позволяет загрузить её в любой процесс. Собственно, ничто не мешает сохранить эту таблицу в обычном EXE, тогда он функционально ничем не будет отличаться от Native DLL.
Установка глобального хука приводит к загрузке кода его обработчика во все процессы в системе, поэтому обработчик обязательно должен находиться в перемещаемом коде.
Отсюда я делаю вывод, что переменная окружения LINK="/FIXED:NO" позволит ставить хуки и из обычных EXE. Примера под рукой нету, но в грядущие праздники, может, и сбацаю чего-нибудь.
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 06.05.2005 (Пт) 20:48

Темыч, спасибо за просвещение :?

Говоря Native DLL я(и другие) подразумевали Dll экспортирующие функции, отличные от 4 стандартных. А вот за примерчик народ(и я), думаю благодарен будет :wink:
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 07.05.2005 (Сб) 4:06

Дык Тёмыч :)

Загрузчик - он хитрый, он же точку входа библиотеки захочет вызвать, чтобы она ему TRUE сказала :) А как она ему это скажет, если у неё с точкой входа экзешника сигнатуры разные? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.05.2005 (Сб) 12:11

GSerg писал(а):Дык Тёмыч :)

Загрузчик - он хитрый, он же точку входа библиотеки захочет вызвать, чтобы она ему TRUE сказала :) А как она ему это скажет, если у неё с точкой входа экзешника сигнатуры разные? :)

Ну и кто после этого "подлый ломатель кайфов"? :-)

Хорошо, ещё одна идея - сделать ActiveX DLL, в ней стандартный модуль, в нём обработчик, а в главной проге передавать адрес этого обработчика. Теперь-то точно должно сканать даже без Native DLL?
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.05.2005 (Вт) 12:11

Идея реализована успешно.

Надеюсь, что это первый-в-мире глобальный хук на чистом VB.

[edit]Аттач перенесён вниз[/edit]
Последний раз редактировалось tyomitch 10.05.2005 (Вт) 22:55, всего редактировалось 1 раз.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 10.05.2005 (Вт) 12:16

Чё-то журнальное я видел у Оловянникова :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.05.2005 (Вт) 12:54

Журнальный не глобальный (в смысле внедрения своего кода повсюду). И шеллхук (тоже был у Оловянникова) - тоже не глобальный.
Изображение

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 10.05.2005 (Вт) 17:04

Ennor писал(а):Н-да, три раза "мы - черви".
И я еще 5 раз :oops:

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 10.05.2005 (Вт) 17:07

Только:
0) Как это выключить нормально;
1) Обрушивается не эксплорер, а dwwin и spoolsv -> синий экран =)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 10.05.2005 (Вт) 18:11

Обратите внимание на время постов Темыча. Ровно три дня минута в минуту =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.05.2005 (Вт) 18:57

Ага. Это у него время общения с народом.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Pocket dj
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 07.05.2005 (Сб) 19:04
Откуда: Москва

Глобальный системный хук

Сообщение Pocket dj » 10.05.2005 (Вт) 19:20

8) Вот чего вы над человеком издеваетесь :?: Может у него времени нету :!: :!: :!: 8)

Pocket dj
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 07.05.2005 (Сб) 19:04
Откуда: Москва

Глобальный системный хук

Сообщение Pocket dj » 10.05.2005 (Вт) 19:22

А вы случайно не знаете как стать пользователем или выше :?: :?: :?: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.05.2005 (Вт) 19:35

модеры, спасите топик :!: :!:
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 10.05.2005 (Вт) 19:35

Pocket dj писал(а):А вы случайно не знаете как стать пользователем или выше

Писать всякие бесполезные посты, вроде этого и набирать посты. Посмотри под твоим именем есть графа "сообщения".
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 10.05.2005 (Вт) 21:59

Pocket dj

Надо вставлять в сообщения побольше смайликов и писать побольше гипер-умных постов типа "помогите ему. он мой кореш. ты не уважаещь его... меня" и т.п.
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.05.2005 (Вт) 22:55

Аллилуйя!! Я сделал это!

Больше не падает.
Вложения
MyVeryOwn.rar
(19.4 Кб) Скачиваний: 473
Изображение

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 10.05.2005 (Вт) 23:01

Run-time error 429
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 10.05.2005 (Вт) 23:02

Run-time error '429':
ActiveX component can't create object

Темыч, ты ваще прогу-то проверял? Или это только у меня?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 10.05.2005 (Вт) 23:03

И проект не открываецца

Couldn't create reference
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.05.2005 (Вт) 23:15

Компонент надо зарегить, TLB надо подключить. Неужели инструкцию писать? :evil:
Изображение

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 11.05.2005 (Ср) 6:41

tyomitch писал(а):Компонент надо зарегить, TLB надо подключить. Неужели инструкцию писать? :evil:


Хороший пример не может жить без ReadMe.txt, постараяйся напиши очень прошу... 8)

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 11.05.2005 (Ср) 7:00

kirrun Надо просто взять и компильнуть заново dll и ехе, чтобы всё работало...

Джеффи
Бывалый
Бывалый
 
Сообщения: 256
Зарегистрирован: 06.03.2005 (Вс) 0:26

Сообщение Джеффи » 11.05.2005 (Ср) 7:01

tyomitch
Ну вот я запустил программу, смотрю на часики, ничего не происходит!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.05.2005 (Ср) 7:23

Если у тебя WindowsXP нажми на кнопку "показать доп. значки".
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.05.2005 (Ср) 12:33

Ну так что в итоге, все удовлетворены и довольны? :-))
Или писать инструкцию?
Изображение

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 11.05.2005 (Ср) 13:05

Я же(в первом сообщении) говорил кроме SetWindowsHook.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 11.05.2005 (Ср) 14:50

Ага.. ясно... все работает...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 11.05.2005 (Ср) 14:54

Возможно, немного не по теме, но у меня тут есть глобальный хук на апю...

ЗЫ. Толькочто просматривая его, сообразил, что сорса я так и не видел... Присмотрелся... А сорс-то на асме! :( Лана.. Пущай будет...
Вложения
Test_MessageBoxA.zip
(10.08 Кб) Скачиваний: 289
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList