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

roma91212

Пользователи+
  • Публикаций

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

  • Посещение

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

    2

roma91212 стал победителем дня 22 февраля

roma91212 имел наиболее популярный контент!

Репутация

31 Novice

3 Подписчика

Информация о roma91212

  • Звание
    Спамер

Посетители профиля

1504 просмотра профиля
  1. Вот и все. Завершилась эпоха IDA Пойду поставлю свечку PS Спасибо за статьи
  2. Если хочешь быструю скорость передвижения Ищи int или float По типу - Ходьба = 1 Зажал шифт, ищешь увеличившиеся значения и так по кругу Потом уже пишешь скрипт А с полетом можно делать изменения координат на c++ с биндом на определенные клавиши
  3. Вычитай значит просто толщину этой рамки и все. Оно будет статично, что на win7, что на win10
  4. Особенно когда это древнее знание лежит на первой полке всемирной книги знаний 😀
  5. roma91212

    Интригующая интрига

    Начну с общего, что будет полезно для каждого Реверсинг определенной функции (Объясню, допустим нашли структуру в любой игре, неважно чего (Персонаж, техника или пр.) , потом вышли на метод использующий эту структуру. Так вот интересен твой ход мыслей в восстановлении самого метода в IDA) Так сказать ход мыслей, рассуждения, догадки и выводы Игра на твой вкус Данная статья помогла бы находить более интересные поля, методы и пр.
  6. Предположение 1: Игра на юнити? Если да, то лучше взламывать такие иначе Предположение 2: Зачем тебе указатель если ты хочешь сделать скрипты, делай изменения в самом методе Предположение 3: Опять же, если все что выше не помогает (что очень врятли), делай скрипт который будет выносить динамичнский адрес структуры в метку се
  7. Аналогично, что использую регистр, что не использую. Также все засоряется элементами и вылет Ну а сам адрес работает только с моим адресом, проверил
  8. По сути он и должен срабатывать, однако после лимита в 2047 начинается краш вместо очистки
  9. Интересный баг при использовании Rapid Fire script Под скриптом переменная которая получается отвечает за количество fx элементов Ну даже если ее заморозить соответсвенно все равно перегрузится Очень странно что переполняется количество fx элементов и буфер cmd Сам скрипт (врятли что-то даст в данной ситуации) Console log:
  10. roma91212

    Sniper Ghost Warrior 2 (Lines)

    Все правильно да. За чистотой кода конечно не следил А так да, спасибо за замечания, постараюсь в следующий раз сделать немного лучше чем в данный // Я больше не буду ставить "В угол" за нарушение пукта правил 1.8. И править пост за Вас тоже. Garik66
  11. roma91212

    Sniper Ghost Warrior 2 (Lines)

    Найти указатель на SSystemGlobalEnvironment, есть информация на стороннем форуме В этом указателе, есть еще несколько (необходимый на IRenderer для w2s) Возвращает указатель на SSystemGlobalEnvironment из памяти приложения (в данном случае самой игры, т.к. это injectable dll) Насчет скрина, не понимаю для чего тебе. Указывает только на врагов Тут просто игрок находится в прицеле Да и к чему эти вопросы если ты все и так сам знаешь
  12. Sniper Ghost Warrior 2 (2013) Cryengine 3 Понадобится: Dx9 или Dx11 Hook, игра поддерживает оба Directx (Тут не будет рассмотрен хук Directx) Изначально для рисования местоположения противника надо выйти на EntityList или нечто подобное Начинаем свой поиск через хп игрока, потом смотрим, что читает по адресу, и находим небольшой кусок кода который работает со всеми Entity Выглядит примерно так Работает как с хп локального игрока так и хп врагов / союзников Именно этим мы и воспользуемся, на с++ напишем хук, который будет брать указатель на врага и сохранять в некий список А после этого мы будем читать список и рисовать линию к этим врагам Довольно нестандартный способ решения т.к тут не используется EntityList, по которому можно было бы проследить именно четкое смещение между врагами Далее были найдены координаты игрока. Ну и последнее что необходимо, это ProjectToWorld или же по другому WorldToScreen для перевода 3D координат на 2D плоскость (Окно игры) Собственно реверснутые классы ниже После поисков остается только написать все это на плюсах EntityList будет получаться посредством хука на с++ //SniperGhostWarrior2.exe + 0xDCB8E3 Ровно тут и ставим хук для получения врагов Остается только восстановить инструкции и сделать свой список Entity Тут мы восстанавливаем оригинальные инструкции и перемещаем указатель врага в переменную TemporaryObject Ну а после добавляем ее в наш некий EntityList где хранятся все указатели на врагов Теперь остается только в цикле читать EntityList и проверять валидность, а также отрисовывать (используя dx9 endscene hook) врагов за стенками и прочим Для этого воспользуемся методом ProjectToScreen из реверснутого класса IRenderer Самая основная часть ниже, в которой и происходит все действие Теперь можно протестировать работу Все отлично отрисовывается, линия идет прямо под врагов (Насчет того что нет моделек игроков, такая проблема возникает только на dx9 При включении dx11 такой проблемы не наблюдается) Хук делал под d9, поэтому получилось вот так) Cryengine 3 Classes Reverse Указатель на SSystemGlobalEnvironment можно найти через строку ai_CompatibilityMode Находим в IDA эту строку, переходим по Xref'y, Декомпилируем метод в псевдокод и получаем поинтер на SSystemGlobalEnvironment Теперь у нас есть указатель на SSystemGlobalEnvironment Указатель SSystemGlobalEnvironment 0х385BF490 Теперь необходимо найти смещение до Renderer, для этого мы будем использовать Reclass На этот раз ищем строку Draw2DLine И повторяем манипуляции выше В итоге мы находим смещение от SSystemGlobalEnvironment до IRenderer (0x10) В Reclass мы получаем вот такую картину Указатель на SSGlobal + 0x10 (Renderer) Теперь необходимо найти метод ProjectToScreen который есть в классе IRenderer Ищем в IDA строку ProjectToScreen Xref, pseudocode как и до этого Остается только от указателя на рендер определить адрес метода ProjectToScreen (Renderer + 0x140) В указателе Renderer лежит виртуальная таблица методов и на 0х140 необходимый нам, определяем его в Reclass Берем адрес, в данном случае 0x19AD8608 и прибавляем к нему смещение до ProjectToScreen (0x‭19AD8748‬) Теперь можно сгенерировать все реверснутые классы и использовать метод ProjectToScreen
  13. Собственно нашел некую структуру (SSGlobal) Указатель на pRenderer Вопрос в том, находятся ли методы GetModelViewMatrix и GetProjViewMatrix Под ProjectToScreen или же оно в ином месте class IRenderer { public: virtual void Function0(); // /* Собственно до 79 метода */ virtual void Function79(); // virtual bool ProjectToScreen(float ptx, float pty, float ptz, float *sx, float *sy, float *sz); // char _0x0004[25396]; DWORD m_width; //0x6338 DWORD m_height; //0x633C char _0x6340[8448]; };//Size=0x8440
  14. То, что получает метод с девайса (хукнутый), похоже больше на кашу, или же некую единичную матрицу, но никак не похоже на proj matrix Однако если есть соображения, буду признателен
×

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

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