Heap Functions Security Checks

Ondersteun HackTricks

Vir meer inligting kyk:

unlink

Dit is 'n opsomming van die uitgevoerde kontroles:

  • Kontroleer of die aangeduide grootte van die blok dieselfde is as die prev_size aangedui in die volgende blok

  • Foutboodskap: corrupted size vs. prev_size

  • Kontroleer ook dat P->fd->bk == P en P->bk->fw == P

  • Foutboodskap: corrupted double-linked list

  • As die blok nie klein is nie, kontroleer dat P->fd_nextsize->bk_nextsize == P en P->bk_nextsize->fd_nextsize == P

  • Foutboodskap: corrupted double-linked list (not small)

_int_malloc

Vir meer inligting kyk:

malloc & sysmalloc
  • Kontroles tydens vinnige bin-soektog:

  • As die blok nie belyn is nie:

  • Foutboodskap: malloc(): unaligned fastbin chunk detected 2

  • As die voorwaartse blok nie belyn is nie:

  • Foutboodskap: malloc(): unaligned fastbin chunk detected

  • As die teruggekeerde blok 'n grootte het wat nie korrek is nie as gevolg van sy indeks in die vinnige bin:

  • Foutboodskap: malloc(): memory corruption (fast)

  • As enige blok wat gebruik word om die tcache te vul nie belyn is nie:

  • Foutboodskap: malloc(): unaligned fastbin chunk detected 3

  • Kontroles tydens klein bin-soektog:

  • As victim->bk->fd != victim:

  • Foutboodskap: malloc(): smallbin double linked list corrupted

  • Kontroles tydens konsolidasie uitgevoer vir elke vinnige bin-blok:

  • As die blok nie belyn is nie, veroorsaak:

  • Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected

  • As die blok 'n ander grootte het as die een wat dit behoort te hê as gevolg van die indeks waarin dit is:

  • Foutboodskap: malloc_consolidate(): invalid chunk size

  • As die vorige blok nie in gebruik is nie en die vorige blok 'n grootte het wat verskil van die een wat deur prev_chunk aangedui word:

  • Foutboodskap: corrupted size vs. prev_size in fastbins

  • Kontroles tydens ongesorteerde bin-soektog:

  • As die blok se grootte vreemd is (te klein of te groot):

  • Foutboodskap: malloc(): invalid size (unsorted)

  • As die grootte van die volgende blok vreemd is (te klein of te groot):

  • Foutboodskap: malloc(): invalid next size (unsorted)

  • As die vorige grootte aangedui deur die volgende blok verskil van die grootte van die blok:

  • Foutboodskap: malloc(): mismatching next->prev_size (unsorted)

  • As nie victim->bck->fd == victim of nie victim->fd == av (arena) nie:

  • Foutboodskap: malloc(): unsorted double linked list corrupted

  • Aangesien ons altyd die laaste een kontroleer, moet sy fd altyd na die arena struktuur wys.

  • As die volgende blok nie aandui dat die vorige in gebruik is nie:

  • Foutboodskap: malloc(): invalid next->prev_inuse (unsorted)

  • As fwd->bk_nextsize->fd_nextsize != fwd:

  • Foutboodskap: malloc(): largebin double linked list corrupted (nextsize)

  • As fwd->bk->fd != fwd:

  • Foutboodskap: malloc(): largebin double linked list corrupted (bk)

  • Kontroles tydens groot bin (volgens indeks) soektog:

  • bck->fd-> bk != bck:

  • Foutboodskap: malloc(): corrupted unsorted chunks

  • Kontroles tydens groot bin (volgende groter) soektog:

  • bck->fd-> bk != bck:

  • Foutboodskap: malloc(): corrupted unsorted chunks2

  • Kontroles tydens Top blok gebruik:

  • chunksize(av->top) > av->system_mem:

  • Foutboodskap: malloc(): corrupted top size

tcache_get_n

  • Kontroles in tcache_get_n:

  • As blok nie belyn is nie:

  • Foutboodskap: malloc(): unaligned tcache chunk detected

tcache_thread_shutdown

  • Kontroles in tcache_thread_shutdown:

  • As blok nie belyn is nie:

  • Foutboodskap: tcache_thread_shutdown(): unaligned tcache chunk detected

__libc_realloc

  • Kontroles in __libc_realloc:

  • As ou wyser nie belyn is nie of die grootte verkeerd was:

  • Foutboodskap: realloc(): invalid pointer

_int_free

Vir meer inligting kyk:

free
  • Kontroles tydens die begin van _int_free:

  • Wysers is belyn:

  • Foutboodskap: free(): invalid pointer

  • Grootte groter as MINSIZE en grootte ook belyn:

  • Foutboodskap: free(): invalid size

  • Kontroles in _int_free tcache:

  • As daar meer inskrywings as mp_.tcache_count is:

  • Foutboodskap: free(): too many chunks detected in tcache

  • As die inskrywing nie belyn is nie:

  • Foutboodskap: free(): unaligned chunk detected in tcache 2

  • As die vrygemaakte blok reeds vrygemaak is en teenwoordig is as blok in die tcache:

  • Foutboodskap: free(): double free detected in tcache 2

  • Kontroles in _int_free vinnige bin:

  • As die grootte van die blok ongeldig is (te groot of te klein) veroorsaak:

  • Foutboodskap: free(): invalid next size (fast)

  • As die bygevoegde blok reeds die boonste van die vinnige bin was:

  • Foutboodskap: double free or corruption (fasttop)

  • As die grootte van die blok bo-aan 'n ander grootte het as die blok wat ons byvoeg:

  • Foutboodskap: invalid fastbin entry (free)

_int_free_merge_chunk

  • Kontroles in _int_free_merge_chunk:

  • As die stuk die boonste stuk is:

  • Foutboodskap: double free or corruption (top)

  • As die volgende stuk buite die grense van die arena is:

  • Foutboodskap: double free or corruption (out)

  • As die stuk nie gemerk is as gebruik nie (in die prev_inuse van die volgende stuk):

  • Foutboodskap: double free or corruption (!prev)

  • As die volgende stuk 'n te klein of te groot grootte het:

  • Foutboodskap: free(): invalid next size (normal)

  • As die vorige stuk nie in gebruik is nie, sal dit probeer konsolideer. Maar, as die prev_size verskil van die grootte wat in die vorige stuk aangedui word:

  • Foutboodskap: corrupted size vs. prev_size while consolidating

_int_free_create_chunk

  • Kontroles in _int_free_create_chunk:

  • Byvoeging van 'n stuk in die ongesorteerde bin, kontroleer of unsorted_chunks(av)->fd->bk == unsorted_chunks(av):

  • Foutboodskap: free(): corrupted unsorted chunks

do_check_malloc_state

  • Kontroles in do_check_malloc_state:

  • As 'n verkeerd uitgelynede vinnige bin stuk:

  • Foutboodskap: do_check_malloc_state(): unaligned fastbin chunk detected

malloc_consolidate

  • Kontroles in malloc_consolidate:

  • As 'n verkeerd uitgelynede vinnige bin stuk:

  • Foutboodskap: malloc_consolidate(): unaligned fastbin chunk detected

  • As die verkeerde vinnige bin stuk grootte:

  • Foutboodskap: malloc_consolidate(): invalid chunk size

_int_realloc

  • Kontroles in _int_realloc:

  • Grootte is te groot of te klein:

  • Foutboodskap: realloc(): invalid old size

  • Grootte van die volgende stuk is te groot of te klein:

  • Foutboodskap: realloc(): invalid next size

Last updated