Skip to main content

Introducere

Suport

Preview

Exerciții

1 - Număr de Șiruri de Caractere Printabile 🏁

Câte șiruri de caractere cu lungime mai mare de 10 există în executabilul lyrics.elf?

Flag-ul este în format [0-9]*.

2 - Tipuri de Șiruri de Caractere Printabile 💁

De unde provin șirurile de caractere găsite în executabilul lyrics.elf?

3 - Număr de Simboluri 🏁

Identificați numărul de simboluri din segmentul de cod al executabilului lyrics.elf.

Flag-ul este în format [0-9]*.

4 - Proveniența Simbolurilor 💁

Judecând după tipurile pe care comanda nm le produce asupra executabilului lyrics.elf, presupuneți de unde vin simbolurile lyrics, puts și main.

5 - Automatizarea Analizei Dinamice cu pwntools 🏁

Rulați programul flag-checker.elf. Cum operațiunile ce trebuiesc efectuate sunt prea multe, automatizați tot procesul de identificare a flag-ului cu ajutorul librăriei pwntools.

Flag-ul este în format SI{[A-Z_]*}.

6 - Librării Dinamice 💁

Identificați modalitatea prin care executabilul flag-checker.elf apelează funcția de verificare a flag-ului.

7 - Dezasamblarea Programelor 💁

Puteți identifica flag-ul de la sarcina de mai sus prin rularea comenzii strings asupra programului?

Dacă nu, vă puteți da seama de ce din dezasamblarea funcției check_flag din librăria libcheckflag.so? Încercați aceeași tip de dezasamblare în Ghidra, eventual folosind funcția de decompilare.

8 - Apeluri de Sistem 💁

Comanda python3 -m http.server 8080 poate fi utilizată pentru crearea rapidă a unui server web pe portul 8080. Folosiți comanda strace pentru a identifica apelurile de sistem specifice creării unui socket și a acceptării conexiunilor pe el.

9 - Conexiuni 💁

Folosind aceeași comandă ca la exercițiul anterior, identificați portul deschis folosind comanda netstat. Puteți filtra în funcție de starea în care se află socket-ul și de protocolul folosit.