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

pia3333

Стажёры
  • Постов

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

  • Посещение

Сообщения, опубликованные pia3333

  1. Привет всем, вобщем стоит задача получить список всех объектов на карте в игре на юнити.

    Через отладчик кривым способом смог получить адреса на нужные мне объекты(т.е. на экземпляр GameObject), получилось что-то типо такого:

    71j4YAV.png

    Тут уже прописаны адреса сразу на класс объекта, а не на поинтер.

    Объект игрока - статичный, остальные объекты на скрине - динамические и создаются подрят.

    Никакой связи между dynamic_1 и dynamic_2 и т.д. я не нашёл(это не структура, а просто динамическое выделение памяти).

    Нужно как-то найти для них всех поитер, где будет различаться только 1 оффсет(4 байта * номер объекта). Но как это сделать я без понятия. С каждого оффсета выдаёт ОЧЕНЬ много поинтеров.

    Для поиска я взял dynamic_1 и dynamic_2, т.к. знаю что они созданы подрят, т.е. должен быть общий поинтер и оффсеты, где различие будет только в одном и только на 4 байта....

    Без понятия как это сделать, прошу помощи :-[ Глазами весь список поинтеров не перебрать - там больше 1 000 000.

    Добавлено позже:

    Скорей всего там всё ещё хуже, просто нашёл значение поинтера, который ссылается на GameObject и вбил в поиск, сохранил все значения и начал экспериментировать:

    TEg4fQd.png

    По идее (36E8FC0-036E8DC8)+036E8FC0 = указатель на 3 объект(или (036E93EC-036E8EB0)+036E93EC, у остальных дельта отрицательная). Но это не так, в последних значения стоят указатели 036E8FC0+1F8 и 036E93EC+53C, хоть какой-нибудь должен быть равен значению 11514856. Хз что делать....

    Скорее всего там что-то типо такого в коде движка:

    objectArray[id]->object->gameobject

    У меня известен только адрес gameobject

  2. >> Кто может подсказать, как кода юзера преобразовать в нормальный код?

    Может быть ты ожидаешь какую-то оригинальную подсказку или супер идею. Думаю, я тебя разочарую. Если Юзер дожен вводить Асм-код в текстовом представлении, то тебе нужно написать программу, которая Асм-код преобразует в байт код и записывает по известному адресу последовательность байт-кода. Возможно тебе придётся использовать какой-то компилятор или писать свой для наиболее важных машинных инструкций. Чтобы найти "Адреса", то их можно маркировать какой-нибудь последовательностью байт.

    Если ты не смог додуматься до решения таким образом, может быть тебе и не стоит пытаться реализовать эту идею. Её реализация может занять у тебя много времени. Альтернатива - использовать Cheat Engine АА- и Lua - скрипты.

    Вдруг есть более короткие пути =) Вдруг есть библиотеки какие-нибудь для C++

    PS

    Есть просто игра, к которой не могу приаттачить отладчик. Стоит защита хорошая. Кернел режим не могу включить в се 6.2, т.к. процессор AMD. На самом деле мне всего-то надо узнать что храниться в регистрах определённого участке кода...

  3. Итак, у меня есть такая функция с вставкой асмы:


    int Funk(void)
    {
    _asm
    {
    push ebp
    ***
    ***
    ***
    ***
    mov esp, ebp
    pop ebp
    retn
    }
    }

    Мне надо написать так, чтобы код, который должен быть место звёздочек менялся во время работы(его задавал юзер!)

    Кто может подсказать, как кода юзера преобразовать в нормальный код? Ну ведь нельзя же просто char всунуть, в котором будет его текст :-D

  4. Как подключиться к базовому адресу ==> Тут

    ты так не понятно выражаешься, что я даже решил скачать игру ^_^

    Это я для примера сказал =) Но если подскажите как сделать там точно, то буду благодарен.

    (GameWorld)(DWORD* 0x41234);

    Вот это не ясно. Как можно класс преобразовать в адрес? Студия ругается жестоко.... void* тоже не срабатывает...

  5. Ну в прицепе найти класс/структуру не сложно с позицией.

    Вот только как найти динамические данные в этом классе/структуре.

    Есть примеры работы с классами?

    Есть класс:

    class GameWorld//расположен он например по адресу 0x41234

    {

    public:

    D3DVECTOR SetPosition;

    };

    Как мне считать что-то из SetPosition?

  6. Есть игра Postal 2

    Хочу научиться находить класс с позицией игрока, считывать его и записывать в него(предпочтительно на C++)

    Какие гайды мне читать, что бы найти класс с позицией? И как потом выйти на сами данные из класса?

    Ведь я же найду этот класс в статической части кода.... Если возможно без использования олли(ну через дизасму или CE).

×
×
  • Создать...

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

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