unlink
Kod
Grafiksel Açıklama
Unlink işlemine dair harika bir grafiksel açıklamayı kontrol edin:
Güvenlik Kontrolleri
Belirtilen parçanın boyutunun, bir sonraki parçada belirtilen prev_size ile aynı olup olmadığını kontrol edin
Ayrıca
P->fd->bk == P
veP->bk->fw == P
olduğunu kontrol edinParça küçük değilse,
P->fd_nextsize->bk_nextsize == P
veP->bk_nextsize->fd_nextsize == P
olduğunu kontrol edin
Sızıntılar
Bağlantısı kesilmiş bir parça, ayrılan adresleri temizlemediği için, ona erişim sağlamak, bazı ilginç adresleri sızdırmak mümkündür:
Libc Sızıntıları:
P, çift yönlü bağlı listedeki başta bulunuyorsa,
bk
libc'temalloc_state
'e işaret edecektirP, çift yönlü bağlı listedeki sonunda bulunuyorsa,
fd
libc'temalloc_state
'e işaret edecektirÇift yönlü bağlı listede yalnızca bir boş parça bulunduğunda, P çift yönlü bağlı listede bulunur ve hem
fd
hem debk
,malloc_state
içindeki adresi sızdırabilir.
Heap Sızıntıları:
P, çift yönlü bağlı listedeki başta bulunuyorsa,
fd
heap'te bir kullanılabilir parçaya işaret edecektirP, çift yönlü bağlı listedeki sonunda bulunuyorsa,
bk
heap'te bir kullanılabilir parçaya işaret edecektirP, çift yönlü bağlı listede bulunuyorsa, hem
fd
hem debk
, heap'te bir kullanılabilir parçaya işaret edecektir
Last updated