9 lip 2019

Tajemnicze zadanie rekrutacyjne na stronie CBA #3

10


W dniu 09.07.2019 r., na stronie Biuletynu Informacji Publicznej Centralnego Biura Antykorupcyjnego pojawiło się kolejne tajemnicze zadanie (zadania) rekrutacyjne do Biura Teleinformatyki CBA.
 
Prawidłowe rozwiązanie zadania umożliwia wzięcie udziału w procesie rekrutacji na stanowisko teleinformatyka do tej jednej z pięciu polskich służb specjalnych.

Aby spróbować swoich sił w rozwiązaniu tego zadania należy wejść na stronę BIP CBA (LINK) a następnie pobrać pliki MasterDarlingzip.001, MasterDarlingzip.002, MasterDarlingzip.003, screen:
W archiwum umieszczono plik Master_Darling.jpg, który został zabezpieczony hasłem.



Według informacji z CBA, poprzednie zadanie rekrutacyjne zostało rozwiązane przez 3 osoby.

10 komentarze:

Anonimowy pisze...

@mk86
Podaj wskazówkę do rozszyfrowania hasła do drugiego zadania.

Odczytałem informację z pierwszego zdjęcia oraz podpowiedzi do zadania drugiego ale nadal nie wiem/nie widzę co mogłoby być uznane za hasło/kolejną podpowiedź.

Dostrzegam analogię do jednego z zadań z poprzedniej edycji ale raczej nie tędy droga. Trzeba do tego podejść w podobny sposób jak do Montana Highway czy zupełnie inaczej ?

mk86 pisze...

base64 :)

Anonimowy pisze...

To że Base64 to wiem ...
Zatrzymałem się na postaci z google maps ...

Próbowałem różnych kombinacji (małe|wielkie litery, cyfry, itp.) i dalej bez skutku. Dlatego zapytałem czy to podobne podejście jak w przypadku MT 77.

Podaj wskazówkę co z tym "naczelnikiem" zrobić...

mk86 pisze...

Przepisać (uwzględniając wielkie litery) :) (doszły mnie słuchy, że na starych wersjach 7zipa/zipa/rara nie pasuje)

Anonimowy pisze...

Faktycznie trzeba było uaktualnić soft i poszło...

Odnośnie zadania nr 3:
1. Jak interpretować wskazówkę odnośnie klucza ? Ma być ze spacjami/myślnikami czy same liczby i wszystko zapisane łącznie ?
2. Trzeba kod źródłowy uczynić możliwym do skompilowania i uruchomienia (uzupełnić o treść oznaczoną jako hidden ) ?

mk86 pisze...

Ad.1. No właśnie w pliku tym jest (może celowo) niejasność. Klucz należy interpretowac tak: uuuussssxuuuussssxuuuussssx..., gdzie: uuuu-r.urodzenia, ssss-r.smierci, x - znak specjalny (w tym przypadku będzie to znak, którego binarna reprezentacja wynosi 00001010).
Ad.2.Trzeba "odwrócić" algorytm i potraktować dane z pliku tablica_wynikowa.txt jako dane wejściowe, czyli jednym słowem - zdekodować.

Anonimowy pisze...

Na tym etapie zadanie robi się dla mnie zbyt zagmatwane.

1. W jaki sposób wpadłeś na to, że klucz należy interpretować w taki a nie inny sposób (chodzi mi głównie o ten znak specjalny oraz o częstość jego występowania w kluczu) ? Można to wywnioskować z analizy kodu źródłowego i/lub analizy zawartości pliku tablica_wynikowa.txt ?

2. Czy znakiem którego binarna reprezentacja wynosi 00001010 jest znak LF (Line Feed, 0x0A, \n), czyli koniec bieżącej linii ciągu i rozpoczęcie nowej linii ?

3. Co rozumiesz pod pojęciem "odwrócenie" algorytmu ?

4. Czy dane z pliku tablica_wynikowa.txt nie są jak sama nazwa sugeruje, danymi WYJŚCIOWYMI ? Piszesz z kolei, że należy je traktować jako dane WEJŚCIOWE. Jest to kolejna (celowa) niejasność czy błędne rozumowanie/interpretacja z mojej strony ?

5. Czy dysponując poprawnie skonstruowanym kluczem oraz zawartością pliku tablica_wynikowa.txt, powinniśmy być w stanie zdekodować/rozwiązać zadanie ?

mk86 pisze...

Ad.1. Na początku trochę błądziłem po omacku, ale zauważyłem, że ilość znaków w ciągu uuuussssx pomnożona przez 13 (wzkazówka z pliku) daje dokładnie 117 (tyle samo ile jest "oktetów" binarnych w pliku tablica_wynikowa.txt).
Ad.2. Tak, jest to znak LF, ale nie jest potrzebna taka informacja (do rozkodowania potrzebujemy tylko reprezentacji binarnej; to, że to akurat ten znak doszedłem już po rozwiązaniu zadania; na początku zamiast tego znaku wstawiałem spację (00100000), ale niektóre litery się nie zgadzały więc wyszedłem od liter "prawidłowych" i mając dane wejściowe łatwo było już znaleźć jaki to znak)
Ad.3. Algorytm robi "coś" z danymi wejściowymi. Otrzymany wynik to dane "wyjściowe". Sęk w tym, jak na podstawie danych wyjściowych znaleźć dane wejściowe.
Ad.4. Dokładnie tak jest, nazwa pliku wskazuje na to, że są to dane wyjściowe, czyli przy "normalnym" zachowaniu algorytmu powstałe one w wyniku przetworzenia danych wejściowych. Jeśli natomiast "odwrócimy" działanie algorytmu, to aby otrzymać dane, nazwijmy to, "początkowe/właściwe", należy dane z pliku 'tablica_wynikowa' potraktować jako dane wejściowe dla algorytmu "odwróconego".
Ad.5. Tak, mając klucz i zdekodowane za pomocą algorytmu "odwróconego" dane jesteśmy w stanie rozwiązać zadanie.

Anonimowy pisze...

1. Interpretacja zawartości pliku klucz.txt sugeruje raczej aby dokonać trzynastokrotnego powtórzenia ciągu [uuuussss] (8 znaków) lub ciągu [uuuu ssss] (9 znaków). Znak specjalny powinien znajdować się pomiędzy datami czy powinien pojawić się po wystąpieniu każdej pary uuuussss ?

2. Czy poprawnie skonstruowany klucz prezentuje się następująco:
a. uuuussss00001010uuuussss00001010uuuussss00001010 itd, aż do momentu gdy liczba powtórzeń będzie równa 13 ?
b. uuuu00001010ssssuuuu00001010ssssuuuu00001010ssss itd, aż do momentu gdy liczba powtórzeń będzie równa 13 ?

3. Mając podany kod źródłowy algorytmu szyfrującego, należy napisać kod implementujący algorytym "odwrócony" ? Jest podana funkcja Encode, na jej podstawie należy napisać funkcję Decode ?

4. Wyjaśnienie zrozumiałe.

5. Zawartość pliku tablica_wynikowa.txt dekodujemy za pomocą algortymu "odwróconego" i dopiero potem tak zdekodowane dane "łączymy" z kluczem aby otrzymać ostateczne rozwiązanie ?

mk86 pisze...

Ad.1. Na początku też sugerowałem się "sztywno" określonym ustawieniem klucza ze wskazówki, czyli uuuu ssss (spacja pomiędzy), jednak poprawnym okazał się uuuussssx powtórzony 13 razy, gdzie x oznacza znak specjalny.
Ad.2. a
Ad.3. Dokładnie tak trzeba zrobić.
Ad.5. Zgadza się.

Prześlij komentarz

 
Do korespondencji zalecamy nasz klucz PGP.
Design by ThemeShift