User Tools

Site Tools


laboratoare:laborator-08

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
Next revision Both sides next revision
laboratoare:laborator-08 [2015/12/01 22:42]
adrian.bogatu [Laborator 8: Interfața în linia de comandă, analiza statică și dinamică]
laboratoare:laborator-08 [2015/12/01 23:39]
adrian.bogatu [Interfața în linia de comanda]
Line 1: Line 1:
 ====== Laborator 8: Interfața în linia de comandă, analiza statică și dinamică ====== ====== Laborator 8: Interfața în linia de comandă, analiza statică și dinamică ======
  
-În acest laborator ​vom discuta ​în detaliu despre:+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. 
 +===== Interfața ​în linia de comanda =====
  
- * **interfața în linia de comandă:** folosirea utilitarelor ​în linia de comandă ​pentru asamblarea și link-editarea fișierelor sursă pentru ​obține fișiere obiect și executabile +Deși folosirea unui mediu grafic pentru programare poate părea mai atractivă, 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țmai ușoară în nenumărate cazuri.
- * **analiză statică:** inspectarea diverselor aspecte legate de fișierele obiect sau executabile +
- * **analiză dinamică:​** inspectarea unui program care se află în execuție.+
  
-Laboratorul este de forma learn by doing partea practică alternând între secțiuni de tip tutorialcu parcurgere pas cu pas și prezentarea soluției, și exerciții care trebuie să fie rezolvate+Î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 exercițiilor
-===== interfata in linia de comanda ​===== +===== Analiza statică ​=====
-  * asamblare +
-  * link-editare (gcc, cl)+
  
-===== analiza ​static ​===== +Analiza ​statică a unui program constă în inspectarea diferitelor aspecte din fișierul obiect sau executabil.
-  * sectiunile basic ale unui binar (bss, rodata, text) +
-  * objdump+
  
 +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 dinamică =====
 +
 +Spre deosebire de analiza statică, analiza dinamică constă în inspectarea unui program aflat în execuție. Practic, analiza dinamică se face la //​runtime//​.
 +
 +Unul dintre cele mai folosite programe pentru analiză dinamică este **gdb**. Acesta oferă o gamă largă de operații ce pot fi făcute, de la inspectarea memoriei, la schimbarea control flow-ului și până la modificarea registrelor de pe procesor, în timpul rulării unui program.
  
-===== analiza dinamica/​gdb cu exercitii de debugging asociate ===== 
   * command parameters and file redirect (run)   * command parameters and file redirect (run)
   * break   * break
laboratoare/laborator-08.txt · Last modified: 2015/12/02 12:31 by vladimir.diaconescu