Po drátě 5: řešení úlohy č. 84

DVD image byl poměrně normálním DVD videem (modulo bugy programu dvdauthor, se kterými jsme moc nadělat nemohli) obsahujícím nahrávku průchodu zajímavými částmi staré hry Prince of Persia.

Při analýze DVD jste mohli přijít na to, že obsahuje podezřelé množství DVD menu. Navíc některé sekvence se objevují víckrát, pokaždé s jiným vloženým písmenem.

K vyřešení stačilo si hru "zahrát" v některém z DVD přehrávačů, které korektně implementují DVD menu. Tedy například v okamžiku, kdy je potřeba, aby princ přeskočil propast, zmáčknout na dálkovém ovladači (či jeho implementaci v daném přehrávači) šipku nahoru. Ano, opravdu pouze šipku nahoru, nikoliv šipku nahoru a Enter.

Během hraní princ postupně míjí písmenka, která stačí přečíst. Dají heslo "VEZEN".

Zajímavosti

Stopy s písmenky byly na DVD ve více verzích, aby nešlo heslo uhodnout bez dekompilace menu nebo bez skutečného hraní hry. (Vybrání správné stopy v jednotlivých částech hry zajišťovala jednotlivá menu.)

Původní nápad zahrnoval hru Alley Cat a obsahoval navíc titulky zakrývající písmena hesla. Verze se hrou Prince měla rovněž obsahovat takové titulky, bohužel se nám do začátku hry nepodařilo dvdauthor přinutit, aby takové DVD vyrobil. Nakonec je to možná dobře, už takhle to bylo těžké až až.

Různé linuxové DVD přehrávače mají různé bugy, co se implementace DVD menu týče. Zatímco pro přehrávání běžných DVD funguje vlc velmi spolehlivě, na našich zamotaných menu se příliš nechytal. U mplayeru to bylo obráceně - s normálními DVD mívá občas problémy, naše DVD ale zvládal dobře.

Autorem původního nápadu je Milan Vančura, současnou implementaci spáchali Jirka Benc a matějčík.

Re: Po drátě 5: řešení úlohy č. 84 tomi (8. 12. 2010 - 14:48) Sbalit(2)
No, šipky v mplayeru ani xine ani vlc nedělají vůbec nic, ale postupem „přehrávej tracky od 1 až do 52 a zapisuj písemka těch, která nenásledují restartem hry“ to šlo taky, naštěstí.
Re: Po drátě 5: řešení úlohy č. 84 Michal Kubeček (8. 12. 2010 - 14:57) Sbalit(1)
On Wed, Dec 08, 2010 at 02:48:48PM +0100, tomi wrote:
> No, šipky v mplayeru ani xine ani vlc nedělají vůbec nic, ale postupem
> „přehrávej tracky od 1 až do 52 a zapisuj písemka těch, která
> nenásledují restartem hry“ to šlo taky, naštěstí.

Mně skokem na začátek pokračovalo buď všechno nebo nic (podle způsobu
přehrávání). :-(

Re: Po drátě 5: řešení úlohy č. 84 Jirka Benc (org) (8. 12. 2010 - 15:04) Sbalit(1)
V mplayeru jde mapování tlačítek pro DVD menu na skutečné klávesy nastavit v input.conf, standardně je to namapované na numerickou klávesnici.
Re: Po drátě 5: řešení úlohy č. 84 Bilbo (8. 12. 2010 - 18:32) Sbalit(1)
Já to zkoušel v SMplayeru, což je nadstavba nad MPlayerem. Položka v menu "DVD menu" byla zašedlá tak jsem usoudil, že tam žádné menu není - SMPLayer přehrával tracky prostě po sobě od 1 do 52 (+ v menu byla možnost přeskakování mezi nima)

To že heslo bude mít asi 5 písmen složených z těch 8 stejných jsem tedy tipl správně, ale ve slovníku bylo vyhovujících asi kolem 100 slov.
Tak jsem zkoušel jestli se nebude dát zjistit nějak u každého z těch 5 písmen který track je správný - např. podle délky (ne, všechny jsou stejné), podle audia (to taky vypadalo, že audio je stejné), pak jsem to zkoušel jestli nebude nějaká šifra v těch časech ve skóre (podezřele často tam bylo číslo něco málo přes 50), ale tam jsem nic nenašel .... no tuhle jsem nakonec nedal
Re: Po drátě 5: řešení úlohy č. 84 thefox (8. 12. 2010 - 23:11) Sbalit(1)
Tak pri lúskaní tohoto som vymyslel už mnoho. Najprv som hľadal postupnosť: zoradiť tracky "chronologicky" podľa hry (miatla ma ale tá pasáž z PoP2), extrapolovať a prejsť modulo 52 (alebo 51 alebo 53) - nič. Iné postupnosti (mocniny dvojky, násobky dvojky, fibonacci) - nič. Hľadať detaily, v ktorých sa jednotlivé tracky líšia - nič. Titulky - nič. Sledovať obsah ako surové dáta - vôbec nič :-D.

Keď som to pustil v xine, dal mi malú nápovedu v tom, že v podozrivých intervaloch preblikával titulok okna na podozrivé veci (menu, CDROM a pod.), no potom ma zviedol na falošnú stopu hláškou v konzoli: "libdvdcss error: no key but found encrypted block". Skúsil som všetky možné dešifrovacie knižnice (poznámka o nutnosti mať prehrávač skompilovaný s "vhodnými knižnicami" v zadaní tomu nahrávala) - nič.

DVD obsahuje dva .VOB súbory, v prvom sú nejaké úryvky (menu?) v druhom vlastný obsah, toto ma tiež silne zmiatlo, hlavne čo sa týka počtu trackov. mplayer mi pustil toto menu pred introm, xine aj vlc ho preskočili. Xine sa mi navyše zacyklilo (čo je asi zámer, po smrti pustiť DVD od začiatku), takže som myslel, že to jednoducho zle prehráva - rovnako sa správalo aj vlc, ktoré bolo podľa zadania zlé (samozrejme som ho napriek tomu skúšal :-) ).

Mnoho, mnoho možností a nakoniec to bolo také jednoduché :-). Skúsiť ovládať menu ma naozaj ani nenapadlo, takže táto úloha ostala u mňa nerozlúsknutá, no aspoň som sa dozvedel čo-to o formáte DVD a zahral som sa Princa (nehral som ho fakt riadne dávno, tipujem viac, ako 10 rokov, aj mi to šlo celkom stuha :-) ).

Podľa správneho vzoru riešenia sa mi podarilo heslo odhaliť, ale len v xine - mplayer sa mi dáko nechytá.