| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Технологии защиты программного обеспечения > Как зашифровать рекорд к игре? |
| Автор: NiCketT 21.10.2007, 20:35 |
| Собственно я написал игрушку. Хочу сделать теперь онлайн статискику (типа лучшие результаты) к этой игре. Планирую передавать значения рекорда (score) запросом GET на PHP-страничку. Ну тупо открыв окно браузера (через ShellExecute) и ввести в строку адреса что-то типа http://сайт?score=2500&user=Anonim Вопрос. Как зашифровать значение score ведь, если оставить так, юзеру ниче не мешает написать score=10000 :?: P.S. Прога на Делфи ;) |
| Автор: Alexandr87 22.10.2007, 12:37 |
| Раскидываете по программе ключ (чтоб при реверсинге его запарились искать). Далее любым алгоритмом вычисляете MAC на строку name+score+случайное_число и отправляете на сервер эту строку и MAC. На сервере проверяете MAC и добавляете присланные значения в вашу табилицу. |
| Автор: _Michael 26.10.2007, 17:13 |
| Зашифровать количество можно и етот МАС код также можно сгенерить. Но программа-то ведь в юзера и ничто не мешает ему 200 очков в памяти программы изменить на 2000, которые потом будут шифроваться. Есть известная программа ArtMoney например. Да несложно и самому что-то простое навалять для поиска в памяти процесса заданного числа. Толку от шифрования если, мы очки подправим еще до того как они будут шифроваться. Но конечно юзер тоже разный бывает, не все будут так глубоко копать, хотя с другой стороны ето и не есть очень сложно - просто запустить ArtMoney и все. Так-что смотри сам, но особо извращаться и очень сложное выдумывать я думаю не следует |
| Автор: NiCketT 29.10.2007, 23:45 |
| Сделал через MD5. В PHP есть такая готовая, а на Delphi написал собственную. Можно ли эту функцию так-же использовать для регистрации самой программы? (password:=MD5(username+key)) Ну пользователь пересылает мне свой юзернейм, я вычисляю его хэш (username+некоторое число) и отсылаю хэш обратно. Он вводит его RegistrationCode и это значение сравнивается с вычисленным в проге. Насколько это надежно? Шивроватся будет http://www.nickett-software.narod.ru/my_games.html#ten прога. password:=MD5(username+key) |
| Автор: NiCketT 30.10.2007, 00:15 |
| _Michael Пробовал я эту прогу, 10 мин пытался поменять score в игре, так ничего не получилось - все время 13-20 переменных. Думаю "взломщику" будет намного проще купить мне бутылку пива, и попросить добавить его ник на страницу с указанием 1000000000 очков |
| Автор: Alexandr87 30.10.2007, 04:31 |
абсолютно не надежо. не правильно подобран механизм. Что мешает пользователю программы cамому вычислить хэш и ввести его в RegistrationCode. Что касается рекорда к игре: тоже неправильно, пользователь точно также может самостоятельно вычислить хэш для сфабрикованных данных. Вам советовали MAC, а не хэш. |
| Автор: NiCketT 30.10.2007, 09:02 | ||
Ну там ведь ХЕШ+секретное число. Секретное число знаю только я ЗЫ. Я имелл ввиду что может не каждый то заморачиватся будет. Игра то простенькая (думаю по $9,95 продавать и beerware для наших) |
| Автор: _Michael 30.10.2007, 12:53 |
| Да любая программа если она в руках смышленного парня, и если сам механизм защиты, будь то проверка пароля или кода регистрационного, или серийника, реализован в ней, то сломать его имея умения не составит труда. Но конечно здесь играет роль тот фактор, чтоб копейку рублем не защищать, то-есть поставить такую цену например, чтоб действительно проще было купить программу нежели самому ее ламать. |
| Автор: Alexandr87 30.10.2007, 20:04 |
ну собственно говоря, если вас это устаривает. |