THM: Compiled
Odkaz: TryHackMe Compiled Našou úlohou je získať heslo. Dostaneme súbor bez prípony – Compiled. Prvý krok je vždy zistiť o aký typ súboru ide. K tomu použijeme file.

strings – čitateľné reťazce
Príkaz strings extrahuje všetky čitateľné ASCII reťazce z binárky. Je to najrýchlejší spôsob ako zistiť čo binárka robí bez spustenia.

Čo vidíme? Niekoľko zaujímavých reťazcov: • Password: – program žiada heslo od používateľa • DoYouEven%sCTF – formátovací reťazec so %s – dopĺňa sa niečo dovnútra • StringsIH a sForNoobH – fragmenty… ktoré budú relevantné • Correct! / Try again! – program overuje správnosť vstupu • scanf a strcmp – použité funkcie z libc Používame scanf na čítanie vstupu a strcmp na porovnanie reťazcov – to je typický vzor overovania hesla v C.
Ghidra – dekompilujeme binárku
Reťazce nám dali dobrý prehľad, ale heslo vidíme len v kusoch. Otvoríme binárku v Ghidra (NSA open-source dekompilátor) a pozrieme sa na funkciu main.
Po importe a analýze nájdeme v Symbol Tree funkciu main a zobrazíme jej dekompilovaný kód:
Zaujímavá je časť kódu s funkcoi scanf kde vkladáme heslo. Vidíme že časť hesla je „DoYouEven“ a daľšia časť hesla je hodnota premennej %s.

V kóde vidíme dve porovnávacie funkcie „strcmp“ ktorá keď vracia 0 tak je výsledok zhodný. Podľa tohto vidíme že náš reťazec je _init.

Poskladáme heslo a úloha vyriešená.