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

inturist

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

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

  • Посещение

Репутация

0 Навыки не прокачены
  1. Это то о чем я говорил, очень сложно понять есть ли вообще структура юнита или она конструируется динамически и как она устроена. Та же фигня и с моралью (та фиолетовая хрень). Все те же 4-0с-0 Спасибо за алгоритм поиска, буду пытаться разбираться дальше (смещения у меня другие но суть та же)
  2. Ох... как же я получается тупил. Как я понял дальнейшие смещения с инструкицией где [регистр+другой_регистр*8+4] по сути и есть выбор структуры из ее списка (конкретный юнит итд итп)?
  3. Нет, как я понял самописный движок. Игру на юнити взломать было бы легче так как шарп и частенько необфусцированный код декомпилящийся обратно 1:1. Как я понял эти инструкции обрабатывают не только стамину но и туеву хучу всего другого. Судя по количеству адресов к которым они обращаются. Эдакий универсальный метод getValue/setValue Плюс указатель нужен чтобы найти структуру пешки и добавить скрипты для хп, статов и прочего (хотя начинаюсь уже сомневаться что игра использует хоть какие либо структуры)
  4. 1609EA60 это адрес который я искал перед этим ибо брекпойнт показывает значение в регистре на момент завершения операции
  5. КАК? в ebx на момент срабатывания find what acessed уже адрес лежащий по [ebx]
  6. Через обычный поиск все доходит до третьего скрина с инструкцией обрабатывающей овердофига адресов. Ну а трассировка с фильтром чтобы добраться до этой инструкции и посмотреть значение в ebx не работает в принципе.
  7. Спасибо за видео, в принципе примерно так и пробовал искать. Проблема возникает в том что трассировка отображает дерево сразу и в списке брекпойнтов не появляется. А если ставить процесс на паузу, ставить трассировку и условие на брекпойнт то наоборот дерево пустое что не делай после снятия с паузы. И через какое то время игра вылетает. Условие EDI==0x160ac290 (если брать как на первом скрине.)
  8. Видел уже этот урок поэтому представляю где найти трассировку. НО как трассировать с условием тут ни слова Если трассировать инструкцию mov ebx,[ebx] то там просто рандомные адреса. Если трассировать инструкцию fld dword ptr [edi+04] то указатель на адрес третьего скрина не найти -- она вообще походу в другой функции. Это если без условий. А с условиями -- то ли не работают то ли работают контринтуитивно
  9. По break and trace методики использования в инете на русском понятном языке не обнаружил. Как мне поможет туториал если неясно как даже на примере туториала искать?) По поиску снизу вверх напротив примеров хватает.
  10. если бы делал не задавал бы вопросы о том как оно работает. Максимум искал указатели снизу вверх через Find what access to adresss
  11. ebx ebx на третьем скрине, как мне поможет трассировка первого значения? Регистр к этому моменту будет три тыщи раз уже перезаписан. И да. Как вообще трассировка с остановкой по условию работает? Указал [ebx]==0x1CDF1940 останавливает когда адрес лежащий в ebx равен чему угодно кроме....
  12. Может быть третьего скриншота таки?) Попробую но игра крешится теперь и при попытке брекпойнта на доступ к этой записи....
  13. Возможно. Все же особого опыта у меня нет. Но логика подсказывает что указатель это ссылка на некий объект, который инициализируется в вышестоящем объекте и так вверх вверх до запуска инициализации первого обьекта, где и можно найти тот самый пресловутый статический адрес для цепочки указателей. Смог поставить брекпойнт. Адреса в ebx меняются при каждом следующем выполнении. Возможно какая нибудь функция отрисовки/получения любого значения. Но тогда значит что получить указатель на структуру игрока и соответственно стамины/хп и прочих атрибутов не получится (возможно ввиду полного отсутствия таких структур :) ).
  14. Я уже писал. Эта инструкция вызывается игрой кучу раз в секунду. При этом новых инструкций при выстреле/ходьбе не появляется. Не факт что она вообще берет только адрес игрока. Собственно вот в скринах: Смотрим доступ к очкам действия. Первая инструкция наращивает счетчик вне зависимости от того трачу в игре стамину или нет. Ее игнорим, тратим стамину и выбираем одну из появившихся. Находим указатель на начало структуры стамины и смотрим что уже обращается к нему. Опять, первую инструкцию игнорим, тратим стамину и находим адрес начала структуры, в которой лежит указатель на начало структуры стамины. А вот тут и возникает проблема. Находим указатель на начало предыдущей структуры, смотрим что у нему получаем доступ. Видим первую инструкцию которая наращивает счетчик вызовов до бесконечности. Тратим стамину и.... ничего. Большие изображения и код прячем под спойлер
×
×
  • Создать...

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

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