Można, jak najbardziej. Aplikacje napisane w ASM, które mają swoją własną konwencje wywoływania funkcji są trudniejsze w analizie, bo dekompilatory mają problem, żeby to tak z marszu ogarnąć. Ręki sobie nie dam uciąć, ale chyba jedna z grup APT z Wietnamu robiła coś takiego w swoim malware żeby utrudnić jego analizę.
W sumie to nie wiem jak wygląda dzisiaj praca na CTF. Romantycznie sądziłem, że ludzie sami wypatrują oczywistości debuggerem lub prymitywnym deasmem. Podczas oglądania omówienia chyba dopatrzyłem się jakiejś możliwości przez zbudowanie nieprawidłowego request http.
Nie patrzyłem dokładnie na omówienie, ale ogólna prawidłowość jest taka, że najwięcej błędów jest parserach danych. Im bardziej pokręcony format jest parsowany, tym większa szansa na znalezienie błędu. Dlatego w libxml2 do dzisiaj znajdują się co jakiś czas błędy, a taki TinyXML2 leży sobie spokojnie, bo tam zdecydowali się implementować jedynie wybrany wycinek standardu XML.
Tu wszystko jest dość proste. Przy parsowaniu nagłówka jest funkcja, która przeskakuje nowe linie, aż trafi na pustą linię - początek obszaru danych. Nie pamiętam by miała ograniczenie wielkości bufora. Więc uznałem, że można sprawić by poleciała dalej niż bufor.
Jednak ambitnie wolałbym jakby ktoś znalazł jak można uruchomić kod i mi wytłumaczył. Tu mam braki w takich rozkminach. Znam teorię, ale nie wiem jak wygląda dobry schemat myślowy.
Można, jak najbardziej. Aplikacje napisane w ASM, które mają swoją własną konwencje wywoływania funkcji są trudniejsze w analizie, bo dekompilatory mają problem, żeby to tak z marszu ogarnąć. Ręki sobie nie dam uciąć, ale chyba jedna z grup APT z Wietnamu robiła coś takiego w swoim malware żeby utrudnić jego analizę.
W sumie to nie wiem jak wygląda dzisiaj praca na CTF. Romantycznie sądziłem, że ludzie sami wypatrują oczywistości debuggerem lub prymitywnym deasmem. Podczas oglądania omówienia chyba dopatrzyłem się jakiejś możliwości przez zbudowanie nieprawidłowego request http.
Nie patrzyłem dokładnie na omówienie, ale ogólna prawidłowość jest taka, że najwięcej błędów jest parserach danych. Im bardziej pokręcony format jest parsowany, tym większa szansa na znalezienie błędu. Dlatego w libxml2 do dzisiaj znajdują się co jakiś czas błędy, a taki TinyXML2 leży sobie spokojnie, bo tam zdecydowali się implementować jedynie wybrany wycinek standardu XML.
Tu wszystko jest dość proste. Przy parsowaniu nagłówka jest funkcja, która przeskakuje nowe linie, aż trafi na pustą linię - początek obszaru danych. Nie pamiętam by miała ograniczenie wielkości bufora. Więc uznałem, że można sprawić by poleciała dalej niż bufor.
Jednak ambitnie wolałbym jakby ktoś znalazł jak można uruchomić kod i mi wytłumaczył. Tu mam braki w takich rozkminach. Znam teorię, ale nie wiem jak wygląda dobry schemat myślowy.