Обман в онлайн-играх: действительно ли возможно препятствовать тому, чтобы один процесс Win32 осматривал/управлял чью-либо память?

Затем предоставьте исходящую анимацию, чтобы текущая активность оставалась неподвижной:

overridePendingTransition(R.anim.slide_in_up, R.anim.stay);

stay.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromYDelta="0%p"
    android:toYDelta="0%p" />
10
задан Suma 4 June 2009 в 07:51
поделиться

8 ответов

Нельзя сделать. Когда дело доходит до доступа к памяти, приложение находится во власти ОС. Тот, кто контролирует ОС, контролирует доступ к памяти. Пользователь имеет полный доступ ко всей машине, поэтому он всегда может запускать процессы с привилегиями, установленными, чтобы позволить им читать из пространства памяти других процессов.

Это предполагает «обычную» среду - современное оборудование с многоцелевой ОС. который позволяет запускать несколько программ одновременно и т. д.

Подумайте об этом так - даже одноцелевые машины, где разработчики имеют полный контроль над оборудованием, с цифровой подписью и всеми возможными трюками, такими как XBox или PlayStation, не могут управлять чтобы не допустить стороннего кода. Для многоцелевой ОС это было бы в 10 раз сложнее.

20
ответ дан 3 December 2019 в 13:17
поделиться

Если вы хотите добиться реальной безопасности, а не только сокрытия информации, это необходимо сделать на уровне операционной системы. Это часть того, что называется Trusted Computing , о чем много говорили в последние годы, но реального прогресса не было (например, вы можете поискать Microsoft Palladium).

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

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

8
ответ дан 3 December 2019 в 13:17
поделиться

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

6
ответ дан 3 December 2019 в 13:17
поделиться

На эту тему существует хорошая книга:

Использование онлайн-игр: мошенничество в массово распределенных системах (ISBN-10: 0132271915 или ISBN-13: 978-0132271912)

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

6
ответ дан 3 December 2019 в 13:17
поделиться

Да, вы можете это сделать, если вы можете позволить себе работать только в Vista и более поздних версиях. См. Главу «Защищенные процессы» в этой статье.

4
ответ дан 3 December 2019 в 13:17
поделиться

Warden не является отдельным приложением и не пытается каким-либо образом отключить взлом. По своей структуре он аналогичен трояну, который извлекает (теоретически надежный) код из известного места и затем запускает его. Затем этот код выполняет различные проверки (подавляющее большинство из которых - это области хеширования в памяти для обнаружения исправлений для таких вещей, как обработчики событий ботов), чтобы пометить учетную запись как «подозрительную». Затем Blizzard ждет, пока у них не наберется достаточное количество «подозрительных» учетных записей, и запускает волну бана (есть некоторые заметные исключения, которые могут привести к мгновенным банам, но они нацелены на определенные известные взломы, такие как Glider или D2JSP в Diablo II, не для общего мошенничества).

Я хочу объяснить это двояко: во-первых, вы должны знать, что Warden очень небезопасен по своей конструкции. Вы даете кому-то возможность выполнять произвольные инструкции x86 на вашем компьютере, вероятно, с полным доступом администратора, если вы используете Windows. Существуют частные повторные реализации кода сервера Warden, которые развертываются на частных эмулируемых серверах, и они могут быть вредоносными. Я говорю это как человек, который написал собственные модули Warden. Во-вторых, что более актуально для поставленного вопроса, Warden - это не инструмент предотвращения, это инструмент наказания и серьезное вторжение в частную жизнь. Если вы разработчик игр и хотите реализовать аналогичную систему, я настоятельно не рекомендую ее использовать, поскольку она открывает множество банок с червями и все равно не сработает. Поскольку он включает в себя динамическую загрузку кода, существует множество способов его облажаться, много чего будет сложно найти при стандартном тестировании. Помимо Warden, единственная реальная попытка Blizzard предотвратить взломы в WoW - это их попытка помешать плагинам Lua делать что-либо, близкое к ботингу (и даже этот chas обходили много раз). И, как говорили другие, в принципе невозможно остановить взлом даже с такой динамичной системой, как Warden. Даже не затрагивая память игры, пакетов и чтения с экрана более чем достаточно для создания продвинутого бота (посмотрите на mm.BOT и RedVex, или на любого из старых ботов AutoIt, которые полностью работают с обнаружением пикселей).

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

8
ответ дан 3 December 2019 в 13:17
поделиться

Пока ваш код работает на компьютере пользователя, пользователь найдет способ быть навязчивым. Вы ничего не можете сделать, чтобы предотвратить это.

4
ответ дан 3 December 2019 в 13:17
поделиться

Игра Runescape - браузерная MMO - долгое время вела (проигрышную) битву с боттерами. Их первой попыткой была CAPTCHA, которую нужно было вводить каждые несколько минут во время игры. Второй их попыткой были различные графические тесты, которые должен был пройти игрок. Их последней попыткой было телепортировать игрока от того, чем он время от времени занимается, и заставить его решить загадку.

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

2
ответ дан 3 December 2019 в 13:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: