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 10:24] razvan [Fuzzing] |
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 76: | Line 86: | ||
<note important> | <note important> | ||
Compilarea fuzzer-ului AFL va dura. | Compilarea fuzzer-ului AFL va dura. | ||
- | </note | + | </note> |
==== Symbolic Execution ==== | ==== Symbolic Execution ==== | ||
Urmăriți indicațiile de [[https://github.com/angr/angr-doc/blob/master/INSTALL.md#installing-angr|aici]] pentru instalarea Angr. | 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 | Clonați repository-ul de exemple Angr de [[https://github.com/angr/angr-doc|aici]] folosind coamnda | ||
Line 86: | Line 112: | ||
git clone https://github.com/angr/angr-doc | git clone https://github.com/angr/angr-doc | ||
</code> | </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ă. | ||
- | Testați exemplul din ''examples/strcpy_find'' din repository-ul clonat. |