rev2_angr
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| rev2_angr [2025/11/20 13:40] – mbunic | rev2_angr [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| - | Prije nego što pročitate ovaj članak, preporučujemo pregled writeupa rješenja istog zadatka pomoću alata Ghidra. | + | Prije nego što pročitate ovaj članak, preporučuje se pregled writeupa rješenja istog zadatka pomoću alata Ghidra. |
| [[rev2_ghidra|CTF writeup - rev2-Ghidra]] | [[rev2_ghidra|CTF writeup - rev2-Ghidra]] | ||
| Line 11: | Line 11: | ||
| Angr je napredan i moćan alat koji se koristi za analizu binarnih izvršnih datoteka, gdje se može koristiti za reverzno inženjerstvo, | Angr je napredan i moćan alat koji se koristi za analizu binarnih izvršnih datoteka, gdje se može koristiti za reverzno inženjerstvo, | ||
| - | Angr pruža mogućnost tehnike simboličnog izvršavanja (symbolic execution), koja spada pod dinamičku analizu. Simbolično izvršavanje može tretirati neki korisnički unos kao neodređenu simboličnu varijablu, umjesto definirane vrijednosti, te potom tijekom | + | Angr pruža mogućnost tehnike simboličnog izvršavanja (symbolic execution), koja spada pod dinamičku analizu. Simbolično izvršavanje može tretirati neki korisnički unos kao neodređenu simboličnu varijablu, umjesto definirane vrijednosti. Tijekom |
| Npr. simbolička varijabla " | Npr. simbolička varijabla " | ||
| Line 112: | Line 112: | ||
| </ | </ | ||
| - | Ova adresa je adresa prve instrukcije koja se izvršava u main funkciji, i prikazano | + | Ova adresa je adresa prve instrukcije koja se izvršava u main funkciji. Na slici je prikazano |
| {{ rev2_angr: | {{ rev2_angr: | ||
| Line 123: | Line 123: | ||
| </ | </ | ||
| - | Postavlja se adresa instrukcije do koje se želi da Angr nađe put, ova adresa je adresa puts funkcije koja ispisuje " | + | Postavlja se adresa |
| Na slici ispod je prikazano kako se može pronaći s pomoću Ghidre. | Na slici ispod je prikazano kako se može pronaći s pomoću Ghidre. | ||
| Line 163: | Line 163: | ||
| </ | </ | ||
| - | je duljina bajtova koja se se preskače, odnosno na kolikom offsetu nakon što se izvrši hook na definiranoj adresi se nastavlja izvršavanje. | + | je duljina bajtova koja se preskače, odnosno na kolikom offsetu nakon što se izvrši hook na definiranoj adresi se nastavlja izvršavanje. |
| - | Adresa instrukcije odmah nakon adrese instrukcije poziva | + | Adresa instrukcije odmah nakon adrese instrukcije poziva |
| < | < | ||
| Line 239: | Line 239: | ||
| efektivno postavlja simbolična varijabla password u input_buffer. | efektivno postavlja simbolična varijabla password u input_buffer. | ||
| - | Nakon što se fgets funkcija uspješno izvrši, ona vraća pointer na buffer u koji je upisan unos, odnosno pointer na input_buffer u ovom slučaju. Pošto funkcija vraća return rezultat preko RAX registra, samo se postavlja vrijednost RAX registra na relativnu adresu | + | Nakon što se fgets funkcija uspješno izvrši, ona vraća pointer na buffer u koji je upisan unos, odnosno pointer na input_buffer u ovom slučaju. Pošto funkcija vraća return rezultat preko RAX registra, samo se postavlja vrijednost RAX registra na relativnu adresu |
| < | < | ||
rev2_angr.1763646033.txt.gz · Last modified: 2025/12/01 11:40 (external edit)