Diskuze k úloze číslo 11
Toto fórum slouží výhradně k diskuzím o úloze číslo 11. Během hry je zakázáno diskutovat o zadání i řešení této úlohy kdekoliv jinde, než zde. K diskuzi o ostatních úlohách prosíme využijte jim příslušná fóra. Prosíme, nekažte hru ostatním!
Re: Diskuze k úloze číslo 11
petr.skovron
(14. 11. 2009 - 15:54)
Sbalit(13)
Imho letos jedna ze dvou nejluxusnejsich uloh.
Akorat me trochu zklamalo, ze kdyz bych chtel podvadet a napadlo by me to, tak ze by se heslo dalo uvidet po grafickem zobrazeni zakryptene varianty (ktera je v tom skriptu zjevne najitelna).
Ale trasovani vimoveho skriptu jsem si vylozene uzival! :-)
Akorat me trochu zklamalo, ze kdyz bych chtel podvadet a napadlo by me to, tak ze by se heslo dalo uvidet po grafickem zobrazeni zakryptene varianty (ktera je v tom skriptu zjevne najitelna).
Ale trasovani vimoveho skriptu jsem si vylozene uzival! :-)
Re: Diskuze k úloze číslo 11
milan
(14. 11. 2009 - 17:20)
Sbalit(11)
Myslis prevest to zakodovane heslo na binarni soustavu a prohlednout si ho?
To by urcite slo. Ona ta uloha byla vubec jednodussi nez to vypadalo. Ale to bylo zaroven i ucelem - mela to byt uloha s 'Aha' efektem - silenost neni az tak silena, jak to na zacatku vypada :-)
Mimochodem, uplne jednoduche by to nebylo. Jsou tam dve (i kdyz primitivni) ochrany - schvalne si to zkus.
To by urcite slo. Ona ta uloha byla vubec jednodussi nez to vypadalo. Ale to bylo zaroven i ucelem - mela to byt uloha s 'Aha' efektem - silenost neni az tak silena, jak to na zacatku vypada :-)
Mimochodem, uplne jednoduche by to nebylo. Jsou tam dve (i kdyz primitivni) ochrany - schvalne si to zkus.
Re: Diskuze k úloze číslo 11
Martin "Marble" Beránek
(14. 11. 2009 - 17:55)
Sbalit(10)
Pěkná šílenost. :) Jak dlouho jste to vymýšleli a psali?
No já jsem nejprv začal trasovat zdroják, aby se u mě vůbec konalo video (pořád mi není úplně jasné, kam se mělo správně psát heslo, já nakonec dokonvergoval k variantě na první řádek místo(!) originálního promptu), ale poté, co se začly množit marky a registry jsem se v tom vcelku ztratil a přešel jsem na umazávání scriptu od konce.
Ale fakt, že jsme celou dobu čekal, že kontrolní fráze bude složená z "x-ek" po zarotování převedených zpátky na písmenka.
No já jsem nejprv začal trasovat zdroják, aby se u mě vůbec konalo video (pořád mi není úplně jasné, kam se mělo správně psát heslo, já nakonec dokonvergoval k variantě na první řádek místo(!) originálního promptu), ale poté, co se začly množit marky a registry jsem se v tom vcelku ztratil a přešel jsem na umazávání scriptu od konce.
Ale fakt, že jsme celou dobu čekal, že kontrolní fráze bude složená z "x-ek" po zarotování převedených zpátky na písmenka.
Re: Diskuze k úloze číslo 11
milan
(14. 11. 2009 - 21:48)
Sbalit(7)
Heslo se mělo psát samozřejmě ZA prompt na prvním řádku (čili za dvojtečku).
Jinak díky za pochvalu úlohy, jsem rád, že cca dva týdny ladění nesou ovoce.
Nejsi první, kdo by rád měl "mazanější" i kontrolu hesla (první jsem byl totiž já :-) ), ale bohužel jsem to musel zavrhnout. Už takhle ta srandička s animací natáhla kód do délky a šokovatelnosti, že testeři měli tendenci utíkat :-) Proto jako nápověda byl přichystaný původní, kratší a výrazně přehlednější kód bez animací.
Jinak díky za pochvalu úlohy, jsem rád, že cca dva týdny ladění nesou ovoce.
Nejsi první, kdo by rád měl "mazanější" i kontrolu hesla (první jsem byl totiž já :-) ), ale bohužel jsem to musel zavrhnout. Už takhle ta srandička s animací natáhla kód do délky a šokovatelnosti, že testeři měli tendenci utíkat :-) Proto jako nápověda byl přichystaný původní, kratší a výrazně přehlednější kód bez animací.
Re: Diskuze k úloze číslo 11
Michal Kubeček
(14. 11. 2009 - 21:53)
Sbalit(5)
Já to vyřešil takovým polopodvodem - při zkoumání maker jsem přišel na
to, že když se po vykonání testu spustí ještě @f, tak se vypíše řetězec,
podle kterého se to kontroluje. Takže pak stačilo postupně zkoušet AAAA,
BBBB, ... a porovnávat s obsahem pomocných řetěců v prostřední části a
kontrolním výsledkem.
to, že když se po vykonání testu spustí ještě @f, tak se vypíše řetězec,
podle kterého se to kontroluje. Takže pak stačilo postupně zkoušet AAAA,
BBBB, ... a porovnávat s obsahem pomocných řetěců v prostřední části a
kontrolním výsledkem.
Re: Diskuze k úloze číslo 11
milan
(14. 11. 2009 - 22:10)
Sbalit(3)
Však to je také v principu správný přístup: poté, co člověk zjistí, proč úloha funguje (vim čte ze souboru jako by to bylo z klávesnice), tak se vyplatí jít "od zadu", když (ten důležitý) konec je tak zřejmý. Pak také úloha není tak těžká, jak se tváří.
Co se týče využití "slovníkového útoku", tak jsem zvažoval obranu proti němu, ale usoudili jsme v kroužku organizátorském, že to už by bylo moc :-)
Co se týče využití "slovníkového útoku", tak jsem zvažoval obranu proti němu, ale usoudili jsme v kroužku organizátorském, že to už by bylo moc :-)
Re: Diskuze k úloze číslo 11
pht
(15. 11. 2009 - 15:32)
Sbalit(2)
Já jsem použil taky polopodfuk. Sekvence `o5j"vPx0p těsně před porovnáním výsledku zobrazí zakódovaný vstup. U toho jsem si všiml, že se vlastně celým procesem jen "lehce promíchá" substituce písmen za pětice znaků z tabulky u "NNNNNAAAAAJJJJJDDDDDIIIIIHHHHHEEEEESSSSSLLLLLOOOOO". Tudíž jsem vzal výsledný kód (před Gratulujeme!) a našel "podobné" pětice v uvedené tabulce a bylo.
Re: Diskuze k úloze číslo 11
shichman
(16. 11. 2009 - 5:32)
Sbalit(1)
Při výpisu zprávy o správném hesle se tiskne obsah registru "v (a pak se nahrazuje právě tou zprávou). To mi připadalo zajímavé, takže jsem si na vstup dal postupně abecedu, přes :reg"v zjistil co z toho vypadlo, určil délku hesla na 9 znaků a pak porovnával výstupní pětice pro abecedu s tím, co očekával ViM a orgové.
Re: Diskuze k úloze číslo 11
Martin "Marble" Beránek
(15. 11. 2009 - 10:11)
Sbalit(1)
Tak jsem se na to podíval vyspalý a už to taková záhada není, stačí aplikovat patch "14ggAI" a bude to odolné i proti sabotérům, kteří mají v systémovém (to aby nepomohlo -i NONE) vimrc schováno set ignorecase.
Re: Diskuze k úloze číslo 11
gavento
(15. 11. 2009 - 0:19)
Sbalit(1)
Trala! Krasna.
Musim se priznat, ze jsem to prave tak "vyhaluzil" -- potom, co si to clovek zpomalil, opticky zjistil, jak se to hybe, a nechal si ukazat, co ma vyjit, (prepsanim tabulky znaku na kontrolni vysledek), uz by stacilo to "rucne" o 17 posoupnout zpet, ale protoze vetsina vrsku/spodku byla xxxx nebo slo vylozene poznat, k cemu patri, bylo to opravdu "videt po haluzi".
Jsem rad, ze me ani toto nedonutilo cist manual ;-)
Musim se priznat, ze jsem to prave tak "vyhaluzil" -- potom, co si to clovek zpomalil, opticky zjistil, jak se to hybe, a nechal si ukazat, co ma vyjit, (prepsanim tabulky znaku na kontrolni vysledek), uz by stacilo to "rucne" o 17 posoupnout zpet, ale protoze vetsina vrsku/spodku byla xxxx nebo slo vylozene poznat, k cemu patri, bylo to opravdu "videt po haluzi".
Jsem rad, ze me ani toto nedonutilo cist manual ;-)
Re: Diskuze k úloze číslo 11
mirousek
(17. 11. 2009 - 15:27)
Sbalit(1)
3 hodiny jsem se snažil ladit skript. Bezúspěšně.
Pak jsem zakomentoval přepsání porovnání pro výslednou hlášku, zůstal mi hash, který se dal rozdělit po znacích a poslední trojice odpovídala poslední trojici z porovnávacího řetězce. Udělat zpětný převod už bylo triviální … škoda, že jsem to neudělal o 3 hodiny dříve :)
Pak jsem zakomentoval přepsání porovnání pro výslednou hlášku, zůstal mi hash, který se dal rozdělit po znacích a poslední trojice odpovídala poslední trojici z porovnávacího řetězce. Udělat zpětný převod už bylo triviální … škoda, že jsem to neudělal o 3 hodiny dříve :)
Re: Diskuze k úloze číslo 11
milan
(19. 11. 2009 - 10:55)
Sbalit(1)
Mimochodem, překvapuje mě, že nikdo nepřišel na to nejkratší řešení...
Po zkusmém zadání libovolného vstupního slova a pohledem na řádek 'NAJDIHESLO' a dva pod ním, si uvědomíme, že skript nic nešifruje, jenom převádí každý znak hesla na vykreslené 'písmenko' z 'x' a mezer, a to zcela běžným způsobem, jakým fungují bitmapové fonty: binární reprezentace (hexa)čísel pod sebou nakreslí znak.
Nejméně pracné řešení tedy je žádný kód ve vimu vůbec neluštit, vzít tu hexa konstantu z porovnání na správné heslo, převést do dvojkové soustavy (třeba pomocí bc) a zalámat po čtveřicích bitů (šířka fontu je 4). Pak už pohodlně čteme: ZELEZNICE...
Po zkusmém zadání libovolného vstupního slova a pohledem na řádek 'NAJDIHESLO' a dva pod ním, si uvědomíme, že skript nic nešifruje, jenom převádí každý znak hesla na vykreslené 'písmenko' z 'x' a mezer, a to zcela běžným způsobem, jakým fungují bitmapové fonty: binární reprezentace (hexa)čísel pod sebou nakreslí znak.
Nejméně pracné řešení tedy je žádný kód ve vimu vůbec neluštit, vzít tu hexa konstantu z porovnání na správné heslo, převést do dvojkové soustavy (třeba pomocí bc) a zalámat po čtveřicích bitů (šířka fontu je 4). Pak už pohodlně čteme: ZELEZNICE...