This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
secure-low-level-programming:capitole:07-intregi [2018/12/16 13:30] 127.0.0.1 external edit |
secure-low-level-programming:capitole:07-intregi [2018/12/19 13:48] (current) razvan |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== 7. Lucrul cu întregi ====== | ====== 7. Lucrul cu întregi ====== | ||
- | TODO: Descriere scurtă | + | Î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 ===== | ===== Subiecte abordate ===== | ||
- | * TODO | + | * tipuri de date întregi |
- | * TODO | + | * operații cu întregi |
+ | * probleme cu întregi | ||
===== Resurse ===== | ===== Resurse ===== | ||
Line 12: | Line 13: | ||
* [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/slides/07-intregi.pdf|Slide-uri]] | * [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/slides/07-intregi.pdf|Slide-uri]] | ||
* [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/07-intregi-skel.zip|Arhiva de suport]] | * [[http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/07-intregi-skel.zip|Arhiva de suport]] | ||
- | |||
- | ===== Alte resurse ===== | ||
- | |||
- | * TODO link | ||
- | * TODO link | ||
- | * TODO link | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
Line 24: | Line 19: | ||
wget http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/07-intregi-skel.zip | wget http://koala.cs.pub.ro/training/res/secure-low-level-programming/arc/07-intregi-skel.zip | ||
unzip 07-intregi-skel.zip | unzip 07-intregi-skel.zip | ||
+ | cd 07-intregi-skel/ | ||
</code> | </code> | ||
- | ==== Exercițiu 1 ==== | + | ==== 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''). | ||
- | Accesăm directorul ''lalala/'' din arhiva de suport. | + | ==== Număr introdus ==== |
- | TODO | + | Accesăm directorul ''input-number/'' din arhiva de suport. |
- | ==== Exercițiu 2 ==== | + | 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. |
- | Accesăm directorul ''lalala/'' din arhiva de suport. | + | ==== Smash the Stack Wargame Level 2 ==== |
- | TODO | + | Accesăm directorul ''sts2/'' din arhiva de suport. Este nivelul 2 din wargame-ul [[https://io.netgarage.org/|IO Netgarage (fost IO Smash the Stack)]]. |
- | ==== Exercițiu 3 ==== | + | 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//). |
- | Accesăm directorul ''lalala/'' din arhiva de suport. | + | ==== Smash the Stack Wargame Level 7 ==== |
- | TODO | + | Accesăm directorul ''sts7/'' din arhiva de suport. Este nivelul 7 din wargame-ul [[https://io.netgarage.org/|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''. | ||