IPB

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

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


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 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=-
Jun 5 2020, 16:11
Сообщение #2


Walter Sullivan
***

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



QUOTE(Siberian GRemlin @ Jun 4 2020, 18:02) *
О-о-о! Спасибо!
Неожиданно, они опубликовали оригинальные исходные коды с минимальным количеством изменений.

Во-первых, хочу нас всех поздравить, потому что:
CODE
==> /REDALERT/INIT.CPP:
/*
** Special flag - is C&C being run from the install program?
*/
case PARM_INSTALL:
  Special.IsFromInstall = true;
  //  If uncommented, will disable the <ESC> key during the first movie run.
//  BreakoutAllowed = false;
  break;

==> /REDALERT/DEFINES.H
#define PARM_INSTALL 0xD95C68A2 // "FROMINSTALL"
Т.е. первый хеш я взломал правильно.

Во-вторых, к сожалению, строки для второго хеша, увы, нет:
CODE
/REDALERT/NETDLG.CPP
if (Obfuscate(Session.GPacket.Message.Buf) == 0x72A47EF6) {
  Session.WWChat = 1;
  Clear_Listbox (&playerlist);
  Start_WWChat(&playerlist);
}

В третьих, в файлах "DEFINES.H" от обеих игр можно посмотреть несколько других хешей (которые я по просьбе перебирал в сообщении выше), но там, увы, тоже строки только к парочке есть.

Зато я глянул в /REDALERT/INIT.CPP код функции Obfuscate() и офигел. Комментарии заставили меня хохотать в голос! Писал эту глупость JLB - Joe L. Bostic, главный (!) программист игры. Просто почитайте комментарии перед функцией и в ней самой. Пафосные рассуждения про CRC, PGP и "thwart casual hackers" особенно смешные.
Кстати, помните наркоманию про:
k = key1 xor key2 xor key1;
которая вырождалась просто в key2?
CODE
/*
** Perform a self referential transformation. This makes a reverse engineering
** by using a cause and effect attack more difficult.
*/
code = code ^ copy;
Что такое "cause and effect attack", которую данный код должен был по мощной задумке автора затруднить, я так понять и не смог, если даже по ассемблерному коду ненужность этой операции была очевидна и её можно было тупо выбросить, оставив только хеш от развёрнутой строки.

Если же говорить в общем, то в профессиональной среде очень часто замечаю за программистами такую вещь: чем больше человек пишет на ООП, классах и прочих объектах, тем меньше он понимает, умеет и может элементарных вещей. В предпоследней фирме где я работал приходилось программистам объяснять как с .BAT файлов можно автоматическую компиляцию настроить для быстрой сборки свежего выпуска новой версии. Что, вообще говоря, очень странно программистам не знать и не уметь. И, да, при этом там были классы-объекты-ООП-гроб-кладбище-сидор.
Я могу ещё более адовые примеры из практики привести, но мне всегда была непонятна эта победа упорства над здравым смыслом в попытке втащить дополнительный уровень головняка в код, при этом ещё и без внятного обоснования зачем.
Да, это я к тому, что обе игры написаны с применением ООП, при этом с вот такой вот заумно "обоснованной" дурью в простых местах.
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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 29th March 2024 - 11:07