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

Serious Sam HD: TSE; взлом здоровья


Рекомендуемые сообщения

  В 18.03.2016 в 18:07, SergBrNord сказал:

Только я вот не понимаю, про какой флаг речь?

Показать  
mov [ecx+1C], 1  //Пишем тот флаг

Ты же вроде сам его так назвал.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 18.03.2016 в 16:45, SergBrNord сказал:

Правда, на этом моменте у меня мозг немного переклинило:

  Цитата

Now back to the case. If You have clicked on more information, You can see the code that You have examined and the value of the registers. Make sure to remember what is between the [ ] and what is the value of the register. Now click on "Hex" left to the value box in CE, type in the value of the register and search for it. You have found the address of the pointer. Click on "Add address manually". Select pointer, and type in the address of the pointer that You have found. If You have done it right, You have added an address to the table which will "track" the location of Your health, wherever it is. 

Показать  

 Я не могу сообразить где тут собака зарыта? Мы находим значение регистра. Но смысл? Нет, ну я, конечно, пробовал сделать так в Сэме но получилась чушь в 2к+ адресов, практически не отсеивающаяся.

Показать  

Здесь всё правильно и понятно, это грубо ШАГ № 8 Туториала. Если не понял повтори "Обучение СЕ" 8 шаг.

Часто это использую в играх, если не нахожу фильтра в первой струтуре, то нахожу этим способом первый поинтер и уже из него исследую струтуру, часто уже на первом уровне указателя в структуре лежит обычно текстовый фильтр (ID). 

Но для новой твоей игры этот метод к сожалению не подходит. Поэтому и пробовал искать указатели автоматически.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 18.03.2016 в 18:25, Garik66 сказал:

Если у тебя не подобрано в игре, то скорее всего будет вылет из игры. Потестируй свой скрипт, например загрузи самое начало игры пока ничего нет, активируй свой скрипт и посмотри, что будет .

Показать  

Проверил твой скрипт, без проблем добавляет патроны и вылетов нет, так что проверка флага не нужна.

Есть одна опечатка в скрипте 

  mov [esi+00000A50],#998    //flamethrower
  mov [esi+00000A50],#799    //lasergun  нужно  [esi+00000A60]

и 

push ecx
pop ecx

в данном случае не нужны, так как ecx затирается другим значением дальше по коду игры.

 

Добавил в скрипт, добавление оружия без его подбора в игре:

  Показать контент

 

  Показать контент

 

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 18.03.2016 в 23:23, Garik66 сказал:

Добавил в скрипт, добавление оружия без его подбора в игре:

  Показать контент

 

  Показать контент

 

Показать  

Как я понял, ты сравнением структур нашёл это значение?

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 19.03.2016 в 11:07, SergBrNord сказал:

Как я понял, ты сравнением структур нашёл это значение?

Показать  

Нет.

Просто взял инструкцию на чтение игры (их две - можно любую) в отдладчике, ПКМ по ней, из контекстного меню выбрал строчку "Найти адреса, к которым обращается эта инструкция" и после этого подобрал сперва одно оружие в игре, которого у меня не было - вышел на адрес, подобрал второе - стало сразу понятно, а потом уже вручную менял значение в адресе в таблице, следуя двоичной сиситеме.

Ссылка на комментарий
Поделиться на другие сайты

Кстати там много чего таким образом можно найти.

Например явно виден адрес счётчика нахождения секретных вещей, короче поэкспериментируй, там много чего есть.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

  В 19.03.2016 в 11:15, Garik66 сказал:

Просто взял инструкцию на чтение игры (их две - можно любую) в отдладчике, ПКМ по ней, из контекстного меню выбрал строчку "Найти адреса, к которым обращается эта инструкция" и после этого подобрал сперва одно оружие в игре, которого у меня не было - вышел на адрес, подобрал второе - стало сразу понятно, а потом уже вручную менял значение в адресе в таблице, следуя двоичной сиситеме.

Показать  

Я так понимаю, одна из них та, на которую ты второй вариант скрипта писал?

 

  В 19.03.2016 в 11:17, Garik66 сказал:

Кстати там много чего таким образом можно найти.

Например явно виден адрес счётчика нахождения секретных вещей, короче поэкспериментируй, там много чего есть.

Показать  

Гарик, а ты пробовал координаты поискать? Я пробовал как на видео у Xipho, но у меня из получившихся значений ничто не оказалось координатами игрока.

Ссылка на комментарий
Поделиться на другие сайты

  В 19.03.2016 в 12:58, SergBrNord сказал:

Я так понимаю, одна из них та, на которую ты второй вариант скрипта писал?

Показать  

Не знаю какой вариант - скриптов было много, короче вот здесь скрипт на одну из этих инструкций:

 

 

  В 19.03.2016 в 12:58, SergBrNord сказал:

Гарик, а ты пробовал координаты поискать?

Показать  

Нет не пробовал.

А что нужна помощь?

Они скорее всего в той же структуре будут.

Ссылка на комментарий
Поделиться на другие сайты

  В 19.03.2016 в 13:07, Garik66 сказал:

Нет не пробовал.

А что нужна помощь?

Они скорее всего в той же структуре будут.

Показать  

Я не могу выйти на адрес хотя бы одной координаты - пытался сделать так же как на видео у Xipho, но ничего не замораживается. Не могу понять, что же делаю не так?...

Ссылка на комментарий
Поделиться на другие сайты

  В 19.03.2016 в 12:58, SergBrNord сказал:

Не могу понять, что же делаю не так?...

Показать  

Игра не стабильная, постоянно вылетает, нужно терпение.

 

Подскажу более быстрый способ для твоей игры - как выйти на координату Z (высоту).

Загрузи самое начало (мостик около озера, на дне которого гранатомёт, а на другом берегу бронь, пистолет и красная телефонная будка)

Подключи консоль -> подключи "Режим полёта".

Начни поиск: Тип "float" Диапозон 0 до 5, стоя на мостике.

А дальше поднялся вверх - увеличилось, опустился - уменьшилось.

Перед проверкой адресов заморозкой, останется около 160 адресов, среди них есть искомая координата Z, при заморозке которой ГГ не будет опускаться вниз и подниматься вверх, в регионе памяти найдёшь и другие координаты.

Но правда тебе это ни чего не даст, поймёшь, когда увидишь инструкции работающие с этими адресами.

Там ещё нужно будет разбираться и задавать много вопросов тебе на форуме, чтобы написать телепорт.

Изменено пользователем Garik66
Ссылка на комментарий
Поделиться на другие сайты

написал скрипт для включения читов от разработчиков, чтобы не играться с консолью "Disable / Enable cheats (0/1)":

  Показать контент

И табличка уже с нужными адресами в ней. Горячие клавиши не назначал.

Ниже залил новую табличку с телепортом.

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  В 20.03.2016 в 15:43, Garik66 сказал:

Перед проверкой адресов заморозкой, останется около 160 адресов, среди них есть искомая координата Z, при заморозке которой ГГ не будет опускаться вниз и подниматься вверх, в регионе памяти найдёшь и другие координаты.

Но правда тебе это ни чего не даст, поймёшь, когда увидишь инструкции работающие с этими адресами.

Там ещё нужно будет разбираться и задавать много вопросов тебе на форуме, чтобы написать телепорт.

Показать  

Появилось наконец-то время, сейчас попробую. Правда есть опасения, что таким образом я выйду на функцию, отвечающую за полёт в чит режиме.

 

Я подобным образом уже пробовал делать - брал тот же уровень и нырял в яму с водой. Но при заморозке значений игра любила вылетать =)

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

Вот нашёл координаты и посмотрел в памяти что где:

  Показать контент

 

Поставил останов на X:

  Показать контент

 

Останов на Y:

  Показать контент

 

Останов на Z:

  Показать контент

Собственно, с какой инструкции начать работать лучше? Я не вижу ни одной подходящей

 

Upd.

Пока буду работать с X, так как Z - бессмысленно; Y - в структуре чушь.

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

В общем, практически зеркально повторилась ситуация с нахождением инструкции по здоровью. Скриншот с остановом по X в предыдущем посте я заскринил неправильно и позже это понял. Однако это привело к пониманию, что структура с  координатами лежит в EAX.

  Показать контент

 

Кстати, в ESI лежит практически то же самое...

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

Что собственно, получилось:

  Показать контент

 

Ссылка на таблицу

  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

  В 22.03.2016 в 15:23, SergBrNord сказал:

Что собственно, получилось:

Показать  

Молодец! :)

Я тоже написал для тебя скрипт (сегодня утром), он более компактен ;) :P:

  Показать контент

Ну и табличка конечно:

 

 

SamHD_TSE.CT

Изменено пользователем Garik66
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Гарик, а есть метод/методы отловить, что неправильно делает скрипт? В чём дело - у меня появилось времени немного пробегать в игрушке и выяснилось - спустя некоторое время камера начинает либо бешено трястись, либо игра зависает/крашится. Крашнуться она может, например, при подборе здоровья или на ровном месте. Вот, собственно, хочется отследить этот момент.

 

P.S.

В моём другом скрипте, для SS:FE такого не происходит. Хотя логика скриптов такая же и внедряется в аналогичные куски кода.

Ссылка на комментарий
Поделиться на другие сайты

  В 01.04.2016 в 15:48, SergBrNord сказал:

Гарик, а есть метод/методы отловить, что неправильно делает скрипт?

Показать  

SerBrNord, есть конечно, но всё индивидуально.

Ты выяснил, из-за какого скрипта начинаются глюки/вылеты? -> Выложи этот скрипт. Посмотрим.

 

Ссылка на комментарий
Поделиться на другие сайты

  В 02.04.2016 в 05:51, Garik66 сказал:

SerBrNord, есть конечно, но всё индивидуально.

Ты выяснил, из-за какого скрипта начинаются глюки/вылеты? -> Выложи этот скрипт. Посмотрим.

 

Показать  

Да банально. Берём тот же скрипт Лирва.

  Показать контент

Собственно, какие глюки я пока выловил: падение при использовании рычага, падение при подбирании бонуса +100 к здоровью (выглядит как большое сердце), внезапно начинающееся дерганье камеры вверх-вниз, ну и отдельный случай был - падение при открытии статистики по уровню.

 

В SS:FE такой ерунды нет, хотя скрипты написаны на ту же функцию игры.

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

Повторяемость вылетов есть?

Например возьмём вылет:

  В 02.04.2016 в 15:44, SergBrNord сказал:

падение при подбирании бонуса +100 к здоровью

Показать  

Если ты можешь повторить это вылет, то можно посмотреть, почему происходит вылет.

Например может быть вылет из-за сверки текущего здоровья с текущим здоровьем, шифрованным XORированием через адрес текущего здоровья, писал об этом раньше:

 

 Второй вариант вылета возможен из-за того что через наш фильтр:

  cmp [ecx],79616C50
  jne code

проскакивают и другие адреса.

План поиска причин вылета:

1. Перепишим скрипт, чтобы в нём ничего не изменялось:

  Показать контент

2. Активируем скрипт переходим на инъекцию и проверяем с какими адресами работает инструкция (ПКМ по инструкции отмеченной в комментариях в скрипте. если не понятно - посмотри моё видео Стандартная ошибка в скриптах Cheat Engine всех новичков ) , например подбирая бонус здоровья, рычаг и т.д. Проверка - чётко ли работает фильтр, должен проскакивать только один адрес.

3. Переписываем скрипт, чтобы менять только значение здоровья:

  Показать контент

4. На  инструкцию ставим брейкпоинт и делаем пошаговую (F7) отладку, засекаем на какой инструкции происходит вылет.

 

По поводу:

  В 02.04.2016 в 15:44, SergBrNord сказал:

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

Показать  

Это могут быть баги не связанные с нашими скриптами, а с самим репаком или даже с самой игрой (поищи инфу в инете по поводу версии своей игры, там могут быть и эти баги, установи последний патч.) 

 

Ссылка на комментарий
Поделиться на другие сайты

Гарик, в общем я попробовал сделать всё это. Игра вылетает до функций чтения и записи здоровья, которые мы используем. Т.е. - набежал на здоровье - и в момент разрушения объекта игра крашится. Брекпоинт не срабатывал на инструкции записи. На инструкцию чтения брекпоинт поставить сложновато - там постоянно чтение идёт.

Изменено пользователем SergBrNord
Ссылка на комментарий
Поделиться на другие сайты

  В 03.04.2016 в 14:40, SergBrNord сказал:

Гарик, в общем я попробовал сделать всё это.

Показать  

А первый пункт делал? Фильтр проверил?

Ссылка на комментарий
Поделиться на другие сайты

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

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

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