Sergey_G.: Как добавить свою DLL к проессу explorer.exe
Sergey_G.
Member
Автор темы
221/4381 ответов
23 года на iXBT, с февраля 2002
Чаще пишет в "Эл. устройства" (57%)
Инфо Ответить
S
Sergey_G. MemberАвтор темы
12 лет назад / 08 января 2013 18:28
Я сделал небольшую программу для эмуляции мультимедийных клавиш на ноуте, где их нет. Теперь мне хочется не создавать отдельный процесс, а использовать существующий. Размер проги 5 кб, поэтому расходовать на отдельный процесс 5 Мб как-то нелогично. Знаю что можно сделать dll и подгрузить ее в explorer.exe. Но где это прописывать в реестре? Смогй найти только пример для создания shell extension. Но мне надо проще, без применения COM. Система Windows XP.
loyolla
Member
509/536 ответов
19 лет на iXBT, с декабря 2005
Чаще пишет в "Программирование" (95%)
Инфо Ответить
l
loyolla Member
12 лет назад / 08 января 2013 18:58
Sergey_G.

Это?
iamphet
Expert
1551/2308 ответов
23 года на iXBT, с сентября 2001
Чаще пишет в "Программирование" (67%)
Россия, Москва
Инфо Ответить
i
iamphet Expert
12 лет назад / 08 января 2013 19:05
Предлагаю взглянуть на это с другой стороны: ты хочешь, чтобы при падении твоего кода рушился весь эксплорер?
Sergey_G.
Member
Автор темы
222/4382 ответов
23 года на iXBT, с февраля 2002
Чаще пишет в "Эл. устройства" (57%)
Инфо Ответить
S
Sergey_G. MemberАвтор темы
12 лет назад / 08 января 2013 21:02
loyolla
Это?
Не подходит, мне надо не внедрять dll, а чтоб explorer ее самостоятельно загружал.

iamphet
В этой программе ошибок нет.
Partisan
Member
1479/10148 ответов
25 лет на iXBT, с декабря 1999
Чаще пишет в "Политика" (54%)
Россия
Инфо Ответить
P
Partisan Member
12 лет назад / 08 января 2013 21:17
loyolla
Это?

Добрый самаритянин подсказывает, как писать вирус.
Джамаль
Member
961/39419 ответов
24 года на iXBT, с июня 2000
Чаще пишет в "Общий" (21%)
Россия, Самара
Инфо Ответить
Д
Джамаль Member
12 лет назад / 09 января 2013 11:32
Sergey_G.
Смогй найти только пример для создания shell extension. Но мне надо проще, без применения COM

А нафига там СОМ-то? Оно и без него, насколько я знаю, делается
Sergey_G.
Member
Автор темы
223/4384 ответов
23 года на iXBT, с февраля 2002
Чаще пишет в "Эл. устройства" (57%)
Инфо Ответить
S
Sergey_G. MemberАвтор темы
12 лет назад / 09 января 2013 17:45
Джамаль
Shell Extension представляет соой COM-сервер, он прописывается в реестре не по имени, а по guid, ну и т.д. В общем не хочу связываться. Я знаю что должен быть какой-то способ загружать dll по имени, т.к. неоднократно выкидывал вирусы, использующие этот механизм.
Джамаль
Member
962/39437 ответов
24 года на iXBT, с июня 2000
Чаще пишет в "Общий" (21%)
Россия, Самара
Инфо Ответить
Д
Джамаль Member
12 лет назад / 09 января 2013 19:58
Sergey_G.

Ну, можно вписать свою библиотеку в AppInit_DLLs, но это могут счесть вирусом и настучать по репе
Sergey_G.
Member
Автор темы
224/4385 ответов
23 года на iXBT, с февраля 2002
Чаще пишет в "Эл. устройства" (57%)
Инфо Ответить
S
Sergey_G. MemberАвтор темы
12 лет назад / 10 января 2013 16:39
AppInit_DLLs во все процессы добавит, что мне совершенно не нужно.
supermaxus
Junior Member
4/7 ответов
12 лет на iXBT, с января 2013
Россия
Инфо Ответить
s
supermaxus Junior Member
12 лет назад / 12 января 2013 13:34
Sergey_G.:
Размер проги 5 кб, поэтому расходовать на отдельный процесс 5 Мб как-то нелогично. Знаю что можно сделать dll и подгрузить ее в explorer.exe. Но где это прописывать в реестре?
Че-то вы загнули. Посмотрите в таск-менеджер, там висит smss.exe размером в 420 кб, а никак не 5 Мб. Даже с учетом внутренних структур процесса - это не 5 Мб. ИМХО, не парьтесь на счет процесса.

explorer.exe будет подгружать только те dll, с которыми статически слинкован, либо те, которые его код подгружает динамически. В любом случае, первый же антивирус, как сказали, настучит "в репу" вашей dll, когда поймет, что вы пытаетесь ее туда внедрить.

Заметьте, что svchost.exe, который предназначен для запуска dll, копирует себя в памяти для каждой dll, а не грузит их все в один(свой) процесс. Т.о. косвенно имеем подтверждение, что требуемого вами способа в win не существует. И более того,он опасен с точки зрения безопасности ОС.

Исправлено: moderator-Kid, 14.01.2013 14:23

Джамаль
Member
963/39504 ответов
24 года на iXBT, с июня 2000
Чаще пишет в "Общий" (21%)
Россия, Самара
Инфо Ответить
Д
Джамаль Member
12 лет назад / 14 января 2013 08:14
supermaxus
Заметьте, что svchost.exe, который предназначен для запуска dll

Ммм, он не для этого предназначен Запуск DLL (а точнее, вызов какой-нибудь функции) делается с помощью rundll32, а svchost это домашний процесс для запуска сервисов.

Добавление от 14.01.2013 08:17:

Sergey_G.
AppInit_DLLs во все процессы добавит, что мне совершенно не нужно

Чё, проблема? Ну тогда в стартовом коде DLL делаем проверку, в чьём контексте мы грузимся, и если это не explorer.exe, то вылетаем.

И вся любовь...
supermaxus
Junior Member
10/17 ответов
12 лет на iXBT, с января 2013
Россия
Инфо Ответить
s
supermaxus Junior Member
12 лет назад / 14 января 2013 12:40
Джамаль:
Ммм, он не для этого предназначен Запуск DLL (а точнее, вызов какой-нибудь функции) делается с помощью rundll32, а svchost это домашний процесс для запуска сервисов.
...
И для этого тоже: http://ru.wikipedia.org/wiki/Svchost.exe
svchost.exe в семействе операционных систем Microsoft Windows (2000, XP, Vista, Seven) — главный процесс (англ. Host process) для служб, загружаемых из динамических библиотек.

Но rundll32, конечно, тоже рулит.

Добавление от 14.01.2013 12:47:

Джамаль:
.. то вылетаем. И вся любовь...
Это как это? DLL_PROCESS_DETACH хто нашей dll сделает? А если в процессе загрузки к нам ОС опять полезет делать DLL_THREAD_ATTACH или DLL_THREAD_DETACH? А ведь полезет..
Ваш ответ:

Нет значка Нет значка Вот тут! Лампочка Восклицание Вопрос Класс! Улыбка Злость Огорчение Поговорим? Краснею Подмигивание Ругаю ОдобряюBIUdelSxsupxsuboffsp spoilerqurlimgvideo• list1. list1 codeprecenter-hr-rusQWE→ЙЦУ
файлыочистить
Ваше имя: Авторизуйтесь Предпросмотр В полную форму
вставить выделенную цитату в окно ответа
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Если Вы считаете это сообщение ценным для дискуссии (не обязательно с ним соглашаться), Вы можете поблагодарить его автора, а также перечислить ему на счет некоторую сумму со своего баланса (при отзыве благодарности перечисленная сумма не будет вам возвращена).
Также вы можете оценить сообщение как неудачное.
В течение суток можно 20 раз оценить сообщения разных участников (купите Premium-аккаунт, либо оплачивайте оценки сверх лимита).
Последние обсуждения в Конференции
04:05Выбор посудомоечной машины Бытовая техника
04:00Украина после Евромайдана. Взгляд из России. Вход для лиц с русофобскими взглядами закрыт Политика
03:55Сисадминская курилка Администрирование
03:50Я плакаль... (картинка прикол) Юмор
03:47Ресиверы Yamaha - пообщаемся? FAQ в первом посте ДК аудио
03:44Вопросы знатокам o S.M.A.R.T. Накопители
03:41Апрель. Хрустики повыползали на дороги. Осторожно! Мотоциклы. Мототема. Авто
03:40Отзывы о PrivalSystems (аналог skype) Интернет
03:40Выбор цветного струйного МФУ формата А3 в офис Периферия
03:28Как выразить АНАЛИТИЧЕСКИ значения корней алгебраического уравнения 5-й степени через значения корней его резольвенты 6-й степени (которые найдены, например, численно) Наука
03:28Поговорим о припоях и флюсах Эл. устройства
03:18Path of Exile. Врываемся в приятно выпуклый эндгейм PoE 2 6 декабря 2024-го и ждём 3.26 в первой части когда-нибудь! Игры
03:15Поделитесь своим настроением. Какое оно у вас сейчас? Флуд
02:52Выбор бюджетного "цифрового" (китайского) усилителя Стерео
02:38Какие триллеры посоветуете? Кино
02:35Выбор матраса Ремонт
02:27Выбор и настройка оперативной памяти DDR5 (читать первую страницу!) Память
02:07Выбор куртки для межсезонья и зимы Общий
01:37Куплю/продам киберрубли KOMOK
01:35Правильный захват с кассет vhs Видеозахват
23:59вчераНовый смартфон Samsung за 120 долларов. Представлен Samsung Galaxy A06 5G: 50 Мп, 5000 мАч, IP54 и 4 года обновлений
23:51вчераMicrosoft создала квантовый чип Majorana 1: миллион кубитов на ладони
22:46вчераРоссийские астрономы обнаружили редкую двойную звезду с магнитным белым карликом Gaia 19cwm
22:35вчераПока видеокарты GeForce отсутствуют либо дорожают, пользователи активно переходят на Radeon. Как минимум так говорит статистика для Южной Кореи
22:16вчераЕсли хочется GeForce RTX 50, но максимально дёшево. Существование RTX 5050 Laptop подтверждено
22:06вчераУчёные «просветили стену» из титана в поисках аксионов на ускорителе в Гамбурге
21:59вчераGeForce RTX 5090 оказалась в семь раз слабее RTX 4090. Nvidia убрала поддержку PhysX из свежего драйвера для видеокарт RTX 50
21:48вчера800 л.с., рама и полный привод. Опубликованы фото супермощного Tank 400
21:45вчераTesla строит первую общедоступную зарядную станцию для электрогрузовиков в Лос-Анджелесе
21:39вчераNASA завершило сборку первого двигателя RS-25 для миссии «Артемида V»