User Tools

Site Tools


secure-low-level-programming:capitole:07-intregi

7. Lucrul cu întregi

Întregii sunt folosiți pe parcursul programelor și pot fi cauze de probleme. Atunci când facem comparații sau atribuiri între întregi de diferite tipuri pot apărea probleme exploatabile. Mai mult, operațiile de adunare sau înmulțire de întregi sunt cauzatoare de integer overflows, alte surse de probleme.

Subiecte abordate

  • tipuri de date întregi
  • operații cu întregi
  • probleme cu întregi

Resurse

Exerciții

Arhiva de suport pentru exerciții se găsește aici. Descărcați arhiva și apoi decomprimați-o folosind comenzile:

wget http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/07-intregi-skel.zip
unzip 07-intregi-skel.zip
cd 07-intregi-skel/

Tipuri de date întregi

Accesăm directorul integer-types/ din arhiva de suport.

Urmăriți conținutul fișierului prog.c și rulați executabilul prog. Urmăriți în program și în rezultatul rulării sale valorile tipurilor de date întregi și dimensiunea lor (sizeof).

Număr introdus

Accesăm directorul input-number/ din arhiva de suport.

Urmăriți conținutul fișierului prog.c și rulați executabilul prog. Urmăriți valoarea unui număr întreg în funcție de interpretarea sa cu semn sau fără semn.

Smash the Stack Wargame Level 2

Accesăm directorul sts2/ din arhiva de suport. Este nivelul 2 din wargame-ul IO Netgarage (fost IO Smash the Stack).

Urmăriți conținutul fișierului level02.c și rulați executabilul level02. Obiectivul este să apelați handler-ul de semnal catcher() prin declanșarea unui semnal de tipul FPE (Floating Point Exception).

Smash the Stack Wargame Level 7

Accesăm directorul sts7/ din arhiva de suport. Este nivelul 7 din wargame-ul IO Netgarage (fost IO Smash the Stack).

Urmăriți conținutul fișierului level07.c și rulați executabilul level07. Obiectivul este să folosiți un buffer overflow și operații cu întregi ca să obțineți un shell, adică să fie satisfăcută condiția count == 0x574f4c46.

secure-low-level-programming/capitole/07-intregi.txt · Last modified: 2018/12/19 13:48 by razvan