Перейти к содержанию

ChestGlaring

Пользователи+
  • Постов

    30
  • Зарегистрирован

  • Победитель дней

    8

Весь контент ChestGlaring

  1. Весь мир контейнер и ты в нем контейнер с контейнером. С этих слов и начинается наше приключение в мире отладки и исследований. В первой части статьи мы рассмотрим, только способ с использованием консольных команд, во второй с использованием указателя на структуру предмета и мира. Использование игровой консоли для спавна, на примере TES Skyrim команда выглядит как player.AddItem <ID> <количество>, во многих играх спавн с помощью консольной команды умеет класть предмет только в инвентарь игрока. На этапе поиска откуда начать взлом существует разветвление. Например, если консольная команда спавнит предмет рядом с игроком, то для начала будет логично использовать координаты игрока, чтобы впустую не тратить время и сразу узнать, кто использует наши координаты. Если спавн происходит в инвентарь, тогда проще будет использовать указатель на инвентарь или какие-нибудь сообщения об успешном выполнении добавления предмета. Для начала проверим, есть ли какое-либо сообщение об успешном добавлении предмета. Будем отталкиваться в анализе дампа от этого сообщения. Идея проста, если мы найдем функцию, которая сообщает об успешном выполнении консольной команды, значит где-то ранее, есть функция спавна. Как только найдем функцию, отображающую сообщение, необходимо будет сохранить список вызовов, которые были ранее, для этого в x64dbg необходимо перейти во вкладку Call Stack. Получаем вот такой список. Далее необходимо исследовать функции сверху вниз, восстанавливая только основные переменные, чтобы не тратить впустую время. Address To From Siz Comment Party 000000A0B28FE9D8 00007FF6E84D8872 00007FF6E84A0ABF 7B0 skyrimse.00007FF6E84A0ABF User 000000A0B28FF188 00007FF6E84D7B8D 00007FF6E84D8872 7B0 skyrimse.00007FF6E84D8872 User 000000A0B28FF938 00007FF6E84D8E2B 00007FF6E84D7B8D 80 skyrimse.00007FF6E84D7B8D User 000000A0B28FF9B8 00007FF6E849739F 00007FF6E84D8E2B A0 skyrimse.00007FF6E84D8E2B User 000000A0B28FFA58 00007FF6E8497692 00007FF6E849739F 60 skyrimse.00007FF6E849739F User 000000A0B28FFAB8 00007FF6E8A8AF07 00007FF6E8497692 50 skyrimse.00007FF6E8497692 User 000000A0B28FFB08 00007FF6E876362D 00007FF6E8A8AF07 40 skyrimse.00007FF6E8A8AF07 User 000000A0B28FFB48 00007FF6E875F4F4 00007FF6E876362D 90 skyrimse.00007FF6E876362D User 000000A0B28FFBD8 00007FF6E875CC05 00007FF6E875F4F4 30 skyrimse.00007FF6E875F4F4 User 000000A0B28FFC08 00007FF6E94FB17A 00007FF6E875CC05 40 skyrimse.00007FF6E875CC05 User 000000A0B28FFC48 00007FF88ED46FD4 00007FF6E94FB17A 30 skyrimse.00007FF6E94FB17A System 000000A0B28FFC78 00007FF88FE5CEC1 00007FF88ED46FD4 80 kernel32.00007FF88ED46FD4 System 000000A0B28FFCF8 0000000000000000 00007FF88FE5CEC1 ntdll.00007FF88FE5CEC1 User В теории, необходимо искать функцию по нескольким параметрам: 1. Скорее всего это вызов виртуальной функции (Слава ООП) 2. В аргументах передается указатель на конструктор предмета, который необходим для выделения памяти под конкретно выбранный тип предмета. Указатель на виртуальную таблицу класса игрока/мира/npc в зависимости где будет создаваться предмет. Передача количества создаваемых предметов, если предмет один, то может вообще ничего не передаваться, а оговариваться уже внутри функции по созданию предмета. Походу исследования, я нашел 3 функции, которые подходят под описание выше. В итоге находим её и восстановив видим это. Дальше, необходимо её как-то проверить и чтобы не заниматься ерундой, по типу написания длл или использования скриптов для вызова функции, просто меняем значения в передаваемых аргументах. Например, так: Функция выглядит довольно просто для вызова извне. Первый аргумент указатель на виртуальную таблицу класса игрока. Вторым аргументом идет конструктор для типа оружия. Четвертым, количество создаваемых предметов. Остальные аргументы при тестировании не на что не влияли. В заключении, поиск функции спавна предметов довольно простой процесс, которого многие почему-то бояться, хотя это не сложнее, чем создания телепорта. Если углубиться в исследование найденной функции, то скорее всего окажется, что существует один единственный метод обвешанный шаблонами, который используется как для спавна предметов в мире, так и в инвентаре игрока. На этом первая часть статьи подходит к концу, дальше будет интересней.
  2. Подними свой сервер на виртуалке или же в гугл vds, отключи определение детекта утилит в настройках сервера, дальше можешь делать все что захочешь.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.