Analiza și prevenirea buffer overflow
47 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Ce tehnică este folosită pentru a preveni atacurile de tip buffer overflow?

  • Implementarea unui algoritm de criptare pentru a proteja datele sensibile din memoria heap.
  • Utilizarea unui mecanism de verificare a memoriei care detectează accesele neautorizate.
  • Aplicarea unui control strict al accesului la resursele sistemului.
  • Inserarea unei valori speciale (canar) între buffer și adresa de retur a funcției. (correct)
  • Care dintre următoarele acțiuni este specifică analizei dinamice, dar nu și analizei statice?

  • Identificarea simbolurilor (variabile, funcții) din cod.
  • Realizarea breakpoint-urilor și stepping-ului. (correct)
  • Identificarea bibliotecilor externe necesare.
  • Construirea grafului de apel al programului (call graph).
  • Care este efectul detectării unei valori de canar modificată?

  • Programul va avertiza utilizatorul despre o posibilă eroare de memorie.
  • Programul va continua execuția, ignorând eroarea de memorie.
  • Programul va fi terminat forțat, deoarece a fost detectat o eroare de securitate potențială. (correct)
  • Programul va încerca automat să repare eroarea de memorie.
  • Ce este stack canary?

    <p>O valoare specială, plasată în memoria stack, care poate detecta atacurile de tip buffer overflow. (D)</p> Signup and view all the answers

    Care este dezavantajul major al implementării SSP?

    <p>SSP are un impact negativ asupra performanței programului, dar poate fi aplicat selectiv pentru a optimiza performanța. (B)</p> Signup and view all the answers

    De ce este importantă identificarea bibliotecilor externe necesare în analiza statică a executabilelor?

    <p>Pentru a determina dacă executabilul poate fi rulat pe sistemul curent. (C)</p> Signup and view all the answers

    Care dintre următoarele acțiuni nu este specifică analizei statice?

    <p>Realizarea de breakpoint-uri în cod. (A)</p> Signup and view all the answers

    Ce se înțelege prin "tracing" în analiza dinamică?

    <p>Analiza fluxului de execuție a programului pas cu pas. (C)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre TLB este corectă?

    <p>TLB este o memorie cache care stochează intrări din tabelul de pagini al procesului curent. (D)</p> Signup and view all the answers

    Care dintre următoarele elemente nu este stocat într-o intrare a tabelului de pagini?

    <p>Adresa fizică a procesului (B)</p> Signup and view all the answers

    Care este scopul principal al bitului "dirty" în tabelul de pagini?

    <p>De a indica dacă o pagină a fost modificată după ce a fost adusă în memorie. (D)</p> Signup and view all the answers

    Care este principalul avantaj al utilizării unei tabele de pagini multi-nivel?

    <p>Utilizarea mai eficientă a memoriei, deoarece o tabelă de pagini multi-nivel ocupă mai puțin spațiu. (A)</p> Signup and view all the answers

    Care este cea mai bună descriere a procesului de swapp-out?

    <p>Mutarea unei pagini din memoria fizică în memoria secundară. (A)</p> Signup and view all the answers

    Ce se întâmplă atunci când apare o "TLB miss"?

    <p>Sistemul de operare trebuie să acceseze tabelul de pagini pentru a găsi adresa fizică. (C)</p> Signup and view all the answers

    Care dintre următoarele este un dezavantaj al utilizării tabelelor de pagini multi-nivel?

    <p>Timpul de acces la memoria virtuală este mai lent decât în cazul tabelelor de pagini cu un singur nivel. (B)</p> Signup and view all the answers

    Care dintre următoarele afirmații este adevărată despre indexul paginii virtuale?

    <p>Indexul paginii virtuale este utilizat pentru a identifica o intrare în tabelul de pagini. (C)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre FCB-uri (File Control Blocks) este corectă?

    <p>FCB-ul conține metadatele unui fișier, inclusiv numele, tipul, dimensiunea și pointeri către datele sale. (B)</p> Signup and view all the answers

    Ce se întâmplă atunci când un proces încearcă să acceseze o pagină de memorie care nu este încă alocată?

    <p>Procesul este întrerupt, se alocă o nouă pagină de memorie și accesul este reluat. (D)</p> Signup and view all the answers

    Care dintre următoarele operații nu este direct legată de o tabelă de descriptori de fișier?

    <p>Alocarea memoriei pentru un proces (D)</p> Signup and view all the answers

    Ce rol are un descriptor de fișier?

    <p>Descriptorul de fișier este un identificator unic al unui fișier deschis, referind o intrare în tabela de descriptori de fișier. (C)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre apelul dup() este falsă?

    <p>Apelul dup() creează un nou descriptor de fișier care pointează către o structură de fișier diferită de cea originală. (A)</p> Signup and view all the answers

    Ce se întâmplă când un proces închide un fișier folosind apelul close()?

    <p>Fișierul este marcat ca fiind inchis în tabela de descriptori de fișier, eliberând resursele asociate. (D)</p> Signup and view all the answers

    Care este diferența majoră între dup() și dup2()?

    <p>dup() alege prima poziție liberă din tabela de descriptori de fișier pentru noul descriptor, în timp ce dup2() permite specificarea poziției noului descriptor. (A)</p> Signup and view all the answers

    Care dintre următoarele afirmații este adevărată despre inode-uri?

    <p>Inode-ul conține metadatele unui fișier, inclusiv tipul, dimensiunea și pointeri către datele sale. (B)</p> Signup and view all the answers

    Ce se întâmplă cu memoria alocată dinamic într-un proces, la crearea unui proces copil prin apelul fork()?

    <p>Memoria alocată dinamic este partajată de ambele procese, modificările făcute în procesul copil vor fi vizibile în procesul părinte. (C)</p> Signup and view all the answers

    Care dintre următoarele afirmații este adevărată despre apelul exec()?

    <p>Apelul <code>exec()</code> înlocuiește codul programului procesului curent cu cel al programului specificat, păstrând starea actuală a memoriei. (C)</p> Signup and view all the answers

    Care dintre următoarele situații ar putea duce la o excepție de tip Segmentation fault?

    <p>Toate opțiunile de mai sus. (D)</p> Signup and view all the answers

    Ce reprezintă race condition?

    <p>O situație în care ordinea de accesare a datelor partajate de mai multe thread-uri poate afecta rezultatul programului, ducând la un rezultat imprevizibil. (B)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre spațiul virtual de adrese al unui proces este adevărată?

    <p>Spațiul virtual de adrese al unui proces este un concept abstract care mapează adresele logice ale procesului la adresele fizice din memorie. (D)</p> Signup and view all the answers

    Ce rol joacă loader-ul în procesul de încărcare a unui program?

    <p><code>Loader</code>-ul este responsabil de verificarea integrității executabilului și de alocarea memoriei pentru segmentele programului. (C)</p> Signup and view all the answers

    Ce înseamnă deturnarea fluxului de execuție a unui program (control flow hijack)?

    <p>O situație în care un program execută o secvență neașteptată de instrucțiuni, modificând fluxul de execuție normal. (D)</p> Signup and view all the answers

    Ce este TLS (Thread Local Storage) și de ce este utilă?

    <p>O zonă separată de memorie pentru stocarea variabilelor care sunt specifice fiecărui thread al unui proces. (B)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre bypass-uri este adevărată?

    <p>bypass-urile sunt unice pentru fiecare situație și nu există o soluție generică. (C)</p> Signup and view all the answers

    Care este scopul mecanismului ASLR (Address Space Layout Randomization)?

    <p>Face dificilă descoperirea adreselor din memoria programului, îngreunând atacurile de tip reuse-code. (C)</p> Signup and view all the answers

    Ce reprezintă deturnarea fluxului de execuție a unui program (control flow hijack) ?

    <p>Modificarea fluxului normal al executiei programului, fie prin suprascrierea pointerilor către cod, fie prin manipularea datelor pentru a ajunge la condiții de execuție neprevăzute. (D)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre memory leak / memory disclosure este corectă?

    <p>Memorie leak este o eroare de programare care permite atacatorilor să obțină acces la date confidențiale, chiar dacă nu ar trebui să aibă acces la ele. (B)</p> Signup and view all the answers

    Ce înseamnă că o secvență de cod este PIC (Position Independent Code)?

    <p>O secvență de cod care poate fi executată la orice adresă din memorie fără a fi necesare modificări ale codului. (D)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre PIE (Position Independent Executable) este corectă?

    <p>PIE este o tehnică care face dificilă (dar nu imposibilă) tentativele de atac de tip Return Oriented Programming (ROP) prin utilizarea de adrese aleatorii pentru funcții și date. (D)</p> Signup and view all the answers

    Care este scopul adăugării de arce/noduri în control flow graph (CFG)?

    <p>Vizualizarea relației dintre diferite blocuri de cod din program, ajutând la înțelegerea logicii programului. (C)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre bruteforce este adevărată?

    <p>Bruteforce este o metodă simplă de a găsi bypass-uri, dar nu este neapărat rezultată și poate fi foarte ineficientă în cazul programelor cu structură decodare complexă. (B)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre spinlock-uri este adevărată?

    <p>Spinlock-urile sunt ineficiente în cazul operațiilor de I/O în secțiunile critice. (A), Spinlock-urile sunt mai potrivite pentru secțiuni critice care se execută rapid decât mutex-urile. (D)</p> Signup and view all the answers

    Ce este un proces zombie?

    <p>Un proces care a fost terminat, dar nu a fost închis complet, așteptând să fie eliminat de procesul său părinte. (D)</p> Signup and view all the answers

    Care este o problemă cauzată de procesele zombie?

    <p>Procesele zombie pot consuma resurse de sistem, chiar dacă nu mai rulează. (B), Procesele zombie pot bloca sistemul de operare, împiedicând crearea de procese noi. (D)</p> Signup and view all the answers

    De ce un proces orfan durează foarte puțin timp?

    <p>Pentru că este adoptat imediat de un alt proces, procesul init (sistemul de operare). (C)</p> Signup and view all the answers

    Ce efect are folosirea operatorului & in shell-ul Linux?

    <p>Trimite procesul în fundal, dar procesul init îl va opri când consola se închide. (D)</p> Signup and view all the answers

    Care dintre următoarele afirmații despre mutex-uri este adevărată?

    <p>Mutex-urile sunt mai eficiente decât spinlock-urile pentru secțiuni critice de durată lungă, care implică operații blocante. (C)</p> Signup and view all the answers

    Care este diferența principală între un spinlock și un mutex?

    <p>Mutex-urile sunt mai eficiente decât spinlock-urile pentru secțiuni critice care implică operații blocante. (A)</p> Signup and view all the answers

    Flashcards

    Spinlock

    Un mecanism de sincronizare care folosește busy-waiting.

    Mutex

    Un mecanism de sincronizare care blochează executarea altor thread-uri.

    Busy-waiting

    Tehnica de a aștepta activ pentru un lock, fără a bloca thread-ul.

    Proces zombie

    Un proces terminat care nu a fost așteptat de părintele său.

    Signup and view all the flashcards

    Problema proceselor zombie

    Ocupă spațiu în tabelul de procese, împiedicând crearea de noi procese.

    Signup and view all the flashcards

    Proces orfan

    Un proces care își pierde părintele care s-a terminat.

    Signup and view all the flashcards

    Secțiuni critice mici

    Zone de cod unde accesul concurent trebuie gestionat rapid.

    Signup and view all the flashcards

    Transfer în fundal

    Operația care permite unui proces să ruleze în fundal fără a bloca shell-ul.

    Signup and view all the flashcards

    Deturnarea fluxului de execuție

    Schimbarea neautorizată a ordinii de execuție a instrucțiunilor unui program.

    Signup and view all the flashcards

    Memory leak

    Alocarea de memorie care nu este eliberată, ducând la pierderea resurselor.

    Signup and view all the flashcards

    Loader

    Program care încarcă un executabil în memorie pentru a fi executat.

    Signup and view all the flashcards

    PCB (Process Control Block)

    Structură de date ce conține informații despre un proces.

    Signup and view all the flashcards

    Thread

    Unitate de execuție care poate rula în paralel cu alte thread-uri ale aceluiași proces.

    Signup and view all the flashcards

    Schimbare de context

    Trecerea controlului între diferite procese sau thread-uri.

    Signup and view all the flashcards

    Deadlock

    Situație în care două sau mai multe procese așteaptă resurse de la celelalte, fără a avansa.

    Signup and view all the flashcards

    Race condition

    Problema apărută când două sau mai multe thread-uri accesează o resursă partajată concurent, provocând comportamente neașteptate.

    Signup and view all the flashcards

    TLB

    Un buffer cache care stochează intrările din tabelele de pagini pentru acces rapid.

    Signup and view all the flashcards

    Informații TLB

    Contine intrări pentru acces rapid, de obicei între 128-256.

    Signup and view all the flashcards

    Intrare tabelă de pagini

    Include numărul cadrului, permisiuni, validitate și bit dirty.

    Signup and view all the flashcards

    Bit dirty

    Indicativ că pagina a fost modificată; activat la scriere.

    Signup and view all the flashcards

    Tabelă de pagini multi-nivel

    Structură care reduce dimensiunea tabelei prin ierarhie.

    Signup and view all the flashcards

    Beneficiul tabelei multi-nivel

    Nu alocă fizic porțiuni inutile, economisind memorie.

    Signup and view all the flashcards

    Sistem de paginare

    Împarte memoria în pagini, facilitând gestionarea memoriei.

    Signup and view all the flashcards

    Swap-out

    Procesul de mutare a paginilor nefolosite din memorie.

    Signup and view all the flashcards

    Analiza statică

    Examinarea codului executabil fără a-l rula pentru a identifica structuri, simboluri și dependențe.

    Signup and view all the flashcards

    Dezasamblarea codului

    Transformarea codului executabil în cod de asamblare pentru analiză.

    Signup and view all the flashcards

    Graful de apel al programului

    Reprezentarea funcțiilor apelate într-un program, arătând relațiile dintre acestea.

    Signup and view all the flashcards

    Depanator/Debugger

    Un utilitar care ajută la găsirea și corectarea erorilor din cod prin rularea acestuia pas cu pas.

    Signup and view all the flashcards

    Stack Smashing Protection (SSP)

    O metodă de protecție împotriva atacurilor de tip buffer overflow prin utilizarea unui canary pe stivă.

    Signup and view all the flashcards

    Stack Canary

    O valoare plasată între buffer și adresa de retur pentru a detecta modificarea neautorizată.

    Signup and view all the flashcards

    Buffer Overflow

    O vulnerabilitate care apare când un program scrie mai multe date în buffer decât acesta poate gestiona.

    Signup and view all the flashcards

    Sysinternals Suite

    Un set de instrumente pentru analiza și monitorizarea sistemelor Windows, inclusiv procesul de monitorizare.

    Signup and view all the flashcards

    Bypass

    Suprascrierea handle-ului de tratare a suprascrierii canarului.

    Signup and view all the flashcards

    ASLR

    Randomizarea spațiului de adrese pentru a îngreuna descoperirea adreselor în memorie.

    Signup and view all the flashcards

    PIE

    Executabilul se încarcă la adrese aleatoare în memoria virtuală.

    Signup and view all the flashcards

    Control Flow Hijack

    Alterarea fluxului normal de execuție a unui program.

    Signup and view all the flashcards

    Memory Disclosure

    Extragerea de date din zone de memorie protejate.

    Signup and view all the flashcards

    Position Independent Code (PIC)

    Cod care se încarcă la adrese diferite la fiecare rulare.

    Signup and view all the flashcards

    Control Flow Graph (CFG)

    Reprezentarea grafică a fluxului de execuție a unui program.

    Signup and view all the flashcards

    Page Fault

    Un fenomen ce apare când un proces accesează o pagină de memorie care nu este prezentă în RAM.

    Signup and view all the flashcards

    FCB (File Control Block)

    O structură internă care stochează metadatele despre un fișier deschis, gestionată de kernel.

    Signup and view all the flashcards

    Inode

    Structura din FCB care conține informații despre fișier, dar nu despre nume.

    Signup and view all the flashcards

    Descriptor de fișier

    Un număr întreg care face referire la o intrare în tabela de descriptori de fișier.

    Signup and view all the flashcards

    Tabela de descriptori de fișiere

    O structură de date care conține pointeri la fișiere deschise de un proces.

    Signup and view all the flashcards

    Apelul dup()

    O funcție care duplică un file descriptor, redirecționând intrarea sau ieșirea standard.

    Signup and view all the flashcards

    Apelul close()

    Funcția care închide un descriptor de fișier, eliberând resursele asociate.

    Signup and view all the flashcards

    Deschiderea unui fișier

    Procesul prin care un fișier este accesat, generând un inode în memorie.

    Signup and view all the flashcards

    Study Notes

    Variabile C

    • Variabilele C stochează date în spațiul de memorie al unui program.

    Încărcarea unui executabil în memorie și crearea unui proces

    • La încărcare, un executabil este încărcat în spațiul de memorie al unui proces.
    • Procesul constă dintr-un spațiu de adrese virtual și real.
    • Spațiul de adrese virtual este separat de spațiul de adrese al altor procese.

    Deturnarea fluxului de execuție (control flow hijack)

    • Deturnarea fluxului de execuție presupune alterarea fluxului normal de execuție a unui program.
    • Aceasta se poate face prin suprascrierea unor pointeri de cod sau prin manipularea datelor pentru modificarea fluxului de execuție condiționat.

    Relevanța deturnării fluxului de execuție pentru atacatori

    • Atacatorii pot exploata deturnarea fluxului pentru a executa codul lor malitios.

    Memory Leak / Memory Disclosure

    • Memory leak este o problemă în care un program nu eliberează memorie alocată anterior.
    • Memory disclosure este o problemă unde datele din memorie sunt accesibile de către părți neautorizate.
    • Acestea (leak / disclosure) sunt relevante pentru atacatori datorită accesului la informații sau comportament periculos alocat dinamic.

    Împărțire spațiu virtual de adrese (kernel / user space)

    • Împărțirea spațiului de adrese virtuale în kernel space și user space este preferată pentru securitate.
    • Kernel space este protejat de user space, prevenind accesul neautorizat și atacuri.

    Excepții de acces la memorie (Segmentation fault)

    • Secvențe de cod C care accesează memorie invalidă pot provoca excepții de acces la memorie (segmentation fault).
    • Exemplu: acces la memorie din afara limitelor unui buffer.

    Funcții vs. Variabile

    • Funcțiile conțin cod executabil, în timp ce variabilele conțin date.
    • Ele sunt stocate în zone diferite ale spațiului de memorie al unui proces.

    Procesele partajează o zonă de memorie

    • Procesele partajează o zonă de memorie prin utilizarea mecanismelor de partajare a memoriei de către SO.
    • Acest lucru se reflectă în tabelele de pagini ale celor două procese prin mecanismele de partajare a paginilor.

    Memorie fizică vs. spațiu virtual

    • Memorie fizică este mai mică decât spațiul de adrese virtual.
    • Se pot accesa mai multe date în memorie fizică decât dimensiunea maximă a spațiului virtual al unui proces.

    Alocarea statică vs. dinamică a memoriei

    • Alocare statică: variabilele declarate global, memorie rezervată la compilare.
    • Alocare dinamică: variabile alocate în timpul rulării unui program prin functii ca malloc, calloc, realloc.

    Variabile modificate în procesul copil

    • Modificările variabilelor unui proces copil sunt izolate de procesul părinte, dacă nu se folosesc mecanismele de partajare.

    Loader (rol și funcționalitate)

    • Loaderul încarcă codul executabil într-un proces.
    • De asemenea el rezolvă referințele către biblioteci, identifică datele necesare și configurează mediul necesar execuției.

    mprotect()

    • mprotect() permite modificarea setărilor de acces la un segment de memorie.
    • Se poate folosi pentru bypass-uri de securitate.

    Variabile globale inițializate la 0

    • Variabilele globale inițializate la 0 sunt stocate în secțiunea .data a unui executabil.

    Necesitatea proceselor și thread-urilor

    • Procese sunt independente, thread-urile execută în cadrul unui proces.
    • Thread-urile sunt utile pentru partajarea resurselor și eficiență.

    Proces vs. thread

    • Procesul este o execuție independentă.
    • Thread-ul este o unitate de execuție din cadrul unui proces.

    Spațiul de adrese la crearea unui thread

    • Crearea unui thread nu modifică semnificativ spațiul de adrese al procesului.

    Elemente comune și specifice thread-urilor

    • Ele împart memoria heap, stack.
    • Fiecare thread are un ID unic, variabile locale, și resurse specifice.

    PCB (Process Control Block)

    • Conține informații despre un proces, incluzând starea, identificatorul, prioritatea și lista de resurse asociate.

    Stările unui thread

    • RUNNING, READY, WAITING, BLOCKED, TERMINATED.

    Apelul fork()

    • fork() creează o copie a procesului existent.

    Resurse partajate/nepartajate de către fork()

    • Resursele partajate/nepartajate sunt determinate de natura resurselor (ex: memoria de referință).

    Apelul exec()

    • Înlocuiește codul unui proces cu un nou program, utilizat pentru a executa un alt executabil.

    Număr thread-uri în stări diferite

    • Numărul de thread-uri este dinamic și variază în funcție de execuție.

    Schimbare de context

    • Schimbarea de context este o operație efectuată de planificatorul sistemului de operare pentru a alterna execuția între diverse thread uri.

    Cauze schimbare de context

    • Apeluri sistem, evenimente externe, perioade fixe.

    Schimbare de context voluntară/nevoluntară

    • Voluntară: thread-ul renunță la procesor.
    • Nevoluntară: thread-ul este oprit de planificator.

    Thread-uri user-level / kernel-level

    • User-level: gestionate de aplicatie.
    • Kernel-level: gestionate de kernel.

    TLS (Thread Local Storage)

    • Zona TLS este utilizată de un thread pentru a stoca date specifice acelui thread.

    Necesitatea sincronizării

    • Sincronizarea împiedică conflictul accese la date împartate de thread-uri.

    Race condition

    • Race condition apar când mai mult de un thread acceseaza aceeasi resursa la fel de sincronizat.

    Deadlock

    • Deadlock apare atunci când două sau mai multe thread-uri se blochează reciproc, deoarece se asteapta unul de altul.

    Dezavantaj ele sincronizării

    • Overhead de procesare, complexitate program.

    TOCTOU (time of check to time of use)

    • TOCTOU apare atunci cand o conditie este verificata, si apoi e utilizata din nou, fara a fi actualizată.

    Spinlock vs. mutex

    • Spinlock: utilizat pentru secțiuni critice mici, folosește busy-waiting.
    • Mutex: utilizat pentru secțiuni critice mai mari, utilizează blocare.

    Operatorul '&' in shell

    • Trimite comanda in background si nu asteapta terminarea executiei.

    Proces zombie

    • Proces încheiat, dar care nu a fost așteptat de către procesul părinte.

    Proces orfan

    • Proces al cărui proces părinte s-a terminat.

    Rolul TLB

    • TLB este o memorie cache a sistemului pentru tabele de pagini.

    Intrarea în tabelă de pagini

    • Conține informații despre pagina virtuală corespunzătoare unei pagini fizice.

    Tabelă de pagini multi-nivel (ierarhică)

    • Reduce spațiul cerut de tabele de pagini, prin împărțire.

    Analiză statică / dinamică

    • Analiză statică se face pe executabil.
    • Analiză dinamică se face pe programul executat / in timpul runtime.

    Stack Guard / Stack Smashing protection (SSP)

    • SSP protejează împotriva atacurilor buffer overflow.

    Stack canary

    • Valoare care este suprascrisă în timpul unui atac.

    ASLR (Address Space Layout Randomization)

    • ASLR face adresele executabile din diferite locuri random in memorie la fiecare execuție.

    PIE (Position Independent Executable)

    • PIE face adresele executabile din diferite locuri random in memorie la fiecare execuție.

    Control Flow Hijack

    • Control flow hijack este alterarea fluxului normal de execuție a unui program.

    Memory Leak / Memory Disclosure

    • Memory leak este accesul necontrolat la memorie a datelor dintr-un proces.

    Cod PIC (Position Independent Code)

    • Cod PIC are adrese diferite la fiecare rulare.

    FCB (File Control Block)

    • Structură internă a sistemului de fișiere cu date despre un fișier.

    Descriptor de fișier

    • Număr întreg corespunzător unei intrări în tabela de descriptori de fișier.

    Tabele de decriptori de fișiere

    • Fiecare proces are propria tabelă.

    Apelul dup()

    • Duplică un descriptor de fișier.

    Apelul close()

    • Închide un descriptor de fișier.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Acest quiz abordează tehnici esențiale pentru prevenirea atacurilor de tip buffer overflow și analizele statice și dinamice ale executabilelor. Vei învăța despre concepte precum stack canary, TLB, și tabele de pagini, precum și despre importanța analizei bibliotecilor externe. Testează-ți cunoștințele și află cât de bine stăpânești aceste concepte fundamentale.

    More Like This

    Test Your Knowledge
    20 questions

    Test Your Knowledge

    EnterprisingTopaz avatar
    EnterprisingTopaz
    Buffer Overflow Attacks Quiz
    6 questions
    Use Quizgecko on...
    Browser
    Browser