Защита от автоматизации

fs.readFileSync () может быть синхронным, потому что он просто работает с вашей локальной файловой системой, что может быть быстрой операцией. Если ваша база данных является локальной, она также может быть записана как синхронная. Однако, если ваша база данных находится в сети, executeQuery должен будет отправить запрос http и дождаться ответа, который может занять много времени и может быть невозможен синхронно из-за следующего:

Примечание: Начиная с Gecko 30.0 (Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27), синхронные запросы в основном потоке устарели из-за негативного влияния на работу пользователя.

7
задан Martijn Pieters 4 August 2014 в 13:03
поделиться

7 ответов

Просто идея, что, если 'мошенник' запускает Ваше программное обеспечение в виртуальной машине (как VMware) и делает снимки экрана того окна? Я сомневаюсь, что можно защитить от этого.

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

Возможно, необходимо исследовать шахматные сайты. Существует много денег в шахматах, им не нравятся боты ни один - возможно, они уже предложили решение.

5
ответ дан 6 December 2019 в 10:55
поделиться

Я записал d2botnet, механизм .net diablo 2 автоматизации некоторое время назад и что-то, что можно добавить к списку вещей не упустить, уродливые/invalid/forged пакеты. Я предполагаю, что эта игра свяжется по TCP. Пакетный сниффинг и ковка обычно являются первым способом, которым автоматизированы игры (онлайн так или иначе). Я знаю, что снежная буря обнаружила бы уродливые пакеты, что-то, что я пытался избегать выполнения в d2botnet.

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

7
ответ дан 6 December 2019 в 10:55
поделиться

Общепринятая методика слушания входа клавиатуры и мыши в приложении устанавливает использование рычага окон SetWindowsHookEx. Поставщики обычно пытаются защитить свое программное обеспечение во время установки так, чтобы хакер не автоматизировал и раскололся/нашел сериал для их приложения. Google термин: "Клавиатурные перехватчики"... Вот статья, которая описывает проблему и методы для предотвращения его.

2
ответ дан 6 December 2019 в 10:55
поделиться

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

Однако лучший способ обнаружить автоматизацию состоит в том, чтобы активно привлечь пользователя и потребовать периодических подобных КАПЧЕ тестов (кроме без изображения и т.д). Я рекомендовал бы использовать базу данных нескольких тысяч простых одноразовых вопросов, которые поставлены пользователю время от времени.

Однако на основе Вашего вопроса, я сказал бы, что Ваш лучший выбор не состоит в том, чтобы реализовать опции антиавтоматизации в C#. Вы получаете очень мало возможности обнаружения правильно написанных взломов/ботов из управляемого кода, особенно когда весь хакер должен сделать, просто входят в ring0 для предотвращения обнаружения через любой стандартный метод. Я рекомендовал бы подобный Начальнику подход (загружаемый модуль, который можно обновить каждый раз, когда Вы чувствуете себя подобно), объединенный с Драйвером Привилегированного режима, который сцепляет все API-функции окон и наблюдает их за "несоответствующими" вызовами. Обратите внимание, однако, что Вы собираетесь столкнуться с большим количеством ложных положительных сторон, таким образом, Вы не должны основывать свою систему запрета на Ваших автоматизированных данных. Всегда сделайте, чтобы человек просмотрел его перед запретом.

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

У меня нет более глубокого понимания того, как PunkBuster и такие работы softwar, но это - путь, которым я пошел бы:

Iintercept звонит в API-функции, которые обрабатывают материал памяти как ReadProcessMemory, WriteProcessMemory и так далее.

Вы обнаружили бы, если Ваш процесс вовлечен в вызов, зарегистрируйте его, и батут вызов назад к исходной функции.

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

Вот основное учебное руководство относительно функционального перехвата: Прерывание Системных Вызовов API

1
ответ дан 6 December 2019 в 10:55
поделиться

Необходимо изучить то, что входит в Punkbuster, Антиобман Клапана и некоторый другой материал антиобмана для некоторых указателей.

Править: То, что я имею в виду, изучите, как они делают это; как они обнаруживают тот материал.

0
ответ дан 6 December 2019 в 10:55
поделиться

Я не знаю технических деталей, но Шахматный Клуб Intenet программа BlitzIn, кажется, интегрировал программу, переключающую обнаружение. Это, конечно, для обнаружения людей, выполняющих шахматный механизм на стороне и не непосредственно применимо к Вашему случаю, но Вы можете экстраполировать подход к чему-то как то, если процесс X берет больше, чем процессорное время % Z следующие циклы Y, это - вероятно, выполнение бота.

Это в дополнение к "Вы не должны выполнять ничто больше, играя в игру для имения право на призы", поскольку часть правил конкурса могла бы работать.

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

Все эти вопросы легко решены правилом 1 выше:

* how to detect if another application makes periodical screenshots?
* how to detect if another application scans our process memory?
* what are good ways to determine whether user input (mouse movement, keyboard input) is human-generated and not automated?
* is it possible to detect if another application requests informations about controls in our application (position of controls etc)?

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

0
ответ дан 6 December 2019 в 10:55
поделиться
Другие вопросы по тегам:

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