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
@chupachupss: Olly czy inny dbg? Stare dobre czasy, kiedy się jeszcze SoftIce'a używało minęły bezpowrotnie, ale natchnąłeś mnie żeby w wolnej chwili coś podłubać :) #feels #debugowanie
@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.
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
źródło: comment_Khescu4wUDVmgCN84CLwXal65wVwQ1LB.jpg
PobierzMożesz zapisać/wypisać się klikając na nazwę listy.
Masz problem z działaniem listy? A może pytanie? Pisz do IrvinTalvanen
! @chupachupss @Darjo @GlenPL @asunez @ruzi00 @airdong @kafapre @binerek @KubusiowyKubus @IrvinTalvanen @nielu @MysGG @przepelnieniebuforu @stawrocek @wytrzzeszcz @hjkl @xeriv
#feels #debugowanie
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ż
PS nie ma punktu 2