This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:laborator-08 [2015/12/02 07:32] adrian.bogatu [Tutoriale și exerciții] |
laboratoare:laborator-08 [2015/12/02 12:31] (current) vladimir.diaconescu OCD change |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 8: Interfața în linia de comandă, analiza statică și dinamică ====== | + | ====== Laborator 08: Interfața în linia de comandă, analiza statică și dinamică ====== |
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. | ||
Line 199: | Line 199: | ||
Haideți să adăugăm un breakpoint la label-ul ''ok''. Dacă dăm ''continue'', vom observa că programul s-a oprit în breakpoint-ul tocmai creat. | Haideți să adăugăm un breakpoint la label-ul ''ok''. Dacă dăm ''continue'', vom observa că programul s-a oprit în breakpoint-ul tocmai creat. | ||
+ | <note> | ||
+ | Variaţii:\\ | ||
+ | **break label** - breakpoint la labelul **label**\\ | ||
+ | **break *(label + <offset>)** - breakpoint la **label + offset**\\ | ||
+ | </note> | ||
=== Parcurgerea instrucțiunilor === | === Parcurgerea instrucțiunilor === | ||
Line 223: | Line 228: | ||
<note> | <note> | ||
Dacă ați intrat într-o funcție lungă și nu vreți să dați de ''nexti'' de foarte multe ori, vă recomandăm instrucțiunea GDB ''finish'', care "termină" o funcție. **Atenție** la funcțiile recursive. | Dacă ați intrat într-o funcție lungă și nu vreți să dați de ''nexti'' de foarte multe ori, vă recomandăm instrucțiunea GDB ''finish'', care "termină" o funcție. **Atenție** la funcțiile recursive. | ||
+ | </note> | ||
+ | <note> | ||
+ | **disassemble label, +<length>** - afişează <length> bytes de cod dezasamblat începând de la labelul **label**. | ||
</note> | </note> | ||
Line 283: | Line 291: | ||
Deși pot fi multe de spus despre IDA, în cadrul acestui laborator ne vom limita doar la capabilitățile de analiză statică ale sale. | Deși pot fi multe de spus despre IDA, în cadrul acestui laborator ne vom limita doar la capabilitățile de analiză statică ale sale. | ||
+ | <note> | ||
+ | IDA este destul de avansat încât are posibilitatea de a face tracking şi în Kernelul sistemului de operare. Motiv pentru care trebuie rulat cu drepturi de administrator pentru a putea dreptul la o resursă critică a sistemului. | ||
+ | </note> | ||
==== [2p] Bonus: Modificarea control-flow-ului unui program folosind GDB ==== | ==== [2p] Bonus: Modificarea control-flow-ului unui program folosind GDB ==== | ||