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

partoftheworlD

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

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

  • Посещение

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

    172

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

  1. Вывод декомпилятора похож на снеговика в x64dbg.
  2. Все правильно работает, ты просто тип используешь 4 байта, а надо 8. Думаю стоило бы для начала разобраться с типами переменных.
  3. А что если значение переменной обычный счетчик срабатывания кода? При достижении определенного количества срабатывает сборщик мусора.
  4. Отладчик выбирается до присоединения к процессу.
  5. Это ведь Frostbite, там все связано, просто найди координаты камеры и руками найди указатель, по ходу восстановления смещений найдешь все что нужно, только на одном из пунктов поиска будем несколько адресов, которые будут указывать на структуру игрока (Список игроков и локальная структура). Так же есть дампер классов, который для твоих целей подойдет идеально.
  6. В этом ты прав. Сейчас бы хеш-функции пытаться найти в CE. Чтобы воспользоваться хешами надо хукнуть скриптовой движок, либо воспользоваться OpenVHook, в той же теме на которую ты кинул ссылку, про это написано.
  7. Ищи коллизию, через координаты, бряк на доступ по адресу координаты и сталкиваешься с чем-нибудь.
  8. Пиши свой алгоритм, который бы считал введеную тобой строку. Можно даже на основе того кода, что я кинул. Получить длинну можно с помощью вызова winapi функции типа strlen, результат будет в eax лежать.
  9. PlayerBase активируй и увидишь готовые значения, вот по ним и ориентируйся когда будешь разбираться. Borderlands2.CT
  10. В настройках профиля сбрось токен дискорда и заново зайди.
  11. У функции есть пролог и эпилог.
  12. Неизвестное - изменилось/не изменилось, а для проверки ставить бряк на доступ, чтобы найти инструкцию шифрования, а от неё выйти на значение.
  13. Разобраться что ты подразумеваешь под вх, узнать принцип работы, сломать принцип работы. Любой какой нравится. Scylla, OllydumpEx
  14. 2 массива с одним индексом в цикле. xor edi, edi code: mov al, [ecx+04+di] mov bl, [input_array+di] cmp al, bl jne exit ... cmp edi, [len] je exit inc edi jmp code
  15. Просто переписываю статью с некоторыми правками, так как на данный момент она не рабочая, да и там черт ногу сломит. Сие действие будет проводить на Counter-Strike: Source, выбор игры не важен. Запускаем x64dbg, открываем файл hl2.exe, для корректного запуска стимовской версии необходимо указать аргументы командной строки: -steam -game cstrike -console -insecure Нажимаем F9, после прогрузки модуля d3d9.dll ставим бряки на: Direct3DCreate9, если игра инициализирует устройство в текущем модуле Direct3DCreate9Ex, если игра инициализирует устройство во внешнем модуле. После установки бряка перезапускаем игру, как только срабатывает бряк выходим из функции и видим откуда она вызывалась. *Немного комментов для лучшего восприятия* Теперь нам необходимо вызвать функцию CreateDevice по её индексу, для этого модифицируем: CALL DWORD PTR DS:[EAX+0x8] на CALL DWORD PTR DS:[EAX+0x40] Либо считаем руками.(Нет) После вызова [EAX+0x40] попадаем в тело функции, ставим на него бряк и перезапускаем игру. Как только сработает бряк, надо будет расширить количество аргументов до 7 в настройках соглашения о вызовах, так как нам нужен 7-й аргумент в прототипе функции CreateDeviceEx, а именно ppReturnedDeviceInterface: HRESULT CreateDeviceEx( UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS *pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode, IDirect3DDevice9Ex **ppReturnedDeviceInterface ); Хоба. Вот мы и нашли указатель на указатель на устройство с помощью которого можно рисовать внутри игры и которым рисует игра.
  16. Как бы не было от этого грустно, но в этой игре нет таймера. Весь таймер заключается в статическом значении, которое равно 60 без прокачки. А на него выходить, только через перезарядку навыка. Borderlands2.CT
  17. Так проверка направлена на фильтрацию статических адресов, которые реально используются, а не просто совпавший статический адрес указывающий на структуру в стеке. К примеру ищем статический адрес на 0xFEEDFACE, через сканер указателей, получаем статический адрес 0xDEADBEEF, теперь ищем этот 0xDEADBEEF, где он используется в коде. Находим такую инструкцию: mov eax, [0xDEADBEEF] Значит все хорошо, но так же, мы можем обнаружить какую-либо инструкцию, опкоды которой совпадают с указателем на 0xFEEDFACE, раз так, то отфильтровываем подобные результаты и получаем только реально работающие указатели. Вот к примеру: "mov eax, [0xDEADBE68]" A1 68BEADDE ========================== "push 0xDEADBE" 68 BEADDE00 Технически эти адреса одинаковые, но во втором случае указатель не будет работать после перезапуска, но сканер указателей покажет эти 2 случая. Да, это лечится новым сканированием после перезапуска, но не всегда перезапуск игры возможен. Хотя, возможно это уже не нужные костыли. Отлично.
  18. Я думаю, можно сделать проверку, например, есть статичный адрес который был найден сканером указателей, какой-нибудь AAAAAA. Для проверки возьмем сканер сигнатур или просто поиском константы, найдем все инструкции, в которых есть адрес 0xAAAAAA и ограничим вывод результатов, фильтруя их по началу блоков, которые должны начинаться с определенных опкодов. Т.е основные, которые присваивают адреса и обычно работают со статичными адресами. По типу: B8 AAAAAA00 - mov eax, 0xAAAAAA C700 AAAAAA00 - mov [eax], 0xAAAAAA A1 AAAAAA00 - mov eax, [0xAAAAAA] ...
  19. Т.е в настройках сканера указателей нет никаких проверок, типа начального опкода или еще чего, чтобы фильтровать это? Если это так, то ручной поиск указателей будет куда лучше и надежней.
×
×
  • Создать...

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

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