User Tools

Site Tools


xxd

xxd

Za pregled i uređivanje binarnog zapisa datoteke koriste se hex editori. Jedan od takvih hex editora koji često dolazi predinstaliran na Linux distribucijama je xxd.

PRIMJER - Zadatak s Hacknite platforme - Bitflip

Marija odjednom ne može više pokrenuti njen vrlo bitan Linux program. Možeš li ga popraviti?
Flag je u formatu CTF2023[brojevi].

Uz zadatak je priložena i datoteka *orc*.

Kada je pokušamo pokrenuti dobijemo grešku:

bash: ./orc: cannot execute binary file: Exec format error

To upućuje na to da format izvršne datoteke nije validan. Proučimo hexdump datoteke, tako da pokrenemo naredbu

xxd orc > orc.hexdump

. Ta naredba radi hexdump datoteke orc i sprema ga u datoteku orc.hexdump. Hexdump zatim možemo otvoriti u text editoru kao što je nano.

Iz opisa znamo da se radi o Linux programu. Linux programi su datoteke u ELF formatu. Potrebno je istražiti ELF format i saznati koji bajt što znači. Iako Wikipedija nije uvijek najpouzdaniji izvor informacija, u ovom slučaju članak o ELF formatu na engleskoj Wikipediji pruža najjednostavniji pregled formata koji smo uspjeli pronaći.

Proučavajući svaki bajt u hexdumpu, dolazimo do bajta na offsetu 0x12 koji označava procesorsku arhitekturu za koju je program napravljen. Trenutno je on postavljen na vrijednost “FF”.

Ako proučimo tablicu u članku na Wikipediji, vidjet ćemo da ta vrijednost ne označava nijednu validnu arhitekturu. Budući da većina osobnih računala koriste “AMD x86-64” arhitekturu, možemo pretpostaviti da je to arhitektura koja je korištena. Iz tablice možemo iščitati da onda taj bajt mora biti postavljen na vrijednost 3E. Nakon što promijenimo tu vrijednost možemo spremiti datoteku.

Kako bi pretvorili popravljeni hexdump natrag u datoteku izvršimo naredbu:

 xxd -r orc.hexdump > fixed_orc 

Ako sad pokrenemo program fixed_orc dobit ćemo flag.

Izvori
xxd.txt · Last modified: 2023/12/07 16:52 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki