unlink
Kod
Grafiksel Açıklama
Check this great graphical explanation of the unlink process:
Güvenlik Kontrolleri
Chunk'ın belirtilen boyutunun, bir sonraki chunk'taki prev_size ile aynı olup olmadığını kontrol edin
Ayrıca
P->fd->bk == P
veP->bk->fw == P
olduğunu kontrol edinEğer chunk küçük değilse,
P->fd_nextsize->bk_nextsize == P
veP->bk_nextsize->fd_nextsize == P
olduğunu kontrol edin
Leak'ler
Unlinked bir chunk, tahsis edilen adresleri temizlemez, bu nedenle ona erişim sağlandığında bazı ilginç adresleri leak etmek mümkündür:
Libc Leak'leri:
Eğer P, çift bağlı listenin başındaysa,
bk
libc'dekimalloc_state
'e işaret edecektirEğer P, çift bağlı listenin sonunda ise,
fd
libc'dekimalloc_state
'e işaret edecektirÇift bağlı liste yalnızca bir serbest chunk içeriyorsa, P çift bağlı listede yer alır ve hem
fd
hem debk
,malloc_state
içindeki adresi leak edebilir.
Heap leak'leri:
Eğer P, çift bağlı listenin başındaysa,
fd
heap'teki mevcut bir chunk'a işaret edecektirEğer P, çift bağlı listenin sonunda ise,
bk
heap'teki mevcut bir chunk'a işaret edecektirEğer P çift bağlı listede ise, hem
fd
hem debk
, heap'teki mevcut bir chunk'a işaret edecektir
Last updated