Что, если ней­росеть смо­жет за один день сде­лать то, на что у реверс‑инже­нера ушло бы три месяца кро­пот­ливой работы? Я под­клю­чил Claude Code к дизас­сем­бле­ру IDA Pro и пол­ностью деком­пилиро­вал куль­товый квест «Братья Пилоты: По сле­дам полоса­того сло­на», получив рабочие исходни­ки и собира­емый билд игры. В этой статье я покажу ход экспе­римен­та.

«Цивили­зация прод­вига­ется, рас­ширяя чис­ло важ­ных опе­раций, которые мы можем выпол­нить, не думая о них», — Аль­фред Норт Уай­тхед.

В качес­тве подопыт­ного образца я выб­рал клас­сичес­кий квест. Он не давал мне покоя с того момен­та, как диск попал на пол­ки магази­нов. В начале нулевых я уже умел поль­зовать­ся инс­тру­мен­тами вро­де Resource Hacker и знал, что боль­шинс­тво игро­вых архи­вов — это обыч­ный ZIP с фик­тивным рас­ширени­ем.

Поз­же я осво­ил отладку в OllyDbg, сни­мал трас­су пок­рытия, про­бовал шпи­онить через API Monitor, но и это не помог­ло доб­рать­ся до ресур­сов игры. Зна­читель­но поз­же, осво­ив IDA Pro, я стал шаг за шагом рас­ковыри­вать пер­вые слои движ­ка. Нашел вир­туаль­ную машину, разоб­рался с тем, как работа­ет чте­ние и рас­паков­ка ресур­сов, но пол­ноцен­ного понима­ния архи­тек­туры игры у меня так и не сло­жилось.

 

История

При попыт­ке открыть игру в Hex-редак­торе я нат­кнул­ся на инте­рес­ную пас­халку. Вмес­то кода в PE32.DosHeader висело сооб­щение Run-time engine [1.47] by Vadim Sytnikov. Так­же начало архи­ва с ресур­сами игры в овер­лее было помече­но сиг­натурой =VS= — ини­циала­ми раз­работ­чика.

Вы­пус­тившая «Брать­ев Пилотов» сту­дия Gamos была осно­вана в 1991 году. До 1995-го она выпус­кала игры для DOS, пос­ле чего перек­лючилась на Windows. Клю­чевой фигурой сту­дии был сис­темный прог­раммист Вадим Сыт­ников — он раз­работал собс­твен­ный язык прог­рамми­рова­ния, на котором писались все игры, по край­ней мере я нашел его ини­циалы во всех играх для Windows.

Пер­вая игра по «Пилотам» выш­ла в 1997 году, вто­рая часть уви­дела свет в кон­це 1998-го. К тому момен­ту нас­тупил финан­совый кри­зис, так что в начале 1999 года ком­пания фак­тичес­ки зак­рылась, а боль­шинс­тво сот­рудни­ков переш­ло в стар­тап Cybiko.

 

Декомпиляция

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

Пла­гин для «Иды» Gepeto поз­волял опре­делять, что одна ассем­блер­ная мешани­на явля­ется кон­крет­ным алго­рит­мом сжа­тия, а дру­гая менед­жером памяти. Но все рав­но иссле­дова­ние шло очень мед­ленно.

В поис­ках новых средств авто­мати­зации я нат­кнул­ся на IDA Pro MCP. Это пла­гин для IDA Pro, под­нима­ющий MCP-сер­вер, который поз­воля­ет язы­ковым моделям управлять деком­пилято­ром.

info

MCP рас­шифро­выва­ется как model context protocol. Это откры­тый стан­дарт, соз­данный Anthropic. Через него ИИ получа­ет набор инс­тру­мен­тов, пре­дос­тавля­емых пла­гином, таких как получе­ние спис­ка фун­кций, деком­пиляция в C-код, пере­име­нова­ние перемен­ных, соз­дание струк­тур, изме­нение типов перемен­ных и про­тоти­пов фун­кций.

Нам пот­ребу­ется акка­унт Claude (от чата, а не от API). У меня кор­поратив­ный акка­унт с боль­шим лимитом, думаю, что он соот­ветс­тву­ет тарифу Max. Далее уста­нав­лива­ем при­ложе­ние Claude в Windows. Пос­ле чего сле­дуем инс­трук­ции по уста­нов­ке пла­гина.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии