Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2010, 22:26   #1
Market
Новичок
Джуниор
 
Регистрация: 18.03.2010
Сообщений: 3
По умолчанию Поиск программы в процесах, а также блокиро....

Приветствую всех участников форума.

Не могли бы вы мне помочь, по данному вопросу, всем чем угодно, приветствуются все советы. Я не начинающий программист, но плохо знаю как работать с сетью и процессами. Задача заключается вот в чем.

Есть программа клиент и программа сервер. Между программой сервером и программой клиентом установлена связь через Интернет (TCP). Как общается, точнее какие пакеты программа сервер и программа клиент между собой посылает не известно. Однако существует ряд программ на стороне клиента которые могут перехватить пакет и изменить его, далее послать на сервер тем самым обманув его для получения выгоды. (Список всех программ нарушителей известен )

Что требуется сделать:

Требуется защитить сервер от обмана. Придуманные мной методы:
На стороне клиента запускать клиент и собственную программу защиты которая будет вылавливать программы нарушители. А также запустить собственную программу защиты на сервере, которая будет общаться с программой защитой клиента. Если программа защиты клиента нашла программу вредителя, то она посылает пакет программе защиты сервера и программа защиты сервера блокирует определенный порт программы сервера, для данного ip адресе клиента. Или Просто программа защита клиента, не пускает программу клиент на данный порт программы сервера.

Однако я не знаю как мне обнаружить программу вредителя ?
и как можно прослушивать порт программы сервера и заблокировать его для определённых ip адресов?
Какие существуют методы для поиска нужной мне программы?


Не могли бы вы дать советы как поступить в данной ситуации, плох ли мой метод? я буду благодарен за любые ссылка на разные статьи и советы.
Market вне форума Ответить с цитированием
Старый 18.03.2010, 23:10   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Цитата:
то она посылает пакет программе защиты сервера и программа защиты сервера блокирует определенный порт программы сервера
Гг, а что в таком случае мешает перехватывать пакеты не клиента, а программы-защитника?
Так не пойдёт. Если неохота возиться с SSL, просто защищай передаваемые данные контрольной суммой, алгоритм расчёта которой знает только сервер и клиент. Тогда даже подменив данные, злобный хакир не сможет их правильно подписать, след-но сервер их не примет, придётся ломать ломать программу-клиент, а это уже совсем другая история.
пыщь
JTG вне форума Ответить с цитированием
Старый 18.03.2010, 23:24   #3
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Если я правильно понимаю у вас есть сервер онлайн-игры и вы хотите сделать для него защиту? Сразу скажу что помогу пока только теорией.
Для начала стоит уяснить что читеры могут сделать:
- Выключить вашу программу
- Воспользоваться программой для сокрытия чит-программы
- Взломать вашу программу, так что б ее не пришлось выключать.
Первое что вам нужно сделать, если и будет локальный модуль защиты, то либо он должен быть встроен в exe-игры. Либо должен быть выполнен в виде wrapper-а или же элементарный метод - модификация одного - двух байтов в exe-файле и последующий запуск. В программе защиты проверяет запущен ли клиент, как только хендл на процесс утрачивается - обратная модификация. Или же можно сделать модификацию самого процесса, это даже лучше.

По идее из KernelMode можно контролировать все дескрипторы процесса, это уже метод поизящней и посложней. С его помощью можно будет узнать открыт ли процесс еще какой программой. Естественно не помешает циклически проверять(раз в 1-2 секунды) не запущены ли вредоносные программы. Но! Если они и запущены, не стоит их закрывать, модифицируйте их память так что б они сами отказывались бы работать - это будет самым серьезным ударом, т.к. визуально это будет напоминать глюки.

Ну и разумеется нужно будет защитить свою программу от модификации. Для этого подойдет сокрытие процесса программы.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 19.03.2010, 18:38   #4
Market
Новичок
Джуниор
 
Регистрация: 18.03.2010
Сообщений: 3
По умолчанию

Ivan_32
Вы угадали это для игры.

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


на счет 2-3 вариантов такая возможность есть.

Посоветуйте пожалуйста какие нибудь хорошие книги или может статьи про KernelMode и про то как можно встроить свою программу в другую и самое главное про перехваты пакетов и перехваты сокетов.

Ivan_32 Вообще на этой защите можно хорошо заработать, если вас это заинтересовало, то давайте это обсудим.

Последний раз редактировалось Market; 19.03.2010 в 18:43.
Market вне форума Ответить с цитированием
Старый 19.03.2010, 18:49   #5
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Windows Internals - Марка Руссиновича. WASM.RU, у них еще конференция в джаббере есть - могут проконсультировать если что(wasm@conference.jabber.ru). По части встраивания - это вам про вирусы стоит почитать, у Billy Belcebu был Туториал по написанию вирусов под Win32. Там как раз рассказывается про внедрение в PE-Exe. Ну и статьи раздела "Секреты Win32" - тоже очень полезны.

Кстати, ProcessExplorer вроде как и без драйвера получает список открытых дескрипторов на процесс(OpenProcess), думаю, если покопаться в дизассемблах - вполне можно найти код за это отвечающий.
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Старый 19.03.2010, 19:29   #6
Market
Новичок
Джуниор
 
Регистрация: 18.03.2010
Сообщений: 3
По умолчанию

спасибо Ivan_32 но к сожалению я не знаю assambler.

У меня последний вопрос, эта игра запускается не по-обычному, то есть сам exe файл переименован в game.bin, а игра запускается через дополнительную программу start.exe, самое главное если переименовать game.bin в game.exe то она запустить и после загрузки игры при старте меню, игра пишет что ошибка запуска. Как мне написать свою программу для запуска game.bin как вообще я сам могу узнать как её запускает start.exe, вот этого я не как не могу понять.
Market вне форума Ответить с цитированием
Старый 19.03.2010, 20:07   #7
Ivan_32
somewhere else
Участник клуба
 
Аватар для Ivan_32
 
Регистрация: 17.07.2008
Сообщений: 1,409
По умолчанию

Должно быть только дизассемблером, у этой самой start.exe довольно простой код скорее всего. А что за игра если не секрет?
"Тяжело в учении, легко в бою" - А.В. Суворов
Ivan_32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть ли в моих процесах вирус? Slavik Безопасность, Шифрование 10 27.05.2009 18:04
на каком языке создаются такие программы ,какое СУБД и структура реализации БД,также на каком языке соста оля87 Помощь студентам 13 25.05.2009 18:08
Решение задачи на нахождение площади и обьема куба(а также вписанного шара) soldm Помощь студентам 4 30.09.2008 08:32