Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как перехватить запуск определённого приложения? 
:(
    Опции темы
Riddik
Дата 4.5.2009, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Можно ли это сделать, чтобы пресечь запуск этого приложения, например, запросить пароль и т.д.?
PM MAIL   Вверх
azesmcar
Дата 4.5.2009, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Riddik

Средствами виндоуз, установить права доступа, к примеру дать доступ для запуска приложения только одному пользователю и убрать со всех остальных.
Если нужно просто перехватить запуск - тогда вопрос
как будет идти идентификация процесса? т.е. каким образом вы поймете что это именно тот процесс который нужен? file name, path? файл можно переименовать или переместить. Вообще задача немного непонятная.

Добавлено через 4 минуты и 24 секунды
Еще варианты - плоды больного воображения smile 

1. Перехватить CreateProcess
2. Подключать DLL ко всем запускаемым процессам (через регистры или другими методами) и проверять при запуске
3. Зашифровать файл и позволять запуск только через свое приложение (которое расшифрует перед запуском)

вариантов много, и у каждого свои проблемы smile
PM   Вверх
Riddik
Дата 4.5.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



file name или path не будут изменены. Пользователь один - он же админ. Иногда имеет доступ к компу другие люди, нужно просто не разрешать иногда им запускать один exeшник.
PM MAIL   Вверх
azesmcar
Дата 4.5.2009, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Цитата

file name или path не будут изменены. Пользователь один - он же админ. Иногда имеет доступ к компу другие люди, нужно просто не разрешать иногда им запускать один exeшник.

Если эти пользователи сидят по администратором - то в идеале никак нельзя. Все что вы сделаете - администратор может с легкостью убрать


А так, самый легкий способ это подключать ДЛЛ ко всем стартующим приложениям и проверять GetModuleFileName. Если наша программа, остаемся висеть, если нет - отгружаемся.
Путь к длл записать в 
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
Есть исключения, ДЛЛ не подключается к тем программам, которые не подгружают user32.dll (таких приложений очень мало).
Проблема: Пользователь может удалить из регистров этот путь и тогда он все прекрасно запустит.
Решение есть, но они все извращенные и как ни странно тоже не идеальные.

Это сообщение отредактировал(а) azesmcar - 4.5.2009, 10:42
PM   Вверх
GoldFinch
Дата 4.5.2009, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



проще всего - заразить этот .ехе своим кодом
PM MAIL ICQ   Вверх
azesmcar
Дата 4.5.2009, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Riddik

а шифровка программы не подходит?

Добавлено через 55 секунд
Цитата

проще всего - заразить этот .ехе своим кодом 

конечно, проще простого. Только надо обойти антивирусы.
PM   Вверх
Riddik
Дата 4.5.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



GoldFinch, как можно заразить своим кодом, интересно?



azesmcar, скорее всего не подойдёт. В принципе,  в этом случае можно не волноваться что администратор или другие пользователи иогут удалить из регистров этот путь и т.д.

Вот надо попробовать заразить exe своим кодом, как это делается?
PM MAIL   Вверх
azesmcar
Дата 4.5.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Цитата(Riddik @  4.5.2009,  11:21 Найти цитируемый пост)
Вот надо попробовать заразить exe своим кодом, как это делается? 

удалил, если не ошибаюсь это нарушение правил форума
Riddik

Ассемблером надеюсь владеете в совершенстве?

Это сообщение отредактировал(а) azesmcar - 4.5.2009, 11:35
PM   Вверх
Riddik
Дата 4.5.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



azesmcar, нет, к сожалению. Значит, только ассемблером? 
PM MAIL   Вверх
azesmcar
Дата 4.5.2009, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 5
Всего: 211



Цитата

azesmcar, нет, к сожалению. Значит, только ассемблером?  

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

Это сообщение отредактировал(а) azesmcar - 4.5.2009, 11:46
PM   Вверх
Riddik
Дата 4.5.2009, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



Я тут подумал, может дезассемблить этот файл, чуть изменить, а потом опять.. smile 
PM MAIL   Вверх
GoldFinch
Дата 4.5.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



"заразить" наверное не совсем верный термин, правильнее наверное "расширить функциональность" программы
для этого есть несколько подходов

наиболее простой - написать длл на ЯВУ типа С++ и добавить эту длл в импорты самого .ехе или длл которые этот .ехе использует (не системных конечно). антивирусы на такое "заражение" внимания не обращают

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


PM MAIL ICQ   Вверх
Riddik
Дата 4.5.2009, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 2.12.2006

Репутация: нет
Всего: нет



GoldFinch, спасибо.
PM MAIL   Вверх
DrHex
Дата 7.5.2009, 02:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 2.5.2009

Репутация: нет
Всего: нет



- Написать свой пакер при запуске запрашуеш пароль, если нормально разпаковываеш, загрущаеш exe.

- Устанопить хук на создание процесса(антивирусники могут ругатся)


--------------------
google.com и это все.
PM MAIL   Вверх
Lazin
Дата 7.5.2009, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 8
Всего: 154



Цитата(Riddik @  4.5.2009,  10:11 Найти цитируемый пост)
Можно ли это сделать, чтобы пресечь запуск этого приложения, например, запросить пароль и т.д.?

можно установить свое приложение отладчиком для другого, это прописывается где-то в реестре

Добавлено через 1 минуту и 11 секунд
Цитата(GoldFinch @  4.5.2009,  12:02 Найти цитируемый пост)
"заразить" наверное не совсем верный термин, правильнее наверное "расширить функциональность" программы
для этого есть несколько подходов

наиболее простой - написать длл на ЯВУ типа С++ и добавить эту длл в импорты самого .ехе или длл которые этот .ехе использует (не системных конечно). антивирусы на такое "заражение" внимания не обращают

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

и все это может приводить к нестабильной работе системы smile 
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0973 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.