This shows you the differences between two versions of the page.
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ă. | ||
+ |