ArtMoney — живее всех живых

7408d9fb2ca7087f24d37df2273d515b.jpg

История приложения ArtMoney началась давно, в 1996 году. Его создал Михайлов Артём Сергеевич, выпускник факультета информатики Самарского аэрокосмического университета. Разработана программа для того, чтобы помогать геймерам. Например, получать бесконечные жизни и ману, боеприпасы и ресурсы. Не совсем спортивно, конечно, но если есть возможность получить внутриигровые бонусы, то, как говорится, «почему бы и да»?

Первые версии работали с играми под DOS и Windows. Но позже появилась поддержка всевозможных эмуляторов игровых консолей — от ZX Spectrum до Nintendo Switch. Так что если вам надо получить бессмертие в каком-нибудь редком консольном тайтле, то ArtMoney, скорее всего, с этим справится. Если вы думаете, что ArtMoney унесло ветрами времени, то нет — софт реально «живой», продолжает обновляться и радовать геймеров.

ed2261dbfd4d54cc1d7e9a390e80a8ea.png

Как это работает

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

Поддерживаются все 32- и 64-битные версии Windows, начиная с Windows XP SP3 и заканчивая Windows 11. При использовании рекомендуется отключить UAC или каждый раз запускать приложение с правами администратора. Без этого операционная система не даст открыть и редактировать память процессов.

Есть три версии ArtMoney:

  1. Special Edition (SE) — бесплатная с рекламой.

  2. PRO — платная без рекламы и персонализации.

  3. PRO VIP — платная без рекламы и персонифицированная.

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

Звон монет

Начнём со старых добрых игр наподобие Patrician II («Негоциант»). Это отличный коктейль из экономики, торговли, политики и даже пиратства. В начале игры игроку предоставляют один простой кораблик с пятью матросами и 30 000 золотых, на которые можно покупать ресурсы. Набиваем полный трюм товаров в одном городе и плывём в другой. Продаём то, что привезли с собой, платим налоги и жалованье матросам. Повторяем. Profit! Через несколько часов вы богаты и знамениты. В идеальной ситуации, конечно.

На деле всё гораздо сложнее. Нужно учитывать и отслеживать изменения цен и настраивать автоматическую закупку, следить за состоянием корабля, матросами и арсеналом. Безопасных маршрутов нет — воды кишат пиратами. Те просто мечтают, как бы присвоить себе ваш корабль с товарами. А матросов, соответственно, отправить за борт. Если вы решили взять заём у ростовщика на постройку кораблей и развитие бизнеса, то пираты вполне могут сделать вас банкротом. Сложно, но если есть ArtMoney, то у пиратов просто нет шансов.

Количество золота обозначается числом. Нажимаем на кнопку «Искать» и вводим текущее значение. В случае с «Негоциантом» утилита обнаружила около 40 адресов со значениями, соответствующими текущему количеству золота. Перебирать их все — долго, так что нужно отсеять всё лишнее.

Покупаем какой-нибудь ресурс, чтобы количество золота изменилось, и нажимаем «Отсеять». Вводим новое значение и получаем всего лишь три возможных адреса. Пробуем менять каждое по очереди. Если после ввода нового значения оно возвращается, значит зависит от другого. В данном случае замена Значения 3 привела к изменению Значения 1 и Значения 2:

Поиск значения на примере игры «Негоциант II»

Поиск значения на примере игры «Негоциант II»

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

Количество золота в верхнем правом углу изменилось на заданное значение

Количество золота в верхнем правом углу изменилось на заданное значение

Дабы не изобретать велосипед, разработчик создал общедоступную коллекцию собранных таблиц. Там сейчас уже почти 7 000 таблиц, собранных игроками со всего мира. Этот список продолжает пополняться вполне современными играми, такими как Atomic Heart, Cyberpunk 2077 и Hogwarts Legacy.

Иногда эти таблицы могут не заработать сразу по причине динамического распределения памяти. Чтобы это исправить, достаточно будет найти лишь один рабочий адрес параметра и выбрать функцию «Автоизменение адресов». Все остальные записи в таблице будут изменены по вычисленному смещению относительно исходного адреса.

Бесконечные боеприпасы и жизнь? А пожалуйста!

Помимо изменения значений ArtMoney имеет функцию их «замораживания». Это позволяет блокировать значения параметров на протяжении всей игровой сессии. Например, если вы хотите, чтобы количество патронов в обойме не уменьшалось, вы можете заблокировать это значение и устроить локальный армагеддон в любой игре, где нужно стрелять.

Посмотрим, как это работает, на примере ремейка одного из самых каноничных шутеров с видом сверху — Crimsonland. Оригинальная игра была разработана горячими финскими парнями из 10tons Entertainment в 2003 году и моментально стала хитом. Один протагонист, куча лезущих монстров и 26 видов стрелкового оружия: от простого пистолета до вундервафель вроде пушки Гаусса в форм-факторе пулемёта Гатлинга. Добавьте к этому кучу перков и всяческих бонусов вроде ядерного заряда.

Спустя 11 лет после выхода оригинальной игры появился ремейк с улучшенной графикой, поддержкой современных разрешений экрана и дополнительными режимами. Более того, игру портировали на кучу консолей — от Nintendo Switch до PlayStation 5. Главное, что осталось неизменным — игровой процесс, он не растерял своего былого драйва.

Что можно сделать при помощи ArtMoney? Да много чего. Запускаем игру, берём любое оружие и делаем выстрел. Количество патронов пишется рядом с курсором. Через поиск и несколько итераций отсеивания значений получаем искомый адрес. Меняем значение на любое, например 25, и замораживаем его.

Поиск, изменение и заморозка значений в ArtMoney

Поиск, изменение и заморозка значений в ArtMoney

Теперь игра делает попытки с каждым выстрелом уменьшить количество патронов, но ArtMoney постоянно присваивает переменной заданное значение. В Crimsonland боеприпасы бесконечные, но вот долгая перезарядка всегда делала игрока уязвимым перед тварями. Теперь же количество патронов не меняется, перезаряжать оружие не требуется:

Демонстрация работы ArtMoney в игре Crimsonland

Демонстрация работы ArtMoney в игре Crimsonland

Здесь жизнь задана в виде круглой полоски-индикатора вокруг персонажа, а не конкретного числа. Когда количество жизни уменьшается, мы можем искать не точное, а приблизительное значение внутри границ диапазона. Иногда такой поиск не приносит результата, но в этом случае можно попробовать обратиться к гуглу. В тех же готовых таблицах для игры Crimsonland обнаружилось, что 100% жизни в этой игре принимает значение 17 096.

Заморозка значения показателя жизни

Заморозка значения показателя жизни

Прикинуть, как изменился диапазон, было сложновато. Благо у ArtMoney есть опция поиска неизвестного значения. При отсеивании указывается, что значение изменилось в меньшую или большую сторону, без конкретики. Даём монстрам себя несколько раз укусить, каждый раз ставя игру на паузу и отсеивая значения. В итоге искомый адрес был найден. Заморозив его, получаем бессмертие.

Не только игры

Забавно, но ArtMoney — это не только про игры. Это ещё и про отладку почти любых приложений под Windows. Раньше это приложение частенько использовали в паре с дополнительными утилитами, такими как дизассемблер IDA Pro и отладчик SoftICE.

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

С тем, чтобы поменять одно или несколько значений, проблем быть не должно, но увы, этот процесс работает только вручную. Автоматизировать его пока возможности нет. Зато есть построение карты процесса во внутреннем редакторе. Кроме того, есть функция экспорта карты для анализа в Excel. Встав на любой адрес, есть возможность вызвать шестнадцатеричный редактор и изменить значения прямо в памяти:

Карта процесса PuTTY и открытый редактор памяти

Карта процесса PuTTY и открытый редактор памяти

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

Заключение

Кажется, что в таком читерстве нет ничего полезного, но предлагаем взглянуть на это под другим углом. Игровой метод обучения — один из наиболее эффективных. Там нет принуждения или скуки, наоборот, всё строится на том, чтобы пользователь получал знания и эмоциональный опыт в процессе развлечения. Возраст при этом не имеет значения. Так, если ваш ребёнок любит играть в компьютерные игры, можно показать ему, как работает ArtMoney.

Она наглядно покажет, что игра — такая же программа, как и весь прочий софт. Возможно, это поможет сместить для ребёнка акцент с игрового процесса на исследовательский. В поисках способа получить нечестное преимущество юный геймер начнёт искать закономерности в работе приложения. А это полностью соответствует изначальной хакерской идеологии — глубокому пониманию того, как работают программируемые системы.

Кстати, про обучение детей IT, в частности программированию, мы готовим подробную статью, так что подписывайтесь на наш блог, чтобы не пропустить самое интересное. И конечно, делитесь кейсами использования ArtMoney в комментариях.

© Habrahabr.ru