This is an old revision of the document!
Test Cursul 2
1. Pentru funcția
int f(int a, int b)
{
int x;
char *p = kmalloc(12, GFP_KERNEL);
…
}
um se accesează conținutul variabilei b folosind registrul frame pointer (registrul EBP).
EBP + 12, 0x0c(%ebp), …
2. Care din următoarele apeluri genereaza page-fault?
<code>
memcpy(p, NULL, 1024);
copy_from_user(p, NULL, 1024);
</code>
Ambele apeluri generează page-fault în kernel (mempcy și în user-space, copy_from_user nu există în user-space). Abia în momentul tratării acestui page-fault se verifică argumentele și de unde provin ele pentru a genera kernel bug / oops.
3. Presupunand ca argumentele apelurilor de sistem ar fi verificate, cum ar putea un atacator să folosescă un apel de sistem pentru a corupe date din kernel?**
Scriere/citire din locații nepermise. Buffer overflows. S-a punctat orice soluție ce ducea la un atac.