В настоящее время существует множество программ, изменяющих память ( Cheat Engine & co). Есть ли эффективный способ сохранить постоянную переменную на самом деле постоянной?
У меня было две идеи:
- Создайте отдельный поток, обновляя постоянную переменную до постоянного значения, например, 200 каждую минуту. Проблема: можно также изменить второе значение.
- Сохраните значение на сервере. Проблема: я хочу, чтобы сетевой трафик был как можно ниже.
Мне нужен этот механизм как для констант, так и для переменных, которые могут содержать только определенный диапазон значений.
Есть ли лучшие способы сделать это?
anti-cheat
Майкл
источник
источник
Ответы:
Если ваша игра однопользовательская: это невозможно, но вам все равно .
Если ваша игра многопользовательская: тогда вы должны хранить все свои важные состояния на сервере, который гораздо сложнее взломать, чем на локальной машине.
источник
x
нанес ущербy
».Это не может быть сделано , https://security.stackexchange.com/a/4639 о DRM, но то же самое относится ко всему, что пользователь не хочет на своем компьютере, включая механизмы Anti-Cheat. (Который имеет тенденцию быть еще сложнее, чем DRM.)
Но почему бы тебе, правда, зачем? Это компьютер ваших клиентов, а не ваш, клиент делает со своим компьютером все, что ему угодно. У вас нет прав на это. Ваша программа удаляется, если клиенту это не нравится.
Для многопользовательских игр речь идет не о проектировании исполняемого бинарного файла, а о разработке коммуникаций. Разрешение пользователям просто отправлять «Я выиграл с 20000 очками» не работает, равно как и «У меня 2000 золотых» . Вам нужно будет смоделировать игру самостоятельно и просто позволить игрокам отправлять то, что они делают, например: «Я приказал солдату перейти в точку X / Y» или «Я купил предмет № 43» , а не как результат этого. действия есть. Сервер решает, каковы результаты и кто победил в итоге.
Если это однопользовательская игра с высоким счетом в Интернете, то вариант может заключаться в том, чтобы игрок отправил вам повтор, смоделировал его и определил результат.
источник
Первое неэффективно и не остановит любого решительного человека от атаки вашей игры - и это также подвержено ошибкам. Тем не менее, вы можете сделать это намного жестче , не полное доказательство , если хотите. Некоторые общие стратегии доступны по всей сети, но, как уже упоминали другие люди, вы должны спросить себя, стоит ли это того.
Ради аргументов, вот несколько способов предотвратить взлом в среде одного игрока:
Альтернатива, конечно, просто хранить все на сервере и сделать игровой сервер мастером. Это не только дорого, требует обслуживания и увеличивает время разработки ... Фанаты не так впечатлены реализацией популярных игр, как Diablo III . Или здесь. Однако следует отметить, что для онлайновой флеш-RPG, такой как Adventure Quest, эта модель действительно работает для них довольно хорошо.
Я не могу дать много рекомендаций о том, как реализовать этот тип подхода, поскольку он очень широкий, широкий и требует большого планирования. Основание для того, чтобы знать, что сервер решает все, и клиент - не что иное как простая консоль ввода и отображения.
источник
Многие люди используют эти программы для поиска баллов, хранящихся в переменной, например
Для этого им нужно знать счет, как правило, из счета, отображаемого в игре.
Я думал, поможет ли это отложить их ...
тогда, когда вам нужно отобразить счет сделать ...
Это заставит читеров искать то, что они считают результатом (отображаемым значением), поэтому они будут находить только отображаемое значение.
Реальным счетом будет Score * randomVal, хранящийся в другом месте. Они не могут изменить счет, изменяя отображаемое значение.
это поможет?
PS Я не эксперт, так что успокойся со мной, лол.
источник
Что касается однопользовательских игр , вы не можете предотвратить мошенничество, и вы не должны .
Почему я не могу предотвратить обман в моей собственной игре?
Как указывалось в других ответах, даже самые лучшие усилия могут быть обойдены одним хакером и предоставлены остальной части вашей базы игроков. Вы все еще можете прилагать усилия против этого, но посмотрите на другие ответы для предложений, как . Этот ответ означает избавить вас от хлопот, если ваша игра нацелена только на одиночный геймплей.
Почему я должен позволять игрокам обманывать в однопользовательской игре?
По словам Сэма ,
Это не попадает в точку целиком . Игры являются формой развлечения . Как правило, ваша игровая база играет в вашу игру, чтобы повеселиться . Если игрок использует читы в вашей игре, есть причина, по которой он использует читы. Можно с уверенностью предположить, что мы не можем гарантировать каждому игроку определение веселья; если они используют читы , возможно, это их способ сделать вашу игру более приятной для них.
Как обман делает игру более приятной?
Хотя каждый человек уникален, есть несколько условий, в которых читы могут сделать игру более увлекательной, вне моей головы:
Почему это относится только к одиночным играм?
Важно подчеркнуть, что это работает только в одиночных играх; если игрок говорит, что хочет использовать читы, чтобы получить больше удовольствия от игры, никакого вреда не будет. Как только в игре участвует несколько игроков, подвиги этого первого игрока могут стать несправедливым недостатком для других игроков. Это единственная реальная ситуация, когда вы не должны позволять обманывать.
источник
Что делает инструмент взлома памяти?
Есть два способа использовать инструмент взлома.
Что вы можете с этим поделать?
Вы можете использовать динамически размещенные переменные для хранения переменных проигрывателя, чтобы при запуске адрес постоянно менялся. Не будет никакого фиксированного адреса, который мог бы перечислить чит-сайт.
Шифрование переменных проигрывателя: масштабирование значения, добавление константы и т. Д. Это создает новую проблему: хардкорный хакер может разобрать вашу программу и найти числа, которые вы используете для шифрования переменных проигрывателя. Для этого используйте случайные числа. Вы также можете увеличить значения переменных вашего игрока, а затем добавить случайное число, чтобы добавленное число не оказало значительного влияния на значение (добавление 10 или 20 к увеличенному значению 2000 не имеет большого значения).
Конечно, некоторые серьезные хакеры все еще могут найти способы преодолеть эти препятствия, но это будет нелегко.
Хотя приведенный выше код решает некоторые серьезные проблемы, он все еще может быть взломан. Единственная информация, которая понадобится хакеру: переменные игрока доступны через указатель (он также может это выяснить, разобрав вашу игру, но это будет раздражающим и сложным). Как только хакер получит адрес переменных вашего игрока вместе с другими секретными случайными переменными, ему будет легко разработать чит.
На мой взгляд, без разборки вы не сможете написать хакерский инструмент для такой системы. Результат непредсказуем, поскольку вы будете добавлять случайное число к переменным игрока каждый раз, когда оно изменяется. Диапазон, в котором хранятся переменные игрока, не одинаков при каждом запуске.
Что еще ты можешь сделать?
Периодически меняйте адрес переменных игрока. Это мешает читабельности кода? Ну, это в некоторой степени, но вы можете абстрагировать весь процесс в одном классе, который имеет хорошо объясненные комментарии. Интерфейс, предоставляемый классом, будет иметь простые функции Set / Get. Программисту веб-интерфейса не придется беспокоиться о сложностях, лежащих в основе.
источник
Экономика:
Если вы хотите улучшить свою игру против читеров, лучше всего купить программное решение, которое сделает это за вас. Есть несколько провайдеров, и вы можете найти довольно много из них, прибегая к помощи «анти чит нарушает мою игру» .
Профессионалы гораздо лучше предотвращают читы, чем вы, и гораздо лучше не ломают вашу игру, чем вы (и все равно не достигли 100% успеха ни в одном из них). Поэтому, если вы чувствуете, что стоит добавить такое решение в свою игру, купите его. Делать самостоятельно будет значительно дороже.
Смежный вопрос «есть ли смысл в использовании анти-чит программы?». Ответ таков: нет, если только приличная часть вашей игры не использует онлайн-режим соревнования.
источник
Единственный способ защитить вашу игру от моддинга и редактирования памяти - это сделать ее только ОНЛАЙН и обрабатывать важные значения на стороне сервера .
Может быть, вы можете зашифровать значения так, чтобы новички в памяти не попали к ним, но во всех сообществах, таких как Cheat Engine , GameGuarian для Android, ArtMoney, Game Hacker и т. Д., Есть люди, которые смогут взломать все, что вы обрабатываете клиент- и покажите остальным, как это сделать или опубликуйте тренеров.
На мой взгляд, бесполезно пытаться сдерживать мошенников. Кроме того, это не совсем справедливо, поскольку это их устройство, и если они хотят редактировать в памяти то, что происходит на их устройстве, почему вы им мешаете? Клиент король в конце концов.
источник
Я имею в виду это не так сложно. Вы можете сохранить 99% читеров редактирования памяти (таких как Game Guardian , Cheat Engine и т. Д. С помощью простого умножения значений. Даже умножение на 10 в памяти будет держать большую часть в страхе.
Я помню, что многие флэш-игры в тот день умножались на 8 или 6. Или, если вы действительно серьезно относитесь к этому, запишите некоторые проверки или зашифруйте значения в памяти.
источник
Вы не можете - я повторяю, вы не можете. Там нет ответа на этот вопрос, который не может быть отменен хорошим хакером.
Но - и что? Если кто-то хочет обмануть вашу игру (при условии, что это не связано с денежными потерями или достижениями), кого это волнует? Они только обманывают себя.
Тратьте больше времени на создание отличной игры и меньше времени на то, чтобы помешать дебилам испортить себе удовольствие - просто.
источник
Зашифруй это! Храните важные числа, разбитые на несколько мест, соединенные с другими значениями, чтобы они постоянно менялись! Используйте фиктивные цифры, которые при изменении сообщают, что они мошенники.
Все может быть взломано, но большинство не займет время, чтобы сделать это.
источник
Вот как я справляюсь с этим в онлайн-играх.
Я не собираюсь помогать хакерам, которые так терпят меня. Я не буду упоминать какие-либо программы, которые я использую для этого. Вы должны будете понять это. Единственный способ действительно остановить их - это знать одну вещь. Они не хотят, чтобы их хакерская программа была обнаружена.
Пока что все пользователи хакеров / тренеров, которых я победил. Разработчик взлома установит детектор, чтобы посмотреть, что-то смотрит. Если что-то есть, то программа хакера / тренера либо автоматически закроется с их конца, либо будет работать только наполовину.
Например, в сервисе «Грязь 3» пользователи тренажера могут автоматически раскрутить машину. Но если вы поставите детектор на свой конец, собственный читер обнаружит его и закроет часть чита. Не все это.
Единственная часть программы тренера, которую я видел в результате моего вмешательства, - это супер тормоза (идеальное торможение) и разгон (автомобиль теряет контроль без причины). У меня в основном гоночные игры, как вы можете видеть. Все они от мастеров кодирования, и, к сожалению, читерами часто злоупотребляют эти игры.
Я считаю, что я могу остановить их только благодаря тому, как мы соединяемся друг с другом во время игры. Вероятно, это та же самая причина, по которой они могли вызвать побег у обычного игрока, который не имеет ни малейшего понятия о безопасности.
Мое самое большое предложение состоит в том, чтобы получить очень хороший антивирус интернет-безопасности (Norton, Mcafee, Avast и все другие дерьмовые авы не помогут вам). Будьте готовы потратить от 50 до 90 долларов на очень хороший аванс, которого я не перечислил, а затем научитесь экспериментировать с ним, чтобы произвести онлайн-игру.
Это требует много терпения и много морских свинок. Я имел большой успех с этим, но также и многолетний опыт работы с пользователями тренеров. Я не знаю никакого кода вообще. Это не имеет к этому никакого отношения. Часть кода заблокирована, и вы ничего не можете с этим поделать. Вы можете подумать, что можете, но просто невозможно остановить то, что они делают с их стороны.
Вы по-прежнему можете запретить их с помощью таких вещей, как VAC, потому что Vac обнаруживает подписи и определенные поведения и модификации файлов, о которых он уже знает. Это только запрещает учетную запись, связанную с читом.
Они на самом деле не остановить чит, хотя. Они не могут быть обеспокоены этим. Они просто забанят ваш аккаунт. Другая вещь, которую я хотел бы упомянуть, связана с Wolfenstein ET. Очень старая игра. Но для меня это была лучшая и самая жесткая мера безопасности из всех.
Я никогда не видел, как они это сделали. Я дал им представление о том, что на самом деле остановит мошенников, и предложил одному из разработчиков джеймодов запретить путем путеводителя. Какое удобное руководство при игре? Графические карты. Причина, по которой они это реализовали, заключается в том, что люди просто меняли ip-адреса, а вам не нужна была учетная запись для игры, чтобы вы могли просто изменить свое имя, ваш mac-адрес, который также изменит ваш ip-адрес.
Но когда они сделали запреты видеокарты. Если вы хотите снова сыграть, вы должны взять свою карту RMA или купить новую. Это не по теме, хотя. Это должно быть об обнаружении, и я пошел по касательной. К сожалению, сейчас я не так много играю в игры. Но человек, которого я любил все мои свиньи гунеи. Особенно те из автомобилей проекта. Единственная гоночная игра, которая не была codemasters. Но все же подвергается той же ерунде.
источник