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

Не получается найти статичный адрес


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

Доброго времени суток всем.

Столкнулся с такой проблемой: не получается найти адреса со смещениями в игре "Assassin's Creed: Brotherhood" (одиночный режим). Текущие адреса нахожу без проблем, ставлю бряк на доступ и продолжаю поиск... но найденные адреса резко меняются, от чего становится просто невозможно продолжать поиск.

Видел много трейнеров к этой игре, а значит взломать ее все же можно...

И сдаваться нет желания - хочется научиться как можно большему в гейм хакинге :)

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

Доброго времени суток всем.

Столкнулся с такой проблемой: не получается найти адреса со смещениями в игре "Assassin's Creed: Brotherhood" (одиночный режим). Текущие адреса нахожу без проблем, ставлю бряк на доступ и продолжаю поиск... но найденные адреса резко меняются, от чего становится просто невозможно продолжать поиск.

Видел много трейнеров к этой игре, а значит взломать ее все же можно...

И сдаваться нет желания - хочется научиться как можно большему в гейм хакинге :)

Попробуйте поискАТЬ так. включив "" остановить игру при поиске""

post-1568-0-61493300-1345776614_thumb.jp

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

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

А на счет остановки процесса, то адреса меняются сразу после альт-таба в игру на "???", т.е. я даже не успеваю изменить количество чего либо в игре, чтобы начать отсев/определить следующее смещение.

UPD:

Может кто попробует взломать эту игру хотя-бы, чтобы посмотреть в чем там дело?

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

У меня есть данная игра.В репаке от механиков.Сейчас установлю и посмотрю что где и как...Искать указатель буду на золото

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

На взлом игры и написание скрипта ушло 1 минута и 47 секунд (засекал)

Адресс у меня не менялся при сворачивании игры.

В игре нету каких либо антиотладочных механизмов.

Насчёт указателся немного пошло не так.

Юзал автоматический поиск...после нахождения 5 лямов указателей.Перезапусти игру и начал отсев.При первом отсеве рабочих указателей 0. (может руки кривые..может ещё что,но в любом случае игра быстро ломается с использованием инъекции кода).(искать указатель лень)

Взлом завершён.Всем спасибо ,все свободны =))

67300ada85a6e355d1b3fc92daeb29d8.png

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

Я с инъекцией кода не знаком толком, знаю пока только функцию ADD (которая показана в туториале CE), поэтому юзать инъекцию кода пока не могу в принципе... И указатель в этой игре никак не удается найти, вот и интересуюсь.

Сначала хотелось бы добить указатели, чтобы на автомате ломать, так сказать, а потом переходить на скрипты...

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

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

Я с инъекцией кода не знаком толком, знаю пока только функцию ADD (которая показана в туториале CE), поэтому юзать инъекцию кода пока не могу в принципе... И указатель в этой игре никак не удается найти, вот и интересуюсь.

Сначала хотелось бы добить указатели, чтобы на автомате ломать, так сказать, а потом переходить на скрипты...

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

я в скрипте вообще не использовал указатели)))

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

Про указатель в скрипте - это я условно, потому что не знаю как с ними работать.

Отсюда возникает несколько вопросов, но главный: как можно сделать инъекцию кода НЕ зная указателя, откуда берется знание, к какой инструкции и как обращаться? Фактически, Вы нашли текущий адрес, который после перезапуска игры изменится, а раз так, то после перезапуска игры Ваш скрипт будет недействительным...

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

Привет!

Если очень в кратце, то и код и данные игры (адреса значений, которые ты находишь в СЕ) хранятся в оперативной памяти. Разница тут в том, что код каждый запуск игры своего местоположения не меняет, т.е. находится всегда по одним и тем же адресам, в отличие от данных, которые могут появляться в разных её участках. Такое поведение вызвано технологией DMA - Dynamic Memory Allocation - динамическим распределением памяти.

Борются с этой заразой двумя основными техниками:

1. Поиском указателей. Указатель - по факту, адрес, который хранит адрес какого-то значения игры. Ему пофиг на DMA, т.е. он _всегда_ будет знать, какой адрес будет иметь то или иное значение игры при каждом её запуске. Работать с указателями можно так же, как и с обычными адресами - изменять из значение, замораживать и так далее.

2. Инъекция кода. Суть - изменение кода игры. Код игры, в свою очередь, работает с адресами памяти, т.е. со значениями.

Представь себе гипотетическую ситуацию:

Адрес патронов: 0х123456. Адрес этот находится в оперативной памяти. Скажем, у нас 10 патронов. Как только стреляем - у нас за каждый выстрел отнимается по одному патрону.

Отнимает их, скажем, вот такая функция:

sub [0x123456],1

Ассемблерная команда "sub a,b", вычитает b из a, в данном случае - единицу из количества патронов. Допустим, что этот код находится по адресу 0x654321.Напомню, что и код и данные (адрес патронов в частности) находятся в оперативной памяти.

А теперь мы берём и перезагружаем игру. Адрес патронов меняется:

0x11223344

А вот адрес инструкции, которая срабатывает при выстреле и отнимает у нас патроны, нет:

0x654321: sub [0x11223344],1

В чём же суть инъекции кода? Так как код никогда не меняет своего местоположения, то мы можем изменить саму инструкцию. К примеру, вычитать из количества патронов (инструкция всегда знает нужный адрес, так что указатель нам не нужен) не единицу, как было, а ноль. Или вообще поменять sub на add, и тогда единица будет прибавляться. Инъекция кода - это изменение кода игры, работающего с определёнными адресами памяти (жизней, здоровья, патронов, денег и так далее). Главная штука тут в том, что код всегда лежит в памяти по одним и тем же адресам, а трейнер и СЕ сам по себе могут с лёгкостью менять как данные, так и код, ибо в представлении компьютера и то и другое является просто цифрами.

PS: У меня в подписи видеоблог, представляющий собой мои попытки научить взлому игр с нуля. Инъекция кода в это тоже входит, так что посмотри где-то первые пять уроков - там всё довольно-таки понятно (как мне кажется) и на примерах.

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

keng, как всегда великолепен. спасибо, уже понятнее :)

а видео посмотрю, как и обещал :)

единственное что: sub, add и т.д. - это ведь ассемблерные инструкции? где можно почитать о них? желательно в доступном для чайника изложении :)

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

keng, как всегда великолепен. спасибо, уже понятнее :)

а видео посмотрю, как и обещал :)

единственное что: sub, add и т.д. - это ведь ассемблерные инструкции? где можно почитать о них? желательно в доступном для чайника изложении :)

посмотри видеоуроки от кенга и кодера...и всё поймёшь...я на этом фыоруме зарегался тоже почти с 0 знаниями.Видеоуроки от кенга..выдали базу

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

Я не могу посмотреть видео, не в этом месяце по крайней мере, потому что интернета на компе нет (новый провайдер тормозит с подключением анлим инета), сижу с телефона, с дорогим трафиком: ~10р за мб

сам хочу посмотреть видео-уроки от keng...

а пока инета нет - читаю статьи.

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

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

Искать указатели на автомате скорее всего не выйдет, т.к. они там ветвятся порой так, что без бутылки не разберешься. Автопоиск в CE наверное может частично решить эту проблему, но там свои проблемы - а что, если уровень указателя выше 5? Потратишь время и не найдешь.. ставить сразу 10 - это же сколько ждать придётся? ИнЪекция кода проще делается. Там знать то надо считай одну инструкцию mov и считай всё. Если делать фильтр на игрока, это сложнее, добавляется сравнение cmp и условные прыжки jne, je.

Когда сам ничего не знал и только-только начал изучать ассемблер составил для себя такую табличку команд с описанием (прикрепил). Может пригодится.

Команды.rar

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

aliast, keng, огромное спасибо Вам!

воспользовался полученными знаниями - получилось написать скрипты на яды, стрелы, лекарства, деньги и т.д. :)

хорошо когда есть люди, готовые поделиться знаниями, тогда все гораздо понятнее становится :)

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

mov [esi+0C],ecx

В ассасинах эта инструкция большая, в ней имеют доступ очень много адресов - флорины,аптечки итд. По смещению +4 или +8 находяться ID. Так что со скриптом проблем не будет, а указатель искать очень долго и бессмысленно.

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

С полученными знаниями также получилось сделать бессмертие, причем вышло довольно неплохо: здоровье при получении урона не отнимается, а если снять/повредить броню, то максимальное количество здоровья уменьшается и увеличивается при недавнии/починке экипировки соответственно :)

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

закрадывается вопрос:

можно ли обойти это? или в самой игре прописано, если персонаж падает с высоты ">= N" (больше или равно N) - означает смерть?

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

Вообще, я до прихода на этот форум умел только находить простые указатели... только тут с советами и "пинками" я научился находить многоуровневые указатели и познакомился со скриптами... так что меня еще пинать и пинать :D

А как узнать, к какому адресу ставить бряк в отладчике? прыгать, и в полете искать адрес по типу "изменилось", "не изменилось"?

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

Вообще, я до прихода на этот форум умел только находить простые указатели... только тут с советами и "пинками" я научился находить многоуровневые указатели и познакомился со скриптами... так что меня еще пинать и пинать :D

Так есть куча видео уроков :)

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

Coder, 14 пост :)

Ну да это печально.

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

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

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

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

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