очень-очень давно придумал очень простой "античит" который может без сложных шифрований защитить, к примеру переменную денег или жизни, через CE или другие универсальные читы просто невероятно сложно будет добиться изменения нужной переменной.
а все банально просто, для INT в массив записывается класс в котором содержится: 1 переменная - название переменной STRING 2 переменная - рандомная INT + значение 3 переменная - эта же рандомная INT
для получения значения просто ищем в массиве название переменной например "HP" и отбавляем от 1вой переменной 3тью переменную
аналогичным способом можно реализовать защиту и float
я самоучка так что могу немного непонятно выражаться, т.е. не общепринятыми терминами.. интересно услышать что об такой реализации защиты думают обитатели форума.. skype:xoid_main | С#/Unity
Сообщение отредактировал Xoid - Суббота, 30 Апреля 2016, 11:23
Если она постоянна для всех случаев, ее легко учитывать. Если она генерируется при ini, то как быть с сохранениями. Пусть она зависит от погоды на каком-то острове, кто об этом узнает.)
Xoid, то что запущено на локальной машине в принципе не защитить от читерства. Значения денег, здоровья и т.п. так или иначе будут изменяться, все это можно отследить и установить свои значения. Да и смысла особо нет что-то мудрить для локального приложения. Ну а в сетевом режиме - все хранить на сервере и проверять все что приходит от клиента. Разработка и продвижение сайтов. Дизайн
Если она генерируется при ini, то как быть с сохранениями.
Невьезжаю, Вы имеете ввиду сохранить этот массив в файл?
lvovand, CE может найти значение только по отсеиванию, но если значение совершенно не совпадает с оригиналом то и найти будет сложно а все читы и трейнеры обычно через подобные программы создаются skype:xoid_main | С#/Unity
Сообщение отредактировал Xoid - Пятница, 09 Января 2015, 11:44
Невьезжаю, Вы имеете ввиду сохранить этот массив в файл?
При запуске игры, все сдвиги сгенерируются по новой. Если вход в игру из раннего сохранения - сдвиги не совпадут. Если сдвиги сохранят - их легко подобрать, помогут только внешние источники.
ЦитатаXoid ()
CE может найти значение только по отсеиванию, но если значение совершенно не совпадает с оригиналом то и найти будет сложно а все читы и трейнеры обычно через подобные программы создаются
Если игра популярна, читерам прогеры помогут, трафик.)
Xoid, не скажу точно про CE, но с помощью artmoney баловался и спокойно находил значения по их изменениям, несколько шагов по уменьшению и увеличению параметра и все обычно находилось, даже если в игре совсем не было явного отображения значения Разработка и продвижение сайтов. Дизайн
мой способ защиты рандомно отнимает или прибавляет число, т.е. вы не можете узнать наверняка увеличилось или уменьшилось значение так что увы нет, такое не прокатит. skype:xoid_main | С#/Unity
мой способ защиты рандомно отнимает или прибавляет число
игроку вам все равно надо как-то показать полоску здоровья или кол-во монет. И это кол-во должно отобразить реально изменение - увеличение или уменьшение, а не что-то рандомное. Разработка и продвижение сайтов. Дизайн
lvovand, ну все очень просто есть не защищенная int которая меняется только когда мы например делаем действие с монетами int money;
допустим в функции при подборе 1 монетки будет следующее: { int newmoney = GetProtInt("монеты")+1; SetProtInt("монеты", newmoney ); money = newmoney; }
и да человек найдет значение money но не сможет изменить в реале, т.е. это только визуал skype:xoid_main | С#/Unity
игроку вам все равно надо как-то показать полоску здоровья или кол-во монет. И это кол-во должно отобразить реально изменение - увеличение или уменьшение, а не что-то рандомное.
Инкапсулировать переменную с защитой в класс, написать геттеры и сеттеры, которые работают с истинным значением... Это, наверное, не проблема.
А метод остроумный, мне нравится. Только не знаю, насколько справедливо назвать это защитой: в переменную всё равно можно записать что-нибудь, коль она отыщется, и тогда она просто испортится. Как правильно задавать вопросы
Xoid, любая зависимость отследится, давайте попробуем, сделайте какой-нибудь небольшой примитив и проверим его на артмани-устойчивость Разработка и продвижение сайтов. Дизайн
-l33t-h4xx-, ну я не претендую на Оскар по суперпупер защите как я уже сказал в начале это простенькая защита. от мелких читеров вполне спасет!
Цитатаlvovand ()
давайте попробуем, сделайте какой-нибудь небольшой примитив и проверим его на артмани-устойчивость
пожалуй, да, заняться все равно нечем так что залеплю вам пример а вы уже там дальше и попробуете по взламывать
Добавлено (09 января 2015, 14:31) --------------------------------------------- проверил на CE 6.4 - переменная не нашлась! вот вам на истязания готовый пример ЖМЯК
отпишитесь кто пробовал хакнуть, какие успехи? skype:xoid_main | С#/Unity
Сообщение отредактировал Xoid - Четверг, 19 Февраля 2015, 05:56
Xoid, у меня в итоге через отсеивание получилось около 30 значений получить, поставил их заморозку, сработало, значение не менялось, дальше можно было путем изменения значений выйти на искомое число.
у меня в итоге через отсеивание получилось около 30 значений получить, поставил их заморозку, сработало, значение не менялось, дальше можно было путем изменения значений выйти на искомое число.
Так что соглашусь, что сходу в лоб не пробьешь, но подход найти можно не так уж сильно утруждаясь
1. и все же, нет уверенности что у вас всего лишь визуал! 2. заморозка чисел и изменение не известных переменных может быть чревато вылетом процесса.
вы не могли получить доступ к оригинальной переменной потому что каждое следующее нажатие кнопки добавляло рандомно к существующей сумме от -125 до +125 тоесть может быть так что вы добавили к сумме 10, в чите указали что число увеличилось, а в скрипте оно на самом деле ушло в минус.. skype:xoid_main | С#/Unity
Сообщение отредактировал Xoid - Пятница, 09 Января 2015, 18:52
Xoid, 1. отсеивалось изменение в любую сторону, а не просто увеличение или уменьшение, так что вместе с визуалом будет и оригинал 2. тут да, не спорю, может и повылетает приложение, но там уже видны порядок чисел, разрядность, то есть немного задротства и можно отловить изменение нужной величины в игре сделал бы сохранение в данной точке и от этого плясал уже Разработка и продвижение сайтов. Дизайн
Xoid, )) вот смотри нашел одно из значений зависимости, его замораживаю, и нажимаю на кнопку "прибавить 1 монету," http://prntscr.com/5qdgqa а в приложении добавилось сразу всяко больше http://prntscr.com/5qdhci при следующем добавлении еще больше http://prntscr.com/5qdi2l
о том и речь, в лоб точным значением не исправишь, но если бы это были, например, монеты, можно накидать их себе было бы под завязку, сохраниться, и делать дальше свои дела Разработка и продвижение сайтов. Дизайн