Когда-то давным-давно жила игра для GBA под названием Hello Kitty Collection: Miracle Fashion Maker. Это была милая игра, основанная на знаменитой франшизе Sanrio Hello Kitty и разработанная компанией Imagineer. Но под маской кажущегося невинным названия скрывалась коварная проблема. По каким-то причинам эта простая игра не запускалась ни на одном эмуляторе GBA. Но одного этого было бы недостаточно, чтобы назвать проблему багом Святого Грааля. Как и все баги Святого Грааля, сам этот баг совершенно сбивал с толку. Объяснение было простым: на каком-то этапе последовательности запуска игры она попадала в цикл, из которого никогда не выходила, ожидая чтения определённого значения из памяти, которой не сущесвтует. Хотя подобные баги есть во многих играх, например, в интро популярной The Legend of Zelda: The Minish Cap, они полагаются на особое поведение, вызываемое чтением недействительных адресов памяти. Но этот цикл, казалось, нарушал подобное поведение. Тем не менее, на реальном оборудовании всё-таки игра работала. Более того, точно такой же баг возникал и при загрузке сохранения в Sonic Pinball Party после холодной перезагрузки. Могло ли ожидание этих недействительных адресов памяти быть каким-то образом ошибочным? Но если да, то как?
Рубрика «выполнение произвольного кода»
Бесконечный цикл, которого не было: история бага Святого Грааля
2020-02-15 в 6:59, admin, рубрики: gameboy advance, gba, mgba, выполнение произвольного кода, Игры и игровые приставки, обратная разработка, отладка, реверс-инжиниринг, эмуляторыБлагодаря удивительному глитчу в Ocarina of Time удалось добавить модели из Star Fox 64
2020-01-29 в 6:32, admin, рубрики: legend of zelda, Nintendo 64, romhacking, выполнение произвольного кода, Игры и игровые приставки, обратная разработка, разработка игр, реверс-инжиниринг, старые игрыЗа долгие годы написания статей про игры я рассказал о многих удивительных глитчах, неизвестных с давних пор кодах, трюках с выполнением произвольного кода и поисках глубоко сокрытого контента внутри классических игр и оборудования. Но ничто не смогло подготовить меня к этому видео с Twitch, в котором флот летающих Arwing из Star Fox 64 вторгаются в мир Ocarina of Time, чтобы напасть на Линка.
Подобную сцену ожидаешь увидеть только в созданном фанатом мультфильме или ROM-хаке, которые Nintendo так любит изымать из Интернета. Но самое удивительное в этом клипе то, что он демонстрирует немодифицированную версию оригинального японского ROM Ocarina of Time с использованием стандартной консоли и контроллеров N64.
Целое утро я разбирался с тем, как такое вообще возможно. Чтобы объяснить это, придётся совершить глубокое погружение в суть инструкций машинного языка Nintendo 64, управления памятью Ocarina of Time и самого процесса разработки игр середины 90-х. Если вам так же любопытно, как и мне, присоединяйтесь.
Читать полностью »
Реверс-инжиниринг эмулятора NES в игре для GameCube
2018-07-17 в 8:01, admin, рубрики: Nes, Nintendo 64, выполнение произвольного кода, Игры и игровые приставки, обратная разработка, реверс-инжиниринг, эмуляторыВ процессе поиска способов активации меню разработчика, оставленных в Animal Crossing, в том числе и меню выбора игр для эмулятора NES, я обнаружил интересную функцию, которая существует в оригинальной игре и была постоянно активной, но никогда не использовалась компанией Nintendo.
В дополнение к играм NES/Famicom, которые можно получить внутри игры, можно загружать новые игры NES с карты памяти.
Также мне удалось найти способ эксплуатации этого загрузчика ROM для патчинга своего кода и данных в игру, что позволяет выполнять код через карту памяти.
Введение — объекты консоли NES
Обычные игры для NES, которые можно получить в Animal Crossing, представляют собой отдельные элементы мебели в виде консоли NES с лежащим на ней картриджем.
Расположив этот объект в своём доме и взаимодействуя с ним, можно запустить эту единственную игру. На рисунке ниже показаны Excitebike и Golf.
При запуске реплеев игры World Of Tanks на вашем компьютере может исполняться произвольный код
2014-12-10 в 7:42, admin, рубрики: выполнение произвольного кода, информационная безопасность, уязвимостьПеревод с reddit.com
Пару месяцев назад я иссследовал реплеи WoT и их формат. Я обнаружил, что способ, с помощью которого они хранят пакеты данных, позволяет легко получить возможность исполнения произвольного кода. После пары дней улучшения запуска кода в реплее до надежного состояния, я получил возможность встроить произвольный код в произвольный реплей. Этот код выполняется сразу после открытия, и нет способа остановить его с момента когда WoT-клиент начал воспроизводить реплей.
Читать полностью »