This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
laboratoare:laborator-08 [2015/12/01 22:55] adrian.bogatu [Laborator 8: Interfața în linia de comandă, analiza statică și dinamică] |
laboratoare:laborator-08 [2015/12/01 23:30] adrian.bogatu [analiza static] |
||
---|---|---|---|
Line 2: | Line 2: | ||
După un scurt breviar care va explica noțiunile introduse în acest laborator, va urma o parte practică care alternează între secțiuni de tip tutorial, cu parcurgere pas cu pas și prezentarea soluției, și exerciții care trebuie să fie rezolvate. | După un scurt breviar care va explica noțiunile introduse în acest laborator, va urma o parte practică care alternează între secțiuni de tip tutorial, cu parcurgere pas cu pas și prezentarea soluției, și exerciții care trebuie să fie rezolvate. | ||
- | ===== interfata in linia de comanda ===== | + | ===== Interfața în linia de comanda ===== |
- | * asamblare | + | |
- | * link-editare (gcc, cl) | + | |
- | ===== analiza static ===== | + | Deși folosirea unui mediu grafic pentru programare este facilă, de multe ori folosirea liniei de comandă oferă mai multă putere și control asupra a ceea ce vrem să facem. În plus, folosirea utilitarelor din linia de comandă în scripturi poate facilita automatizarea unor task-uri, lucru care ne va face viața mai ușoară în nenumărate cazuri. |
- | * sectiunile basic ale unui binar (bss, rodata, text) | + | |
- | * objdump | + | |
+ | În cadrul acestui laborator, vom folosi utilitare în linia de comandă atât pentru asamblarea și link-editarea fișierelor sursă, cât și pentru analiza statică și dinamică a programelor obținute din parcurgerea tutorialelor și a exercițiilor. | ||
+ | ===== Analiza statică ===== | ||
+ | |||
+ | Analiza statică a unui program constă în inspectarea diferitelor aspecte din fișierul obiect sau executabil. | ||
+ | |||
+ | Câteve din programele utile pentru analiza statică pe care le vom folosi și în cadrul tutorialelor/exercițiilor sunt: | ||
+ | |||
+ | * **nm** - utilitar folosit pentru insepctarea simbolurilor și secțiunilor din executabile | ||
+ | * **objdump** - program folosit pentru dezasamblarea (traducerea din cod-mașină în limbaj de asamblare) programelor binare | ||
+ | * **IDA** - o unealtă foarte puternică pentru dezasamblarea și inspectarea fișierelor obiect și executabile | ||
===== analiza dinamica/gdb cu exercitii de debugging asociate ===== | ===== analiza dinamica/gdb cu exercitii de debugging asociate ===== |