четверг, 22 мая 2014 г.

Writeup by Arina(blondie task)


Writeup by Arina

Сategory: Crypto(100)

From: PHDays-2014 (Novosibirsk) 

Task:
Seems this blondie read Stephen King:
JACK TORRanc@E THOUGHT: oFFIciOuS lItTlE PrIck.
Ul@LMAN STOOd fIvE-FI@VE, AND WHEN he MoVed, it Was WitH The PrIsSy SPeed tHAT sEEMs To BE tHE EXcluSiVe doMain Of ALl SmalL pLuMP mE@N. THE PART In HiS haiR wAS exACT, anD H@IS DARK SUIT wAS sOBEr BUt COmFOrTinG. I am A Man You CAN BRinG yOUr PrOblEMs To, That SuIT sAId tO The pAYinG CuSTomER. tO tHE@ HIRED HELP I@T SPOKE MORe c@URTLY: tHIs HAD B@ETTER BE GOOD@, YOU. TheRe wAS a rED CARnatIOn In Th@E LAPEL, PERHAPs So That N@O ONE ON TH@E STREET wOuLD MiStAKe sTuARt UlLmAN fOr The lOcal UndErTakER.
as He@ LISTENED TO uLLmAN sPeAK, jACk ADMiTtEd To hImSelF tHAT he PrObablY couLD NoT havE LiKed ANy MAN oN tHAT s@IDE OF THE DESk-uNDEr ThE@ CIRCUMSTANces.
UlLmAN had ASked A QuEStIoN hE hADN't CAUght. ThAT wAS bad; uLLmAN wAS tHE TyPe oF Man Who WouLD F@ILE SUCH LapSes AWay IN a mE@NTAL ROLODeX for LATer COnSideRatIoN.
"i'M sOrRy?"
"I ASkE@D IF YOUR Wife fUllY uNderStO@OD WHAT You WoUld B@E TAKING ON HERe. anD TherE'S yOUr Son, Of CoUrSe." hE gLanCED dOwN at ThE apPlIC@ATION IN frOnT oF HiM. "danIeL. yOUr wIFE IsN@'T A BIT INTIMiDATed by ThE iDEa?"
"wENDY is AN exTrAORdinARy WoMan."
"ANd yOUr SoN is ALSo eXtrAORdinARy?"
JACK sMIlE@

Solve:
Первое, что бросается в глаза в этом тексте – это расставленные через некоторые интервалы символы ‘@’ и странно чередующиеся заглавные и прописные буквы. В решении и будем опираться на эти факты.
Подсчитываем количество ‘@’ – их 24 штуки. Их количество и довольно большие буквенные интервалы между собаками дают нам факт полагать, что флаг будет состоять из 24 символов, каждый из которых нужно вычленить из этого интервала.
Как вычленять их – сразу непонятно. Первая мысль: из каждого интервала нужно получать некую сумму в зависимости от регистров  и/или порядка букв. А потом полученное число сопоставить таблице ASCII или просто английскому алфавиту.
Думаю, что стоит пояснить наш ход мыслей, прежде чем мы пришли к правильному ответу.

Попытка первая: просто к сумме +1 за каждую заглавную букву, -1 за строчную и наоборот. Ни к чему хорошему это не приводит, думаем дальше.

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

Попытка третья (Удачная!): прибавляем к сумме номер буквы в алфавите, если буква заглавная и отнимаем ее номер, если строчная (учтем, что алфавит у нас начинается с символа ‘a’ с индексом 0). Получаем последовательность:

73 95 97 77 95 115 84 117 80 105 68 95 98 76 111 78 100 73 101 95 70 108 65 103

Преобразуем каждое число последовательности в соответствующий ASCII символ, и, PROFIT, флаг получен:
I_aM_sTuPiD_bLoNdIe_FlAg

Комментариев нет:

Отправить комментарий