User Tools

Site Tools


secure-low-level-programming:capitole:09-utilitare-de-analiza-cod

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
secure-low-level-programming:capitole:09-utilitare-de-analiza-cod [2018/12/20 08:28]
razvan [Valgrind]
secure-low-level-programming:capitole:09-utilitare-de-analiza-cod [2018/12/21 14:14] (current)
razvan [Symbolic Execution]
Line 27: Line 27:
 unzip 09-utilitare-de-analiza-cod-skel.zip unzip 09-utilitare-de-analiza-cod-skel.zip
 cd 09-utilitare-de-analiza-cod-skel/​ cd 09-utilitare-de-analiza-cod-skel/​
 +</​code>​
 +
 +Pentru a instala aplicațiile necesare pentru investigarea programelor folosiți comanda
 +<​code>​
 +sudo apt install clang cppcheck splint valgrind
 </​code>​ </​code>​
  
Line 44: Line 49:
 </​code>​ </​code>​
  
 +<note tip>
 +Ignorați erori legate de fișiere incluse în rezultatul rulării comenzii ''​cppcheck''​.
 +</​note>​
 +
 +Foarte probabil veți vedea că utilitarele nu depistează multe erori. Multe erori nu pot fi depistate cu utilitare de analiză, ci mai degrabă de un observator uman.
  
 ==== Verificare cod anterior ==== ==== Verificare cod anterior ====
Line 67: Line 77:
 ==== Fuzzing ==== ==== Fuzzing ====
  
-Clonați repository-ul de [[aici]] folosind comanda+Clonați repository-ul de [[https://​github.com/​ThalesIgnite/​afl-training|aici]] folosind comanda
 <​code>​ <​code>​
 git clone https://​github.com/​ThalesIgnite/​afl-training git clone https://​github.com/​ThalesIgnite/​afl-training
Line 77: Line 87:
 Compilarea fuzzer-ului AFL va dura. Compilarea fuzzer-ului AFL va dura.
 </​note>​ </​note>​
 +
 +==== Symbolic Execution ====
 +
 +Urmăriți indicațiile de [[https://​github.com/​angr/​angr-doc/​blob/​master/​INSTALL.md#​installing-angr|aici]] pentru instalarea Angr.
 +
 +<note important>​
 +Pe versiunea de Ubuntu din sistemele din sala PR708 nu funcționează comanda ''​mkvirtualenv''​. Folosiți următoarele două comenzi pentru a crea un mediu virtual în care să instalați și rulați ''​angr'':​
 +<​code>​
 +virtualenv angr
 +cd angr
 +source ./​bin/​activate
 +</​code>​
 +
 +Acum puteți install ''​angr''​ folosind comanda ''​pip''​ așa cum e indicat în [[https://​github.com/​angr/​angr-doc/​blob/​master/​INSTALL.md#​installing-angr|documentație]].
 +
 +Dacă doriți să părăsiți mediul virtualenv folosiți comanda
 +<​code>​
 +deactivate
 +</​code>​
 +</​note>​
 +
 +Clonați repository-ul de exemple Angr de [[https://​github.com/​angr/​angr-doc|aici]] folosind coamnda
 +<​code>​
 +git clone https://​github.com/​angr/​angr-doc
 +</​code>​
 +În urma comenzii de mai sus se creează directorul ''​angr-doc/''​.
 +
 +Testați exemplul din ''​angr-doc/​examples/​strcpy_find''​ din exemplu descris și [[https://​docs.angr.io/​examples#​beginner-vulnerability-discovery-example-strcpy_find|aici]] prin rularea comenzii:
 +<​code>​
 +python solve.py
 +</​code>​
 +Scriptul Python va "​exploata"​ executabilul ''​strcpy_find''​ folosind execuție simbolică și va obține parola cerută. Parcurgeți scriptul ''​solve.py''​ pentru o primă perspectivă asupra Angr. Nu e nevoie să înțelegeți,​ doar să știți că există.
 +
secure-low-level-programming/capitole/09-utilitare-de-analiza-cod.1545287338.txt.gz · Last modified: 2018/12/20 08:28 by razvan