Пятница, 27 Декабря 2024, 02:16

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
античит int и float
XoidДата: Пятница, 09 Января 2015, 10:26 | Сообщение # 1
почетный гость
Сейчас нет на сайте
очень-очень давно придумал очень простой "античит" который может без сложных шифрований защитить, к примеру переменную денег или жизни, через CE или другие универсальные читы просто невероятно сложно будет добиться изменения нужной переменной.

а все банально просто, для INT в массив записывается класс в котором содержится:
1 переменная - название переменной STRING
2 переменная - рандомная INT + значение
3 переменная - эта же рандомная INT

для получения значения просто ищем в массиве название переменной например "HP"
и отбавляем от 1вой переменной 3тью переменную

готовый пример с монетами - ЖМЯК


аналогичным способом можно реализовать защиту и float

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


skype:xoid_main | С#/Unity

Сообщение отредактировал Xoid - Суббота, 30 Апреля 2016, 11:23
daunДата: Пятница, 09 Января 2015, 11:22 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Если она постоянна для всех случаев, ее легко учитывать.
Если она генерируется при ini, то как быть с сохранениями.
Пусть она зависит от погоды на каком-то острове, кто об этом узнает.)
lvovandДата: Пятница, 09 Января 2015, 11:38 | Сообщение # 3
старожил
Сейчас нет на сайте
Xoid, то что запущено на локальной машине в принципе не защитить от читерства. Значения денег, здоровья и т.п. так или иначе будут изменяться, все это можно отследить и установить свои значения. Да и смысла особо нет что-то мудрить для локального приложения.
Ну а в сетевом режиме - все хранить на сервере и проверять все что приходит от клиента.


Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 11:43 | Сообщение # 4
почетный гость
Сейчас нет на сайте
Цитата daun ()
Если она генерируется при ini, то как быть с сохранениями.

Невьезжаю, Вы имеете ввиду сохранить этот массив в файл?

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


skype:xoid_main | С#/Unity

Сообщение отредактировал Xoid - Пятница, 09 Января 2015, 11:44
daunДата: Пятница, 09 Января 2015, 11:54 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Цитата Xoid ()
Невьезжаю, Вы имеете ввиду сохранить этот массив в файл?

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

Цитата Xoid ()
CE может найти значение только по отсеиванию, но если значение совершенно не совпадает с оригиналом то и найти будет сложно
а все читы и трейнеры обычно через подобные программы создаются

Если игра популярна, читерам прогеры помогут, трафик.)
XoidДата: Пятница, 09 Января 2015, 12:13 | Сообщение # 6
почетный гость
Сейчас нет на сайте
Цитата daun ()
сдвиги

что вы имеете ввиду под сдвигами?


skype:xoid_main | С#/Unity
lvovandДата: Пятница, 09 Января 2015, 12:33 | Сообщение # 7
старожил
Сейчас нет на сайте
Xoid, не скажу точно про CE, но с помощью artmoney баловался и спокойно находил значения по их изменениям, несколько шагов по уменьшению и увеличению параметра и все обычно находилось, даже если в игре совсем не было явного отображения значения

Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 12:51 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Цитата lvovand ()
уменьшению и увеличению

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


skype:xoid_main | С#/Unity
lvovandДата: Пятница, 09 Января 2015, 13:04 | Сообщение # 9
старожил
Сейчас нет на сайте
Цитата Xoid ()
мой способ защиты рандомно отнимает или прибавляет число

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


Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 13:23 | Сообщение # 10
почетный гость
Сейчас нет на сайте
lvovand,
ну все очень просто
есть не защищенная int которая меняется только когда мы например делаем действие с монетами
int money;

допустим в функции при подборе 1 монетки будет следующее:
{
int newmoney = GetProtInt("монеты")+1;
SetProtInt("монеты", newmoney );
money = newmoney;
}

и да человек найдет значение money но не сможет изменить в реале, т.е. это только визуал tongue


skype:xoid_main | С#/Unity
-l33t-h4xx-Дата: Пятница, 09 Января 2015, 13:24 | Сообщение # 11
участник
Сейчас нет на сайте
Цитата lvovand ()
игроку вам все равно надо как-то показать полоску здоровья или кол-во монет. И это кол-во должно отобразить реально изменение - увеличение или уменьшение, а не что-то рандомное.

Инкапсулировать переменную с защитой в класс, написать геттеры и сеттеры, которые работают с истинным значением... Это, наверное, не проблема.

А метод остроумный, мне нравится. Только не знаю, насколько справедливо назвать это защитой: в переменную всё равно можно записать что-нибудь, коль она отыщется, и тогда она просто испортится.


Как правильно задавать вопросы
lvovandДата: Пятница, 09 Января 2015, 13:31 | Сообщение # 12
старожил
Сейчас нет на сайте
Xoid, любая зависимость отследится,
давайте попробуем, сделайте какой-нибудь небольшой примитив и проверим его на артмани-устойчивость


Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 14:31 | Сообщение # 13
почетный гость
Сейчас нет на сайте
-l33t-h4xx-, ну я не претендую на Оскар по суперпупер защите cool как я уже сказал в начале это простенькая защита.
от мелких читеров вполне спасет!

Цитата lvovand ()
давайте попробуем, сделайте какой-нибудь небольшой примитив и проверим его на артмани-устойчивость

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

Добавлено (09 января 2015, 14:31)
---------------------------------------------
проверил на CE 6.4 - переменная не нашлась!
вот вам на истязания готовый пример ЖМЯК

отпишитесь кто пробовал хакнуть, какие успехи?


skype:xoid_main | С#/Unity

Сообщение отредактировал Xoid - Четверг, 19 Февраля 2015, 05:56
lvovandДата: Пятница, 09 Января 2015, 17:37 | Сообщение # 14
старожил
Сейчас нет на сайте
Xoid, у меня в итоге через отсеивание получилось около 30 значений получить, поставил их заморозку, сработало, значение не менялось, дальше можно было путем изменения значений выйти на искомое число.

Так что соглашусь, что сходу в лоб не пробьешь, но подход найти можно не так уж сильно утруждаясь


Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 18:38 | Сообщение # 15
почетный гость
Сейчас нет на сайте
Цитата lvovand ()
у меня в итоге через отсеивание получилось около 30 значений получить, поставил их заморозку, сработало, значение не менялось, дальше можно было путем изменения значений выйти на искомое число.

Так что соглашусь, что сходу в лоб не пробьешь, но подход найти можно не так уж сильно утруждаясь

1. и все же, нет уверенности что у вас всего лишь визуал!
2. заморозка чисел и изменение не известных переменных может быть чревато вылетом процесса.

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


skype:xoid_main | С#/Unity

Сообщение отредактировал Xoid - Пятница, 09 Января 2015, 18:52
lvovandДата: Пятница, 09 Января 2015, 18:58 | Сообщение # 16
старожил
Сейчас нет на сайте
Xoid,
1. отсеивалось изменение в любую сторону, а не просто увеличение или уменьшение, так что вместе с визуалом будет и оригинал
2. тут да, не спорю, может и повылетает приложение, но там уже видны порядок чисел, разрядность, то есть немного задротства и можно отловить изменение нужной величины
в игре сделал бы сохранение в данной точке и от этого плясал уже


Разработка и продвижение сайтов. Дизайн
XoidДата: Пятница, 09 Января 2015, 19:14 | Сообщение # 17
почетный гость
Сейчас нет на сайте
lvovand, соглашусь что он уязвим только когда увижу бесконечные 99999999... biggrin

skype:xoid_main | С#/Unity
lvovandДата: Пятница, 09 Января 2015, 19:39 | Сообщение # 18
старожил
Сейчас нет на сайте
Xoid, ))
вот смотри
нашел одно из значений зависимости, его замораживаю, и нажимаю на кнопку "прибавить 1 монету,"
http://prntscr.com/5qdgqa
а в приложении добавилось сразу всяко больше
http://prntscr.com/5qdhci
при следующем добавлении еще больше
http://prntscr.com/5qdi2l

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


Разработка и продвижение сайтов. Дизайн
ApatiДата: Пятница, 09 Января 2015, 19:40 | Сообщение # 19
заслуженный участник
Сейчас нет на сайте
Цитата Xoid ()
для получения значения просто ищем в массиве название переменной например "HP"

Зачем? Что мешает сделать свой класс переменной и использовать вместо int? Не нужно будет каждый раз прогонять цикл на поиск переменной.
Цитата Xoid ()
2 переменная - рандомная INT + значение
3 переменная - эта же рандомная INT

Проще делать побитовое НЕ: не понадобится вторая переменная и отследить будет сложнее.
XoidДата: Пятница, 09 Января 2015, 20:56 | Сообщение # 20
почетный гость
Сейчас нет на сайте
Цитата Apati ()
Зачем? Что мешает сделать свой класс переменной

у меня к сожалению пока нету таких познаний smile


skype:xoid_main | С#/Unity
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг