26 lines
1.5 KiB
Markdown

# AW2Exec - \_\_malloc_hook
{{#include ../../../banners/hacktricks-training.md}}
## **Malloc Hook**
Soos jy kan [Official GNU site](https://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html) sien, is die veranderlike **`__malloc_hook`** 'n pointer wat na die **adres van 'n funksie wat aangeroep sal word** wanneer `malloc()` aangeroep word **gestoor in die dataseksie van die libc biblioteek**. Daarom, as hierdie adres oorgeskryf word met 'n **One Gadget** byvoorbeeld en `malloc` aangeroep word, sal die **One Gadget aangeroep word**.
Om malloc aan te roep, is dit moontlik om te wag vir die program om dit aan te roep of deur **`printf("%10000$c")` aan te roep** wat te veel bytes toewys, wat maak dat `libc` malloc aanroep om dit in die heap toe te wys.
Meer inligting oor One Gadget in:
{{#ref}}
../one-gadget.md
{{#endref}}
> [!CAUTION]
> Let daarop dat hooks **deaktiveer is vir GLIBC >= 2.34**. Daar is ander tegnieke wat op moderne GLIBC weergawes gebruik kan word. Sien [https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md).
## References
- [https://ir0nstone.gitbook.io/notes/types/stack/one-gadgets-and-malloc-hook](https://ir0nstone.gitbook.io/notes/types/stack/one-gadgets-and-malloc-hook)
- [https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md)
{{#include ../../../banners/hacktricks-training.md}}