![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| SvetRus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
///Лирическая часть.
Задача такая. Есть 2 программиста - А и Б. А пишет программу... скажем аналог ICQ. Раздаёт её пользователям. Иногда обновляет её. И знает что Б его очень-очень не любит. Б пишет программу, которая должна засекать наличие на компьютерах в сети творчества А. Мы "играем" на стороне Б. /////Суть проблемы. Необходимо засечь запущенно ли приложение. Просто искать по имени процесса не даст нужной эффективности. Я порылся по форуму, нашёл вот этот топик http://forum.vingrad.ru/topic-75232.html , появилась идея сканировать подобным способом все открытые процессы и сравнивать список подгруженных dll-ок с необходимыми для работы приложения А(а используется их в приложении А порядка 20). Кто-нибудь сталкивался с подобной задачей? Подскажите в каком направлении копать ;) |
|||
|
||||
| DRUID3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 20.6.2005 Где: Kyyiv Репутация: нет Всего: 9 |
Советую начать с детального изучения уголовного кодекса и тюремных нравов
-------------------- Every time if you use Linux, you are joined to the communism... практика - критерий истины ... отделенной от нас пропастью субъективного восприятия... |
|||
|
||||
| SvetRus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
Уточняю. Есть приложение клиент - сервер. Недобросовестные юзеры ставят себе приложение А и с помощью него хукаются в клиентскую часть, или генерируют ложные пакеты. Задача создать приложение Б, без которого доступ к серверу будет невозможен, а само приложение следило бы за честностью подключения. Вопрос в том, как опознать врага.
Это сообщение отредактировал(а) SvetRus - 20.6.2008, 00:01 |
|||
|
||||
| DRUID3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 20.6.2005 Где: Kyyiv Репутация: нет Всего: 9 |
опознают ли "врага" радиостанция и радиоприемник? А базовая станция и мобила? .... Чтобы исключить подсоединение "левых" юзеров, клиент-сервер должны меняться ключами (способов - уймище!!!). Если Вы по одну сторону баррикад в сервер тоже не составит труда внести изменения. А вот то, что хотите Вы, попахивает вредоносным софтом даже если намерения и благие.
-------------------- Every time if you use Linux, you are joined to the communism... практика - критерий истины ... отделенной от нас пропастью субъективного восприятия... |
|||
|
||||
| SvetRus |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
Ключи к сожалению не решают всей проблемы, при хуке в клиент защита ключами/шифрованием обходится.
P.S. получается Данилов и Касперский злостные нарушители УК? xD |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
SvetRus, твоя задача - это палка о двух концах. На любое действия Б против А, последний найдёт своё противодействие. И так будет пока кто-то из вас не сделает качественный скачок, например не напишет драйвер, который бы выгружал юзермодное приложение А. Если же А тоже напишет драйвер, то тут всё становится интересней, в конце концов всё будет зависеть от того, кто из вас первым грузится в систему, тот и победит.
Если же тебя интересуют пока простые методы, то их масса. Помимо имени процесса, ты можешь получить имена окон, если таковые имеются. Можешь расчитать контролью сумму файлов процессов(т.е. тех exe файлов, которые запущены) и найти среди них А(если его конрольная сумма тебе известна). Далее, можно идентифицировать файл по каким-то внутренним отличительным особенносьтям. Начиная с PE заголовка(названия секций, дата создания, директория ресурсов) и заканчивая сигнатурным анализом кода. Но ты ведь понимаешь, что каждый из этих методов имеет свои тонкие места и если А заинтересован в этом и развивается, то и тебе придётся не спать Скажу тебе, что пока вы оба в юзермоде, ты находишься в более комфортных условиях, нежели автор А. С dll'ками вариант плохой, его сразу отбрось. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| SvetRus |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 17.6.2008 Репутация: нет Всего: нет |
W4FhLF, Я нахожусь в более комфортных условиях, т.к. конечный пользователь больше заинтересован в использовании клиент-сервера, а использование творчества А это некий соблазн. Выгружать приложение А я не собираюсь, целью будет написать приложение которое будет посылать разрешение на коннект к серверу если А не обнаружено. И не разрешать подключение к серверу если А запущено.
А теперь по части советов-
По части библиотек... хочу проверить на сколько индивидуален "минимальный" набор библиотек для приложения А. проверил 3 версии этой программы и выявил список из 40+ библиотек присутствующих в обязательном порядке. Этот список врядли даст возможность заявить о том что некое приложение принадлежит к классу А. Но вполне подойдёт чтобы сузить список дальнейшего поиска. Может подскажешь где искать информацию по PE заголовкам и сигнатурному анализу кода? У данного приложения существуют характерные участки кода, но моя основная специализация защита данных при передаче, и поэтому я даже не знаю с чего начать Это сообщение отредактировал(а) SvetRus - 20.6.2008, 10:34 |
||||||||
|
|||||||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Тогда, скорее всего, дойдёт до того, что А будет перехватывать твоё "неразрешение" и подменять его "разрешением". Я бы так сделал) Пускай меня палят, какая разница? В работу никто не вмешивается, остаётся только перехватить и подменить. "в обязательном порядке" - это, скорее всего, только на твоей системе. Приложение А использует какие-то относительно редкие компоненты системы? Без которых А работать не может. Вот за это я бы и цеплялся.
http://www.nf-team.org/drmad/zf/zf5/zf5_010.htm http://www.nf-team.org/drmad/zf/zf5/zf5_011.htm http://www.nf-team.org/drmad/zf/zf5/zf5_012.htm -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |