Seccon ctf - putchar music, jak oni wymyslili ten program?

0

Na ostatnim CTF bylo ciekawe zadanie putchar music https://ctftime.org/task/5048

Samo rozwiazanie jest oczywiste, natomiast ma ktos pomysl w jaki sposob autorzy zadania zrobili/wymyslili jednolinijkowy program generujacy dane ktore po wrzuceniu do aplaya odgrywaja melodie z Gwiezdnych Wojen ?

1

nie wiem jak tutaj konkretnie to zostalo zrobione, natomiast gdybym sama miala zrobic cos w tym stylu o sprawdzilabym jakis prosty format audio, zakodowala muzyczke manualnie w jakis oszczedny sposob a potem to skompresowala do jakiegos hakersko wygladajacego lancuszka znakow + formuly odkodowujacej :)

0

Takie zakodowanie pliku do formy printowalnej to coś ala base64, znaki printowalne masz z zakresu 0x20 - 0x7E.

Można także składać harmoniczne sygnału z transformaty fouriera i zapisywać.
Z czego dane do obliczeń podasz w formie plaintextu.

1

Tak na oko patrząc na kod:

  1. Melodyjka to gołe bajty z wav
  2. Zapis wygląda na jakąś dziwną interpolacje wielomianową
5
double x=pow(1.05946309435931,p[i]/6+13)

Ta stała to pierwiastek 12 stopnia z dwóch, czyli stosunek między dwoma kolejnymi nutami. Dzielenie przez 6 jest całkowitoliczbowe, więc część modulo 6 jest tu nieużyta. Dalej mamy jednak:

for(j=1+p[i]%6;t++%(8192/j);)

Czyli ilość pętli jest zależna właśnie od p[i]%6.
Podsumowując, ta zahardkodowana tablica koduje nuty, pakując do jednego bajtu jej wysokość i długość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1