Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Příklad ITES na lámání si hlavičky #101
#1
Tongue 
Mám tu jednu takovou ne/zajímavou pitomost pro velmi chytré hlavičky (z mého pohledu, kdo na to 100% přijde, tak má IQ asi 350 - ale třeba na to není třeba nadprůměrná inteligence, jen já jsem nadpůrměrně blbej Pinkiesmile ).


Zadání je velmi jednoduché (ale řešení nikoliv; prakticky neřešitelné, jde spíš o "zábavu" při zkoumání něčeho, co nedává smysl, ale přitom to funguje):

Šance, že tuto úlohu vůbec ani nenakousnete, dosahuje astronomických výšin, takže kdo si chce ušetřit zklamání, nemusí ani dál pokračovat (proti tomu byly matematické úlohy naprostá brnkačka). Není (ani nemůže z podstaty být) postavena na obecných znalostech.. cílem příspěvku je spíš humornou formou poukázat na to, že ne všechno je tak snadné, jak je nám předkládáno, byť pro zábavu.


Řekněme, že se k vám dostal tento zvukový záznam nějakého signálu (přikládám jako MP3):


.zip   zvukDelsi1.zip (Velikost: 11,61 KB / Stažení: 10) (MP3)

.zip   zvukDelsiWAV.zip (Velikost: 1,77 KB / Stažení: 5)

a Vaším úkolem je přijít na to, o co se jedná. Jinými slovy: dekódovat jej.

Kdo si nerozumí se zvukem, přikládám rovněž v grafické podobě:

[Obrázek: obrazek1ve.png]


Protože předpokládám, že na toto žádná sebevíc inteligentní bytost na Zemi nemůže přijít, přiložím vysvětlení, co je to celé za hovadinu, což je současně také první nápověda:


Napadlo vás už při sledování scifi filmů, jak moc jednoduché by asi mohlo být dešifrovat mimozemský signál? Nebo se nabourat do mimozemských počítačů? Či se naučit mimozemský jazyk, abychom spolu mohli komunikovat?

No, podle Hollywoodu to zvládne průměrně vzdělaný člověk s technickým nadáním do pár hodin, maximálně dnů.

Protože takoví jsme tu jistě všichni, tak mi jako odpověď bude stačit i to, že si jen tipnete, co daná data vlastně jsou. Šance, že se trefíte, je docela vysoká Ajsmug



Nyní, když pravděpodobně víte, co máte hledat, bych si dovolil nabídnout nápovědu číslo 2, která vám VELMI ulehčí zpracování úlohy. Pokud jí tedy vůbec potřebujete (že by?)..


Zvukový záznam ve své původní podobě jako PCM, který sice na poslech nedává moc smysl (menší než ona MP3), ale mohlo by Vám velmi pomoci sdělení, že na rozdíl od MP3 se jedná o NEKOMPRIMOVANÝ formát.


.zip   zvuk.zip (Velikost: 257 bajtů / Stažení: 6)

(WinAMP jej nejspíš nepřehraje, ale otevřít v nějakém audio editoru půjde - SoundForge například - nápověda: umožňuje odečítat hodnotu amplitudy)

A kdo je spíš na vizuál, mám tu i základní obrázek:


.bmp   obrazek1.bmp (Velikost: 1,13 KB / Stažení: 14)

kdo ho nevidí (načíst ho v nějakém softwaru budete nejspíš muset tak jako tak), zde je jeho (pixelově) zvětšená verze:

   

Ten první, rozmazaný obrázek, by nejspíš odpovídal tomu, co bychom získali spolu se šumem z odposlechu jejich techniky (neznáme ani frekvenci).



Řešení přinesu příští týden, jelikož jsem si jistý, že [spoiler: dekódovat něco takového není vůbec tak snadné, jak se nám snaží dokázat televize] a že bude velmi potřeba Pinkiesmile
DeviantArt & Home, Bronies galerie. Ask me.
Odpovědět
#2
Trocha mého pozorování:
[spoiler: Že to jsou data a ne zvukový záznam je poznat na první pohled. Co je zajímavé je, že zvuk.wav je sinusoida, kdežto zvukDelsi je square wave. Tímpádem nebudou důležité hrany a přechody, ale jen peaky (resp. konstantní stavy na té square wave), kde předpokládám jeden stav = jedna hodnota. Hodinová frekvence je něco jako 45Hz. Stavů to má hodně, od oka možná 128. Z metadat ještě vyčtu, že to někdo vyrobil v SoundForge Rainbowlaugh
[Obrázek: VSpj_rXLS7q90y5myidH-A.png]
[Obrázek: MuS2fCWITa6ZXnUHNRvKfQ.png]
]
Twilicane brings the pain!
První Equestrijský Drakobijcobijec
Odpovědět
#3
@Dex:
Super, na druhý pohled je zřejmé i jisté opakování, což by mohlo osvětlit, jaká o jaká data se jedná (tady už bohužel je potřeba "trochu" konkrétních znalostí dvou oblastí, z nichž jedna je technická a druhá nikoliv).

Už tedy víme, co signál není - a tedy záznam mimozemské řeči Pinkiesmile Napovídá už ta nesmyslná krátkost signálu (počet změn).

A ano, důležité jsou peaky (jejich hodnotám odpovídá i grafické vyjádření obrázku - jeden pro sinusoidu, druhý pro čtvercové vlny (frekvence v tomto případě není až tak důležitá).

Možná trochu napovím, že přenosová rychlost cca. těch 45Hz (45 baudů bez start/stop bitů) by mohla TŘEBA odpovídat takové primitivnější přenosové rychlosti z audio kazety u těch nejhorších 8 bitových počítačů.. Ajsmug ale to bych trochu odváděl pozornost jinam
(obsahuje možná další nápovědu)
DeviantArt & Home, Bronies galerie. Ask me.
Odpovědět
#4
Poslední nápověda pro tipování (pokud jste nečetli Dexe..)
velká jak' kráva:

něco podobného jako ve filmu Den nezávislosti 1

Ještě větší nápověda typu megaprase: [spoiler: rýma]

Tak doufám, že po přečetení této "jasné facky" na konci někdo nenapíše po Geňovsku "ha ha há a bez nápovědy!" Pinkiesmile

   


.zip   data.zip (Velikost: 220 bajtů / Stažení: 2)

DeviantArt & Home, Bronies galerie. Ask me.
Odpovědět
#5
[spoiler: Nalezení dat v signálu je rozhodně ta jednodušší část. Už víme (a dalo se i podle vzhledu očekávat), že hodnoty se skrývají v amplitudě. U té delší zvukové nahrávky byl každý stav roztáhnut přes několik desítek samplů, zvuk.wav pak už obsahuje čistá data (WAVE je nekomprimovaný, takže lze hodnoty číst přímo hexdumpem a hlavička očekávaný 1 byte na sample v jednom kanálu potvrzuje). Hlavička WAVE formátu je dlouhá 44 bytů, po jejich oříznutí se dostaneme k samotným 68 bytům dat. Grafici je mohou vyčíst ze světelných úrovní dodané bitmapy, případně data.dat je obsahuje na stříbrném podnosu.]
[Obrázek: hadanka-data.png]

[spoiler: Zaujaly mě podobné sekvence be 27 01 00 00, bf 27 01 00 00 a ba 27 01 00 00, ale další vzor jsem nenašel. Zkusil jsem taky frekvenční analýzu podle bytů: ]
Kód:
{'00': 6, 'be': 4, '01': 4, 'aa': 4, 'b0': 4, '27': 3, 'ba': 3, 'cd': 3, '07': 2, 'ac': 2, '24': 2, '20': 2, 'ff': 2, 'b4': 2, '21': 2, 'ab': 2, 'a5': 2, 'b6': 2, 'b2': 2, 'bf': 1, '1e': 1, '3c': 1, '74': 1, '2c': 1, '34': 1, 'eb': 1, 'f4': 1, '09': 1, 'd0': 1, 'b1': 1, 'a6': 1, 'bd': 1, 'bb': 1, 'b8': 1}

Dál zatím nevím, uvidíme, jestli to Dex nebo někdo jiný posune zas o kousek dál. Twilightsmile

@Martin: Je jen trochu škoda, že jsi ty úvodní nápovědy poslal tak rychle - sice jsem je ani moc nepotřeboval, ale když už vidím že existují, tak se neubráním jejich přečtení.
Odpovědět
#6
@Dex
[spoiler:
Ono to je naprosto normální - data budou podobná. Tvoje křivka je interpolací - něco takového dostaneš po filtru při DA převodu.
]

Jinak, nažhavím své analytické nástroje a taky se na to podívám.
Love and tolerate
Odpovědět
#7
Ok, za nápovědy se omlouvám, ale myslím, že v nich není kromě "umělecké omáčky" navíc nic, co byste už neměli (když si odstraníte hlavičky souborů, což jak vidím se povedlo Pinkiesmile ), a pro formu spolupráce myslím, že není špatné neutajovat něco, na co už někdo přišel.

S řešením tedy počkám.

@Jakluk: [spoiler: možná by bylo lepší zobrazení po bytech než wordech]
DeviantArt & Home, Bronies galerie. Ask me.
Odpovědět
#8
Zkusil jsem jestli to není nějaký známější machine code, ale není, neodpovídá to žádným pořádným ASM opcodům.
Twilicane brings the pain!
První Equestrijský Drakobijcobijec
Odpovědět
#9
Tak tu máme řešení (a až ho uvidíte, asi mne pošlete s takovou "srandou" do háje Pinkiesmile ), protože Dex na to prakticky přišel, jen o tom neví Pinkiesmile Blahopřeji.








Ale pojďme na to postupně pro ty, co nebyli tak rychlí:



Spoustu lidí napadlo si soubor otevřít v nějakém prohlížeči buď grafiky a nebo zvuků, protože oba nástroje umožňují odečítat hodnoty jednotlivých vzorků (v případě grafiky pixelů). Hardcorovci si mohli otevřít soubor v hexa prohlížeči, osekat hlavičku (a paletu), a pak studovat to samé.

   

No a protože dekódování signálu cizího původu pochopitelně vyžaduje multidisciplinární znalosti (nejen umět s počítačem), předpokládám, že v tomto místě by většina lidí (ne-li všichni) byla naprosto v pytli, jako bych byl já.


Nevím, koho napadlo, že v názvu příspěvku je už nápověda (než si přečetl ty spoilerové), že se jedná o hledání signálů mimozemšťanů (SETI) a vzhledem k mé zálibě v programování, a nápovědě, která odkazuje na jeden konkrétní film, mohlo by už být jasné, co vlastně dekódujeme, ale to by nám samo o sobě nepomohlo.


Podobně jako expert na opravy rádií v onom filmu bychom měli být schopni z daného signálu vyčíst, na jakém operačním systému běží mateřská loď a úspěšně ho hacknout.. (ironie)

https://youtu.be/4rf3eB5bFe4?t=359

(zvuk a obraz jsem použil proto, že ufoni nemusí používat pro uložení softwaru stejné metody jako my, a kdo trochu rozumí, jak jsou kódovaná data na HDD či CD, a to i když nejsou šifrovaná, tak mu musí být jasné, že bez znalosti těchto věcí + znalosti formátů souborů jsme v podstatě bezradní).


A nejsme pochopitelně o nic méně v zádeli než na začátku, protože víme absolutní kulové o tom, v jakém jazyce ufoni píší, na jakém hardwaru a architektuře to běží, a jaké služby (či jaké porty a adresy) tam jsou použité. O tom, že by přístup do daného systému by byl nejspíš zaheslován, a ještě k tomu šifrován (a určitě by nešlo o obyčejné 128bit) se ani nezmiňuji Pinkiesmile


Postup:
Jestli máte dost vůle, zkuste odolat otevření spoileru Rainbowlaugh a dokončit řešení bez něj


Ta možná nejvíc pravděpodobná možnost (a také nejjednodušší na rozluštení), která někoho může napadnout, že data uloží do spustitelného souboru typu COM (ha, zrada číslo 1, je to DOSový program, navíc bez EXE hlavičky) a spustí ho (kdo jsme paranoidní, tak v nějakém emulátoru).

Za předpokladu, že Váš OS si s DOSovým programem poradí, máte značně usnadněnou situaci.

Případně někoho mohlo napadnout použít Debuger. Fór je ale v tom, že ten program (byť se přiznám, že je psán pro zjednodušení v assembleru s využitím služeb DOSu) mohl být klidně pro jiné procesory než x86 (PC), a měli byste smůlu Ajsmug (ale nejsem taková svině)

[Obrázek: debuger.jpg]

Člověk, který je opravdu génius (zvlášť, pokud je to programátor) by měl jistou šanci, že by v dané sekvenci čísel poznal strukturu programu už na první pohled (podobně jako i řeč má svou strukturu - nejvíc četná slova jsou často ta nejkratší - o pozici takových dat ve vzorku něco vypovídá i opakující se výskyt určitých znaků, například samohlásek, což kódování/šifrování nezávislé např. na pozici znaku zachovává).

   

A pochopitelně, byť program vypíše určitý text, i ten je kódován, protože ani UFONi by vám práci neusnadnili. A abych byl o to větší svině, není ani v češtině Pinkiesmile


Takže, o co jde?


Napsal jsem si program, který zakóduje text (pouhá negace bitů by byla příliš snadná, kdyby někoho napadlo si soubor vypsat invertovaně):


program Kodovani;
var InF,OutF : text;
   Znak : char;
   Retez : string[3];
begin
Assign(InF,'text.txt');
Assign(OutF,'text.dat');
Reset(InF);
Rewrite(OutF);
Write(OutF,'znaky db ');
while not Eof(InF) do
begin
 Read(InF,Znak);
 Znak := char((Ord(Znak)) xor $ff+32);
 Str(byte(Znak),Retez);
 Write(OutF,Retez);
 if not Eof(InF) then Write(OutF,',');
end;
Close(InF);
Write(OutF,',$');
Flush(OutF);
Close(OutF);
end.


(i toto "šifrování" by se však dalo snadno rozlušit hrubou silou a programem disponujícím slovníkem všech slov všech jazyků naší planety pro testování, zda daná metoda dává nějaký smysl, protože negace a sčítání/posun 0-255 jsou ty nejprimitivnější metody kódování začátečníků, pokud nepoužíváte nahrazovací tabulku).

Výstup jsem vložil do zdrojového textu assembleru a zkompiloval (fasm.exe program.asm):


org 100h
use32
mov esi,znaky
mov edi,znaky
push ds
pop es
cykl:
lodsb
cmp al,'$'
je konec
sub al,32
xor al,$ff
stosb
jmp cykl
konec:
mov edx,znaky
mov ah,9
int 21h
mov ah,1
int 21h
int 20h
znaky db 208,171,190,177,165,166,176,170,189,182,255,176,178,186,187,186,171,176,170,184,176,165,190,182,178,190,172,170,'$'


Znak "dolaru" na konci je jedním z mála, který dává smysl, ovšem pouze někomu, kdo ještě zažil éru programování pod DOSem a ještě k tomu používal jeho interní funkce (nepsal si vlastní, rychlejší). Ale těm, kteří si přičuchli k assembleru x86 už mohly být podezřelé sekvence Bx opkódů (MOV+reg), a stačilo si je jen ověřit v nějakém seznamu ( http://ref.x86asm.net/coder32.html )


Kdo z tohoto řešení stále ještě neví, co daný program dělá, tak výsledkem je něco, co vypíše text a počká na stisk klávesy:

   

[Obrázek: dosbox.jpg]


Takže, jak moc v pytli by svět byl, kdyby nás napadli mimozemšťané a vy byste měli napsat virus, který by měl shodit jejich štíty? Rainbowlaugh


- nepoznáme, že jde o výpis zdrojového kódu
- pokud to poznáme, nepoznáme jazyk
- pokud poznáme jazyk, neznáme instrukční sadu
- nevíme, pod jakým (pokud vůbec) operačním systémem to běží a jaké služby tedy nabízí
- pokud se naučíme instrukční sadu, neznáme architekturu jejich počítačů (porty, org.paměti)
- pokud se naučíme architekturu, musíme nejspíš rozlousknout jejich šifrování, komunikační protokoly, formáty dat a souborů..
- neznáte jejich jazyk (řeč)
- a i kdybychom se naučili jejich jazyk, těžko budeme vědět, že v tomto případě jde o blahopřání k narozeninám Rainbowlaugh (alespoň doufám) * čili na kolik důležité to tam vůbec je (mohli jste také místo programu pro jádro systému otevřít složku s pornem)

*) jazyk tvorů nemusí být vždy nezbytně nutné znát, ale čert ví, na jakém systému pracují mimozemské počítače a je jednodušší něco napodobit, když o tom máte co nejvíc informací: pak se nabízí otázka, kdo bude v luštění rychlejší: zda pozemští programátoři a nebo pozemští lingvisté

Jako bonus na závěr: takto zní zaváděcí program (WIN.COM) pro Windows 98 (ty tiché mezery jsou dané prázdným místem v souboru. Myslím, že kdyby ještě "žilo" dost pamětníků Didaktiků, ti by asi poznali, o co jde Ajsmug Závěrečná skupinka zvuků jsou uložené řetězce znaků (hlášky). Jejich odlišnost od zbytku je zřejmá i tomu, kdo nemá hudební sluch.


.zip   WIN1.zip (Velikost: 48,12 KB / Stažení: 1) (MP3)

(kdo měl ještě úplně ty staré CD přehrávače, tak něco podobného nejspíš poznal - při vložení datového disku)


Vzhledem k tomu, jak dlouho jsme luštili hieroglyfy (a vlastně nakonec sami nevyluštili), museli by zlí ufoni počkat na orbitě tak pár (set?) let, než by se nám k nim podařilo propašovat funkční virus...

Jo, hezky se na to kouká v televizi, ale doufejme, že to v reálu nikdy nebude potřeba realizovat, protože v tomto ohledu měli luštitelé situaci značně ulehčenou tím, že byl použit již známý jazyk.
DeviantArt & Home, Bronies galerie. Ask me.
Odpovědět
#10
TBH, x86 ASM bylo první na co jsem koukal, PRÁVĚ kvůli těm Bx opcodům, ale v tomhle sheetu http://ref.x86asm.net/coder32.html jsem je nenašel. Asi jak bylo ráno a byl jsem rozespalý tak jsem ještě pořádně neviděl.
Škoda žes to vyspoilil, kdybys jen řekl "zkus to znova", tak bych si to neskutečně užil. Seriously, I love this stuff.
Prosím, dělej toho víc Rainbowlaugh

Ale stejně si to zkousím vyluštit, jen to odsunu až budu mít trochu víc času.
Twilicane brings the pain!
První Equestrijský Drakobijcobijec
Odpovědět


Přejít na fórum:


Uživatel(é) prohlížející toto téma: 1 host(ů)