IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Command & Conquer: Red Alert [Hidden Easter Egg], хеши для кодов
-=CHE@TER=-
Jun 2 2014, 13:23
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE
2020.04.11 note:
Original codes found with dictionary attack performed by -=CHE@TER=-.
Special thanks to kampaster for first brute-force attack attempt!
Hidden commandline argument for hash 0xD95C68A2: FROMINSTALL
Hidden word for network chat which triggers developer easter egg quotes for hash 0x72A47EF6: FELTPLAYWORK
This topic below contains some historic details for anyone interested.

Товарищ Siberian GRemlin, у меня к тебе вопрос, как к знатоку игр Westwood.
В первом C&C:RA в исполняемом файле (RA95.EXE - только я не помню, это он такой и был, или я в него RA95.DAT переименовал) есть строчки текста типа таких:
QUOTE
Denzil L
This would be better on the Mac.
Greg H
But does it fit into 2 MB?
Я так понимаю, что это шуточные цитаты от разработчиков.
Подумал было, что они есть в титрах - просмотрел их до конца, но ничего не вылезло.
Ты не в курсе где и как этот текст в игре выводится?
Гуглунием "c&c red alert easter egg quotes" ничего не нашёл.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Apr 11 2020, 14:53
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Так, в теме про The Neverhood подробности написал, теперь давайте здесь закончим.
Короче, в начале недели написал мне Corvin, что нашёл какой-то CD с Exhumed Demo. Я было подумал, что там какая-то особенная версия, но оказалась, что она уже известна. Как он потом объяснил, это для людей которые хотят эстетики - не просто скачать откуда-то демо-версию, а взять её с оригинального диска... Нда... ну, не важо. Помимо этого там были демки и других игр, в том числе C&C:RA1.
Заглянул я, значит, демку RA1 посмотреть, а там, ох-ты-ж-охренеть-просто, остались дебажные символы с именами переменных и функций от Watcom. Я не смог пройти мимо такого подарка и загрузил всё это дело в IDA. Увы и ах, игра безвозвратно изуродована классами и прочими объектами, так что код практически не восстанавливается толком. Зато я теперь знаю что функция считающая хеш от строк называется Obfuscate(). Мелочь, а приятно, да.
Но ещё я обнаружил, что она, помимо тех уже известных двух хешей, считает хеши и от трёх массивов, которые тоже используются как слова из командной строки (в полной версии их не было).
Вот эти списки с оригинальными именами взятые из дебажных символов игры, а также строки для них подобранные атакой по словарю:
CODE
PlayCodes[]
E0792D6D SONY
90046ECF ANTHRAXROCKAWAY
C3EE9A26 FUNK
ED382178 SLICK

CheatCodes[]
A0E2AB53 JUPITER
00532693 NATE
7DDFF824 PASSWORD
2CB5CF01 CHEATER // (*улыбается*)
B5B63531 BLUB
DFABC23A ADEN или ATEN (ещё можно ADUN или ATUN)
52B19A22 NUKE
BE79088C EARTHIMPROVED
B216AE7E SPOON
0E07B213 CARPET // см. ниже

EditorCodes[]
A2C09326 BUILD
1F944BB3 MOBIUS
DE07154D CYCLONE
0E07B213 CARPET // да, тот же самый код - он одновременно включает режимы Cheat и Editor
16B170B1 EDITOR
Сразу оговорюсь, что режимы Play и Cheat ничем не отличаются по коду (возможно, когда-то и были разные), а вот Editor не запускается, ибо требует файл сценария какой-то (возможно, в этом режиме игра грузит их из каталога, а не из .MIX архива).
Да, демка на современном компьютере запускается весьма неохотно, так что нужно несколько приседаний сделать:
CODE
RA95.EXE // set framerate to 60 FPS
001AC080: 53 B8
001AC081: 51 3C
001AC082: 52 00
001AC083: 56 00
001AC084: 57 00
001AC085: B8 C3

И заменить файл THIPX32.DLL такой пустышкой (скомпилировать перед этим), иначе оно будет пытаться вызвать какие-то функции в ядре системы, которых на Windows XP уже нет (в демке игры по сети всё равно нет, так что не страшно что заглушка очень тупая и внутреннему формату не соответствует):
CODE
library THIPX32;

function _Thipx_ThunkData32: integer;
begin
result:=1;
end;

function _IPX_Initialise: integer;
begin
result:=1;
end;

function _IPX_Open_Socket95: integer;
begin
result:=1;
end;

function _IPX_Close_Socket95: integer;
begin
result:=1;
end;

function _IPX_Get_Connection_Number95: integer;
begin
result:=1;
end;

function _IPX_Send_Packet95: integer;
begin
result:=1;
end;

function _IPX_Broadcast_Packet95: integer;
begin
result:=1;
end;

function _IPX_Get_Local_Target95: integer;
begin
result:=1;
end;

function _IPX_Start_Listening95: integer;
begin
result:=1;
end;

function _IPX_Shut_Down95: integer;
begin
result:=1;
end;

function _IPX_Get_Outstanding_Buffer95: integer;
begin
result:=1;
end;

exports
_Thipx_ThunkData32,
_IPX_Initialise,
_IPX_Open_Socket95,
_IPX_Close_Socket95,
_IPX_Get_Connection_Number95,
_IPX_Send_Packet95,
_IPX_Broadcast_Packet95,
_IPX_Get_Local_Target95,
_IPX_Start_Listening95,
_IPX_Shut_Down95,
_IPX_Get_Outstanding_Buffer95;

end.
А ещё в файле "REDALERT.INI" добавить:
CODE
[Options]
Resolution=yes
Чтобы оно в 640x480 запускалось, ибо у меня монитор 640x400 не поддерживает.

В отличие от The Neverhood здесь из-за хитровыделанного алгоритма ничего оптимизировать особо не получилось, поэтому разбив на 4 ядра пришлось ждать все 6+ часов, пока оно отбрутфорсится. Искал, как нетрудно догадаться, хеши для 90046ECF и BE79088C, но заодно и уже известные два решил тоже забрутфорсить - раз всё равно считается, то что добру пропадать, верно?
Хеш 90046ECF - смешной. Не любите Anthrax? Пожалуйста, есть Nirvana:
90046ECF NIRVANAERRANT
90046ECF NIRVANASBRAKY
90046ECF NIRVANASFRAGS
Nirvana не нравится? А, может, вы в Worms играете?
90046ECF FIREARMEDBANANA
И в Worms не играете? Ну, есть тогда несколько экзотических, на выбор:
90046ECF RAINERAMULET
90046ECF JAILOREXPRESSWAY
90046ECF BAILOREXPRESSWAY
Для BE79088C, кстати, было ещё одно нормальное (более или менее) совпадение - EUROPESAPLING.

Что касается кодов, про которые мы говорили в этой теме ранее, то, например, у кода для пасхального яйца тоже было много совпадений, но все дурацкие. Вот ещё несколько, если интересно:
72A47EF6 NONPRIZABLE // да и не надо - я человек скромный
72A47EF6 NONPROFITGOD // эх, какой код хороший (погуглите с запросом "новости взаимное безвозмездное одаривание" без кавычек)
72A47EF6 NORTHGLOOMS // ну, а что вы хотите - тут холодно и дни короткие
72A47EF6 ELECTROCONTRACTILITYCHECKROLL // приз за самое длинное словосочетание

Тот старый хеш командной строки интересен тем, что когда для других сотни совпадений (в файле с результатами практически 2 тысячи строк), то для D95C68A2 их было, натурально, всего 10:
D95C68A2 CYAATHIAHIELAMEN
D95C68A2 FRAGORJAMBING
D95C68A2 FRAZEDBOLIMBA
D95C68A2 FRISONNUCLEOLATE
D95C68A2 FROMINSTALL
D95C68A2 FROWSHOMOGENIES
D95C68A2 FRUGALLYPIMLICO
D95C68A2 OFFENSELESSNESSENCLARET
D95C68A2 ORLEANSCONVIVIALIZE
D95C68A2 RABBINATEPERLING

Такие дела. Теперь по хешам уже точно всё.
Если, конечно, не объявится кто-нибудь из разработчиков игры и не заявит, что код для хеша 72A47EF6 от пасхального яйца на самом деле был BOLDLYSIXTEEN или DADDYRAISING. (*улыбается*)
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме
-=CHE@TER=-   Command & Conquer: Red Alert [Hidden Easter Egg]   Jun 2 2014, 13:23
Siberian GRemlin   Да, я сам видел там много приколов, но как их запу...   Jun 2 2014, 13:35
-=CHE@TER=-   Смотри какая штука - там есть дикая функция, котор...   Jun 2 2014, 17:38
Siberian GRemlin   Будет пропущен вступительный ролик (там ещё какая-...   Jun 12 2014, 17:31
-=CHE@TER=-   После установки игры первый запуск автоматически н...   Jun 13 2014, 10:08
Axsis   Нашел вот по RA2 статью по ключам запуска. Возможн...   Jun 3 2014, 19:41
-=CHE@TER=-   Прикольно, только по хешу, увы, не подходит. Хотя ...   Jun 3 2014, 20:18
Siberian GRemlin   А ты как смотрел «RA95.DAT»? У меня что-то «IDA» е...   Oct 25 2014, 05:21
-=CHE@TER=-   А у тебя какая IDA? Здесь, может быть, такая же хр...   Oct 25 2014, 10:13
Siberian GRemlin   5.2.0.908. «Кирандию» как раз хавает. Ладно, не та...   Oct 25 2014, 11:26
-=CHE@TER=-   Что за строчка-то? Можешь её полностью процитирова...   Oct 25 2014, 16:49
Siberian GRemlin   $205C60   Oct 25 2014, 17:11
-=CHE@TER=-   Короче, рассказываю: 1) Открываешь свой файл через...   Oct 25 2014, 18:18
-=CHE@TER=-   Товарищ Siberian GRemlin! Во-первых, поздравля...   Nov 2 2014, 14:02
Siberian GRemlin   1) Путь установки был предложен как... "C:...   Nov 2 2014, 16:12
-=CHE@TER=-   Ага, понятно. P.S. Терпеть не могу это слово.А ка...   Nov 3 2014, 18:41
-=CHE@TER=-   Короче, отриверсил я эту фигню из ассемблера. Всё ...   Nov 19 2017, 14:30
-=CHE@TER=-   Мву-ха-ха-ха-ха!!! А я взломал второй ...   Nov 22 2017, 18:33
-=CHE@TER=-   Офигеть!!! Серьёзно!!! Наш...   Nov 25 2017, 12:25
-=CHE@TER=-   Не думал, что вернусь к этой теме, но... Сделал се...   Apr 10 2020, 18:20
-=CHE@TER=-   Так, в теме про The Neverhood подробности написал,...   Apr 11 2020, 14:53
Siberian GRemlin   А бету ты смотрел?   Apr 11 2020, 15:12
-=CHE@TER=-   Это та, которая была у тебя в последней новости на...   Apr 11 2020, 15:18
Siberian GRemlin   Это та, которая была у тебя в последней новости н...   Apr 12 2020, 07:58
-=CHE@TER=-   Поглядел бегло бету. Код для пасхального яйца есть...   Apr 12 2020, 13:49
Siberian GRemlin   Пардон, что не по теме, но если у тебя доступ на B...   Apr 14 2020, 15:42
-=CHE@TER=-   Понятно, жаль, а то я за ней уже не один год охочу...   Apr 15 2020, 10:36
-=CHE@TER=-   Исходники. https://github.com/electronicarts/CnC_R...   Jun 5 2020, 16:11
-=CHE@TER=-   Если, вдруг, кому интересно будет: Код игры Comman...   Aug 5 2020, 13:48
Siberian GRemlin   Если, вдруг, кому интересно будет: [url=https://h...   Dec 10 2020, 14:47
-=CHE@TER=-   Случайно наткнулся на [url=https://habr.com/ru/pos...   Dec 10 2020, 17:09


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 26th April 2024 - 09:44