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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 16:12   #1
xil
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 98
По умолчанию Система защиты на C#

Доброго времени суток. Пишу лаунчер для одной игры появилась проблема: как не позволить запустить игру пока не запущен сам лаунчер?

Буду рад всем предложениям и идеям =)


P.S. не флудить....
Как вы сформулируете вопрос так вам и ответят
xil вне форума Ответить с цитированием
Старый 08.06.2010, 16:46   #2
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

если нет исходников игры - никак
единственный вариант это написать еще одну прогу которая будет отслеживать запуски игры/лаунчера, только опять же никто не мешает просто закрыть ее через диспетчер задач или не запускать вовсе..

Последний раз редактировалось m0nax; 08.06.2010 в 16:49.
m0nax вне форума Ответить с цитированием
Старый 08.06.2010, 16:56   #3
xil
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 98
По умолчанию

друг может прилепить dll к игре через asm
может можно как нить в этой dll организовать проверку?
Как вы сформулируете вопрос так вам и ответят
xil вне форума Ответить с цитированием
Старый 08.06.2010, 17:19   #4
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Ну если у него получиться искать в процессах твою программу, то все гуд.
Hollander вне форума Ответить с цитированием
Старый 08.06.2010, 17:31   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Если игра сетевая, то в лаунчере можно получать от сервера что-то вроде пароля. Потом запускаем из лаунчера программу, передавая в качестве параметра этот самый пароль. Сервер проверяет правильность этого пароля и если он неправильный, то культурно посылает игрока. Пароль соответственно генерировать на сервере каждый раз новый, а не один на всю жизнь.
Так же можно посмотреть на статьи по поводу запрета запуска двух экземпляров программы, т.к. суть тут одна и та же будет. Создаём мьютекс в лаунчере, а в программе смотрим: мьютекс есть, значит удаляем его и играем, если же его нет, значит прогу запустили не из лаунчера. Не забываем только ситуацию с закрытием лаунчера без запуска программы, т.к. в этом случае мьютекс останется и программа сможет запуститься без лаунчера.
pu4koff вне форума Ответить с цитированием
Старый 08.06.2010, 17:54   #6
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Для проверки запущена ли уже программа
Код:
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main(string[] arguments)
        {
            
            //Включаем визуальные стили раньше, чем будет проверка, чтобы MessageBox выглядел современно
            Application.EnableVisualStyles(); 
            Application.SetCompatibleTextRenderingDefault(false);

            const String AppName = "ИМЯ ПРОГРАММЫ"; //Просто название приложения
            bool oneOnly;

            bool NeedHide = false; //тут далее передача параметра, надо ли скрывать главное окно при старте программы
            if (arguments.Length != 0)
            {
                if (arguments[0] == "-hide") //можно foreach'ем проверять, параметров много можно сделать
                {
                    NeedHide = true;
                }
            }

            // Указываем имя своей программы. В нашем случае ИМЯ ПРОГРАММЫ 
            Mutex m = new Mutex(true, AppName, out oneOnly);
            if (oneOnly)
            {
                Application.Run(new FormSetting(NeedHide));
            }
            else
            {
                MessageBox.Show("Приложение " + AppName + " уже запущено.");
            } 
        
        }
    }
Casper-SC вне форума Ответить с цитированием
Старый 08.06.2010, 18:12   #7
xil
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 98
По умолчанию

проблема в том что сама игра без лаунчера запускается просто отлично и этому собственно нужно помешать
____________
игру писал не я и в исходники залезть тоже не возможно =(
Как вы сформулируете вопрос так вам и ответят
xil вне форума Ответить с цитированием
Старый 08.06.2010, 18:16   #8
xil
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 98
По умолчанию

программу в процессах найти не сложно
(напишу, вдруг кому понадобиться=))
Код:
        public Class1()
        {
            bool lauch = false;
            foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
            {
                if (p.ProcessName.ToString() == "Launcher")
                {
                    lauch = true;
                    break;
                }
            }
            if (lauch) System.Windows.Forms.MessageBox.Show("Найден");
            else System.Windows.Forms.MessageBox.Show("Не найден");
        }
Как вы сформулируете вопрос так вам и ответят
xil вне форума Ответить с цитированием
Старый 08.06.2010, 18:31   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Что мешает какому-нибудь кулхацкеру создать свою программу с тем же именем и запускать её раньше игры под видом лаунчера?
pu4koff вне форума Ответить с цитированием
Старый 08.06.2010, 18:55   #10
xil
Пользователь
 
Регистрация: 30.06.2009
Сообщений: 98
По умолчанию

хмммм может еще проверять GUID???
Как вы сформулируете вопрос так вам и ответят
xil вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Система принятия решения (Экспертная система) daranton Microsoft Office Excel 4 01.05.2010 17:55
Антивирус\АнтиЮзверь система защиты. Alex Cones Свободное общение 9 09.04.2010 15:27
Система защиты от несанкционированного доступа CJRaiL Свободное общение 6 18.01.2010 22:28
Система защиты scherbakovss Безопасность, Шифрование 1 28.12.2009 19:16
Обход защиты Niklan Софт 0 11.11.2009 22:35