как действительно нацеливают ботов в игровой работе кадр/с?

Я адаптировал код, найденный на CodeProject для создания следующего:

ArrayList primeNumbers = new ArrayList();

for(int i = 2; primeNumbers.Count < 10000; i++) {
    bool divisible = false;

    foreach(int number in primeNumbers) {
        if(i % number == 0) {
            divisible = true;
        }
    }

    if(divisible == false) {
        primeNumbers.Add(i);
        Console.Write(i + " ");
    }
}

Тестирование этого на моем Сервере ASP.NET взяло rountine приблизительно 1 минута для выполнения.

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

4 ответа

Где-то в игровой памяти есть X, Y, и Z расположение каждого игрока. Игра должна знать эту информацию, чтобы она знала, где визуализировать модель игрока и т. Д. (Хотя вы можете ограничить объем, который может знать игровой клиент, отправив ему только информацию об игроке для игроков, находящихся в поле зрения).

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

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

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

Edit: If you ' Если интересно, как программа может получить доступ к памяти других программ, типичный способ сделать это - использовать DLL-инъекцию .

Редактировать: Так как это все еще получает некоторые хиты, существуют другие способы работы прицельных роботов, более популярны сейчас; а именно перезапись (или исправление на месте) Direct3D или OpenGL DLL и изучение вызовов функций для рисования геометрии и вставка вашей собственной геометрии (для таких вещей, как взлом стен) или получение позиций моделей для прицельного бота.

а именно перезапись (или исправление на месте) Direct3D или OpenGL DLL и изучение вызовов функций для рисования геометрии и вставка вашей собственной геометрии (для таких вещей, как взлом стен) или получение позиций моделей для прицельного бота.

а именно перезапись (или исправление на месте) Direct3D или OpenGL DLL и изучение вызовов функций для рисования геометрии и вставка вашей собственной геометрии (для таких вещей, как взлом стен) или получение позиций моделей для прицельного бота.

70
ответ дан 24 November 2019 в 15:02
поделиться

Интересный вопрос - не совсем ваш ответ, но я помню, что в первые дни Counter-Strike люди заменяли свой opengl32.dll на некачественный, который делал полигоны такими прозрачными, чтобы они могли видеть сквозь стены.

Хаки улучшились и стали более раздражающими, а люди стали более креативными. Теперь Valve / Steam, кажется, неплохо их удаляют. Небольшое предупреждение, если вы планируете поиграть с этим материалом, Steam выполняет поиск «хаков», и если они будут обнаружены, они заблокируют вас навсегда

13
ответ дан 24 November 2019 в 15:02
поделиться

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

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

Они все еще должны уметь определять такие вещи в памяти и имеют те же проблемы, что и более настоящие «прицельные боты».

10
ответ дан 24 November 2019 в 15:02
поделиться

Другой метод, который использовался в прошлом, заключается в обратном проектировании форматирования сетевых пакетов. Атака «злоумышленник посередине» на поток пакетов (которая может выполняться в той же системе, на которой работает игра) может предоставить информацию о позициях игроков и другую полезную информацию. Поддельные пакеты могут быть отправлены на сервер для перемещения игрока, стрельбы или выполнения любых действий в зависимости от игры.

9
ответ дан 24 November 2019 в 15:02
поделиться