Wpis z mikrobloga

dobra, koniec czasu, dostałem sporo flag :) lecimy z rozwiązaniem:
rozwiązania w zasadzie były 3, ja przedstawię tutaj jedno, które miało być tym głównym, czy coś...

na początku program mówi nam, że chce liczbę i daje "hint **" z dziwną liczbą w hexie.
przy znajomości podstaw C/C++ i mojej podpowiedzi, że 2 gwiazdki nie są przypadkowe wiadomo, że chodzi o pointer, a jako, że gwiazdki są dwie, to pointer na pointer. wiedząc to, łatwo wywnioskować, że ta dziwna liczba w hexie to po prostu adres w pamięci, na który wskazuje pointer, a jako, że to pointer na pointer, to prawdopodobnie pod tym adresem jest kolejny adres, a pod nim już coś innego.

to coś to po prostu liczba, którą trzeba podać programowi, żeby wyrzucił nam flagę :)
jakby ktoś chciał kod programu to jest tutaj: http://pastebin.com/i5yeTQ5B

#chupachupssitgame #konkurs #wykopowezabawy
c.....s - dobra, koniec czasu, dostałem sporo flag :) lecimy z rozwiązaniem:
rozwiąz...

źródło: comment_Khescu4wUDVmgCN84CLwXal65wVwQ1LB.jpg

Pobierz
  • 5
@chupachupss:
W kolejności od najszybszych
0. Odczytanie wartości pod pointerem.
1. gdb i break przy cmp i ustawienie rejestrów %eax i %edi na te same wartości. Albo po prostu jump w odpowiednie miejsce.
3. objdump (lub cokolwiek innego) i szybkie przeczytanie co się dzieje, wyjęcie pięknego "eraredrrvdnyrre~zp" i xor tego
4. Podmiana "jne" na nopa w binarce. To już załatwia sprawę na zawsze.

To było zadanie bardziej z serii debugging niż