GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Поиск адресов в онлайн играх

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (начинающим)
    6 Сообщения 2 Posters 460 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • V
      Vasiji
      отредактировано

      Всем привет. Хочу попросить вас рассказать о поиске адресов памяти в онлайн играх. Хочу написать простецкого фишбота для wow 3.3.5a. вроде как c++ и c# хорошо знаю, а вот как с гемхакингом впервые столкнулся. Посмотрел я что в интернетах на эту тему есть, по онлайн играм так ничего и не нашел, может хоть вы подсобите

      1 ответ Последний ответ Ответить Цитировать 0
      • V
        Vasiji
        отредактировано

        Я нашел некий опенсоурсный фишбот , который как полагается не работает. Однако некоторые функции выполняются а именно - отслеживание имени, локации и заполниности инвентаря. Хочу попросить у шарящих описание класса Hook, и описание функции DoString() класса Lua

        ссылочка на GitHub(надеюсь, что тут за это не бьют) - https://github.com/benjamin-t-wilson/WoW-3.3.5-Fishing-Bot

        1 ответ Последний ответ Ответить Цитировать 0
        • StoneWeaverS
          StoneWeaver administrators
          отредактировано

          Привет! Не совсем понятна конечная цель. Ты хочешь найти адреса каких-то значений на клиенте? Тут нет проблем, экранные адреса ищутся точно так же, как и обычные. И реверсятся тоже точно так же. Разница лишь в том, что их пытаться изменить бессмысленно.

          V 2 ответов Последний ответ Ответить Цитировать 1
          • V
            Vasiji @StoneWeaver
            отредактировано srg91

            @StoneWeaver в этом проекте есть функция

              public void DoString(string command)
                    {
                        if (_wowHook.Installed)
                        {
                            // Allocate memory
                            IntPtr doStringArgCodecave = _wowHook.Memory.AllocateMemory(Encoding.UTF8.GetBytes(command).Length + 1);
                            // Write value:
                            _wowHook.Memory.WriteBytes(doStringArgCodecave, Encoding.UTF8.GetBytes(command));
            
                            // Write the asm stuff for Lua_DoString
                            var asm = new[]
                            {
                                "mov eax, " + doStringArgCodecave,
                                "push 0",
                                "push eax",
                                "push eax",
                                //"mov eax, " + ( (uint) Offsets.FrameScript__Execute + _wowHook.Process.BaseOffset()) , // Lua_DoString
                                "mov eax, " + ( (uint) Offsets.FrameScript__Execute ), // Lua_DoString
                                "call eax",
                                "add esp, 0xC",
                                "retn"
                            };
                            // Inject
                            _wowHook.InjectAndExecute(asm);
                            // Free memory allocated
                            _wowHook.Memory.FreeMemory(doStringArgCodecave);
                        }
                    }
            

            конечная цель - понять как она работает хотя б в общих чертах

            1 ответ Последний ответ Ответить Цитировать 0
            • V
              Vasiji @StoneWeaver
              отредактировано

              @StoneWeaver как я понял она неким магическим образом вызывает игровую функцию. В первую очередь интересно каким образом они нашли адрес Offsets.FrameScript__Execute

              1 ответ Последний ответ Ответить Цитировать 0
              • StoneWeaverS
                StoneWeaver administrators
                отредактировано

                В общих чертах код внедряет ассемблерный код в игру и выполняет его. Смещение функции Lua_DoString определено заранее. Скорее всего, эта функция находится в какой-то из библиотек, а смещение до функции от базового адреса библиотеки чаще всего статично. Никакой магии.

                1 ответ Последний ответ Ответить Цитировать 0
                • Первое сообщение
                  Последнее сообщение