This shows you the differences between two versions of the page.
|
so2:cursuri:curs02:test [2013/02/10 02:10] 127.0.0.1 external edit |
so2:cursuri:curs02:test [2013/02/17 09:52] (current) razvan.deaconescu |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Test Cursul 2 ====== | ====== Test Cursul 2 ====== | ||
| - | 1. **Pentru funcția** | + | * TODO |
| - | + | ||
| - | <code> | + | |
| - | int f(int a, int b) | + | |
| - | { | + | |
| - | int x; | + | |
| - | char *p = kmalloc(12, GFP_KERNEL); | + | |
| - | … | + | |
| - | } | + | |
| - | </code> | + | |
| - | + | ||
| - | *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. | + | |