AutoHotKey
AutoHotKey (AHK) — язык программирования для написания макросов-скриптов на Windows. Позволяет в автоматическом режиме прожимать последовательности клавиш, а также передвигать мышою, поддерживает простой анализ экрана по цветам пикселей. Может использоваться для автоматизации простых заданий в видеоиграх.
Описание[править]
Особенностью AHK является простой синтаксис и тот факт, что скрипты на AHK работают сразу после написания — достаточно их запустить, после чего все нажатия определённых клавиш будут автоматически обрабатываться скриптом. Работает во всех операционных системах Windows от XP до 11.
Распространен для написания простых скриптов для видеоигр, где необходима минимальная автоматизация, а полноценного бота человек писать не хочет или не умеет. Однако такие скрипты обычно примитивны и для серийного запуска и решения сложных задач не годятся, так как будут легко обнаружены.
Например, в Path of Exile язык AHK использовался с целью написания автофласок (чтобы не прожимать фласки в ручном режиме) и для простых ботов с целью выполнения примитивных действий, скажем перебора пророчеств — бот последовательно вынимал 60 пророчеств и складывал их в сундук, потом оставалось только отсортировать.
Есть возможность скомпилировать бота в файл .exe и запускать его вообще без установки AHK на определенном компьютере.
Безопасность[править]
Несмотря на популярность, AHK обладает определёнными проблемами, позволяющими легко обнаружить его использование, что становится критичным в видеоиграх, которые занимаются борьбой с ботами. В частности, все нажатия клавиш по умолчанию помечаются флагом синтетический, что позволяет без особых проблем понять, что применяется именно скрипт, после чего забанить игрока (так как честный игрок использовать подобные скрипты в принципе не станет). Также по умолчанию система создает задержки в несколько миллисекунд между каждой строчкой AHK, что тоже позволяет увидеть паттерн автоматизации.
Для частичного исправления проблем можно использовать расширение AutoHotInterception, позволяющее обрабатывать сигналы на уровне драйвера (ниже операционной системы), что уже не позволит так легко отследить факт вмешательства. Однако есть и особенность: некоторые игры проверяют наличие драйвера Interception и просто не запускаются, если он есть.