inturist
-
Постов
18 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные inturist
-
-
44 минуты назад, Sanic сказал:
Вот краткое объяснение, как надо отслеживать, когда с регистра читают и переписывают одновременно
Ох... как же я получается тупил. Как я понял дальнейшие смещения с инструкицией где [регистр+другой_регистр*8+4] по сути и есть выбор структуры из ее списка (конкретный юнит итд итп)?
-
1 час назад, roma91212 сказал:
Игра на юнити? Если да, то лучше взламывать такие иначе
Нет, как я понял самописный движок. Игру на юнити взломать было бы легче так как шарп и частенько необфусцированный код декомпилящийся обратно 1:1.
1 час назад, roma91212 сказал:Зачем тебе указатель если ты хочешь сделать скрипты, делай изменения в самом методе
Как я понял эти инструкции обрабатывают не только стамину но и туеву хучу всего другого. Судя по количеству адресов к которым они обращаются. Эдакий универсальный метод getValue/setValue
Плюс указатель нужен чтобы найти структуру пешки и добавить скрипты для хп, статов и прочего (хотя начинаюсь уже сомневаться что игра использует хоть какие либо структуры)
-
9 минут назад, Garik66 сказал:
"Найти адреса, с котор..................."
Действительно, что может быть проще....
Спойлер -
Только что, Sanic сказал:
. Вуаля, следущее, что тебе надо было вбивать в сканер, это 1609EA60, изи.
1609EA60 это адрес который я искал перед этим
ибо брекпойнт показывает значение в регистре на момент завершения операции
2 минуты назад, Sanic сказал:The following opcodes accessed 1609EA60" адрес, на который ты поставил бряк, это 1609EA60.
-
21 минуту назад, Sanic сказал:
копируешь не то, что в ebx после выполнения инструкции, а копируешь сам адрес, с которого читает эта инструкция
КАК? в ebx на момент срабатывания find what acessed уже адрес лежащий по [ebx]
-
В 12.02.2019 в 22:49, Sanic сказал:
Зачем все усложнять, если у тебя есть АДРЕС(например 1609EA60), с которым работает что-то типа "mov ebx,[ebx]"
Через обычный поиск все доходит до третьего скрина с инструкцией обрабатывающей овердофига адресов. Ну а трассировка с фильтром чтобы добраться до этой инструкции и посмотреть значение в ebx не работает в принципе.
-
19 часов назад, Garik66 сказал:
Видео скоро будет здесь.
Спасибо за видео, в принципе примерно так и пробовал искать. Проблема возникает в том что трассировка отображает дерево сразу и в списке брекпойнтов не появляется. А если ставить процесс на паузу, ставить трассировку и условие на брекпойнт то наоборот дерево пустое что не делай после снятия с паузы. И через какое то время игра вылетает. Условие EDI==0x160ac290 (если брать как на первом скрине.)
-
17 минут назад, Garik66 сказал:
Попробуй посмотреть вот этот урок от @Xipho
Видел уже этот урок поэтому представляю где найти трассировку. НО как трассировать с условием тут ни слова
Если трассировать инструкцию mov ebx,[ebx] то там просто рандомные адреса.
Если трассировать инструкцию fld dword ptr [edi+04] то указатель на адрес третьего скрина не найти -- она вообще походу в другой функции. Это если без условий. А с условиями -- то ли не работают то ли работают контринтуитивно
-
10 минут назад, Garik66 сказал:
Ну тогда по работай с ней не в своей игре , а например в Туториале СЕ и посмотри, что и как.
По break and trace методики использования в инете на русском понятном языке не обнаружил. Как мне поможет туториал если неясно как даже на примере туториала искать?)
По поиску снизу вверх напротив примеров хватает.
-
Только что, Garik66 сказал:
Ты ни разу не делал трассировку?
если бы делал не задавал бы вопросы о том как оно работает. Максимум искал указатели снизу вверх через Find what access to adresss
-
1 минуту назад, Garik66 сказал:
1 скриншота (3 инструкция
ebx ebx на третьем скрине, как мне поможет трассировка первого значения? Регистр к этому моменту будет три тыщи раз уже перезаписан.
И да. Как вообще трассировка с остановкой по условию работает? Указал [ebx]==0x1CDF1940 останавливает когда адрес лежащий в ebx равен чему угодно кроме....
-
39 минут назад, Garik66 сказал:
Попробуй сделать трассировку (лучше именно условную - т.е. именно по адресу стамины) на третьей инструкции первого скриншота.
Может быть третьего скриншота таки?)
Попробую но игра крешится теперь и при попытке брекпойнта на доступ к этой записи....
-
5 минут назад, inaginary сказал:
Ты слишком банально себе это всё представляешь
Возможно. Все же особого опыта у меня нет. Но логика подсказывает что указатель это ссылка на некий объект, который инициализируется в вышестоящем объекте и так вверх вверх до запуска инициализации первого обьекта, где и можно найти тот самый пресловутый статический адрес для цепочки указателей.
Смог поставить брекпойнт. Адреса в ebx меняются при каждом следующем выполнении. Возможно какая нибудь функция отрисовки/получения любого значения.
Но тогда значит что получить указатель на структуру игрока и соответственно стамины/хп и прочих атрибутов не получится (возможно ввиду полного отсутствия таких структур :) ).
-
1 час назад, inaginary сказал:
который будет в метку записывать адрес игрока,
Я уже писал. Эта инструкция вызывается игрой кучу раз в секунду. При этом новых инструкций при выстреле/ходьбе не появляется. Не факт что она вообще берет только адрес игрока.
Собственно вот в скринах:
Смотрим доступ к очкам действия. Первая инструкция наращивает счетчик вне зависимости от того трачу в игре стамину или нет. Ее игнорим, тратим стамину и выбираем одну из появившихся.
СпойлерНаходим указатель на начало структуры стамины и смотрим что уже обращается к нему. Опять, первую инструкцию игнорим, тратим стамину и находим адрес начала структуры, в которой лежит указатель на начало структуры стамины.
СпойлерА вот тут и возникает проблема. Находим указатель на начало предыдущей структуры, смотрим что у нему получаем доступ. Видим первую инструкцию которая наращивает счетчик вызовов до бесконечности. Тратим стамину и.... ничего.
СпойлерБольшие изображения и код прячем под спойлер
-
14 минут назад, inaginary сказал:
Всё правильно, там же есть элементы здоровья и тд? Игре же надо знать сколько и по какому адресу, что бы показать тебе на экран. Так что это то как раз не удивительно. На счёт отладчика, попробуй изменить тип в настройках.
Пробовал. Все равно какой тип отладчика. Хоть VEH хоть Window хоть Kernel. Если ставишь на этих инструкциях брекпойнт -- все падает.
Попробовал искать через другие значения (хп, патроны для оружия) -- таже петрушка. Сначала смещение 4, потом 0с а потом все сводится к тому самому ebx, [ebx], к которому игра обращается три тыщи раз за секунду. Что слегка подозрительно.
-
36 минут назад, inaginary сказал:
Потому перейди в отладчик - поставь бряк на этот адрес, и как только бряк поймает поток посмотри вправо - там появятся все регистры. Скопируй оттуда ebx, в нём должен быть правильный адрес. Это смещение +0. После можешь убрать бряк и запустить выполнение.
В этом то и проблема : игра крайне не любит брекпойнты на исполнение. Зависает и CE и сама игра намертво.
Ну и все же смущает то что найденная единственная инструкция, обращающаяся к последнему адресу, обращается к нему независимо от того, делаю ли я в игре хоть что либо.
-
Собственно такая проблема. Хочу сделать табличку Cheat Engine для этой игры.
Решил начать с очков действия, анйти структуру игрока и уже потом пытаться делать насколько это возможно скрипты.
Ищу очки действия, брекпойнт на доступ, нахожу адрес и смещение (esi+04/edi+04 в зависимости от функции).
Ищу указатель на edi. Нахожу указатель. Ставлю брекпойнт на доступ и нахожу адрес и смещение (ebx+0c).
Ищу указатель на ebx. Нахожу пару адресов.
И тут вот возникает проблема. По брекпойнту на доступ только одна функция с постоянно нарастающим счетчиком вызовов. вида mov ebx,[ebx]. От моих действий не меняется абсолютно ничего, никаких новых инструкций.
Как искать дальше?
[UFO: Extraterrestrials] Поиск статического адреса
in Вопросы по созданию читов в одиночных играх
Опубликовано · Изменено пользователем inturist
Это то о чем я говорил, очень сложно понять есть ли вообще структура юнита
или она конструируется динамическии как она устроена. Та же фигня и с моралью (та фиолетовая хрень). Все те же 4-0с-0Спасибо за алгоритм поиска, буду пытаться разбираться дальше (смещения у меня другие но суть та же)