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/02 07:03]
adrian.bogatu
laboratoare:laborator-08 [2015/12/02 10:13]
catalin.vasile3004 [[1p] 6. Tutorial: GDB]
Line 27: Line 27:
 ===== Tutoriale și exerciții ===== ===== Tutoriale și exerciții =====
  
-În cadrul exercițiilor vom folosi arhiva de laborator.+În cadrul exercițiilor vom folosi ​{{laboratoare:​lab-08-tasks.zip|arhiva de laborator}}.
  
 Descărcați arhiva, decomprimați-o și accesați directorul aferent. Descărcați arhiva, decomprimați-o și accesați directorul aferent.
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 290: Line 298:
 ==== [2p] Bonus: Decompilarea unui program folosind IDA ==== ==== [2p] Bonus: Decompilarea unui program folosind IDA ====
  
 +Pornind de la fișierul obiect ''​decompile.obj'',​ treaba voastră este să reconstruiți codul sursa (scris în C) din care a provenit binarul. Puteți folosi orice utilitar de analiză statică, însă cel mai indicat pentru acest task este IDA, deoarece reprezintă foarte clar graful de control al execuției.
laboratoare/laborator-08.txt · Last modified: 2015/12/02 12:31 by vladimir.diaconescu