# Έλεγχοι Ασφαλείας Συναρτήσεων Σωρού
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
## unlink
Αυτή η συνάρτηση αφαιρεί ένα κομμάτι από μια διπλά συνδεδεμένη λίστα. Οι κοινοί έλεγχοι εξασφαλίζουν ότι η δομή της συνδεδεμένης λίστας παραμένει συνεκτική κατά την αποσύνδεση των κομματιών.
* **Έλεγχοι Συνέπειας**:
* Έλεγχος εάν `P->fd->bk == P` και `P->bk->fd == P`.
* Μήνυμα σφάλματος: `corrupted double-linked list`
## \_int\_malloc
Αυτή η συνάρτηση είναι υπεύθυνη για την εκχώρηση μνήμης από το σωρό. Οι έλεγχοι εδώ εξασφαλίζουν ότι η μνήμη δεν παραμορφώνεται κατά την εκχώρηση.
* **Έλεγχος Μεγέθους Fastbin**:
* Όταν αφαιρείτε ένα κομμάτι από ένα fastbin, βεβαιωθείτε ότι το μέγεθος του κομματιού βρίσκεται εντός του εύρους του fastbin.
* Μήνυμα σφάλματος: `malloc(): memory corruption (fast)`
* **Έλεγχος Συνέπειας Smallbin**:
* Όταν αφαιρείτε ένα κομμάτι από ένα smallbin, βεβαιωθείτε ότι οι προηγούμενοι και επόμενοι σύνδεσμοι στη διπλά συνδεδεμένη λίστα είναι συνεκτικοί.
* Μήνυμα σφάλματος: `malloc(): smallbin double linked list corrupted`
* **Έλεγχος Εύρους Μνήμης Unsorted Bin**:
* Βεβαιωθείτε ότι το μέγεθος των κομματιών στο unsorted bin βρίσκεται εντός των ελάχιστων και μέγιστων ορίων.
* Μήνυμα σφάλματος: `malloc(): memory corruption`
* **Έλεγχος Συνέπειας Unsorted Bin (Πρώτο Σενάριο)**:
* Όταν εισάγετε ένα κομμάτι υπολειμματικής μνήμης στο unsorted bin, ελέγξτε εάν `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`.
* Μήνυμα σφάλματος: `malloc(): corrupted unsorted chunks`
* **Έλεγχος Συνέπειας Unsorted Bin (Δεύτερο Σενάριο)**:
* Ίδιο με τον προηγούμενο έλεγχο, αλλά ενεργοποιείται όταν εισάγετε μετά από διαίρεση ενός γρήγορου ή μικρού κομματιού.
* Μήνυμα σφάλματος: `malloc(): corrupted unsorted chunks 2`
## \_int\_free
Αυτή η συνάρτηση απελευθερώνει προηγουμένως εκχωρημένη μνήμη. Οι έλεγχοι εδώ βοηθούν να εξασφαλιστεί η σωστή αποδέσμευση μνήμης και να αποτραπεί η παραμόρφωση μνήμης.
* **Έλεγχος Ορίων Δείκτη**:
* Βεβαιωθείτε ότι ο δείκτης που απελευθερώνεται δεν είναι τυλιγμένος γύρω από τη μνήμη.
* Μήνυμα σφάλματος: `free(): invalid pointer`
* **Έλεγχος Μεγέθους**:
* Βεβαιωθείτε ότι το μέγεθος του κομματιού που απελευθερώνεται είναι τουλάχιστον `MINSIZE` ή πολλαπλάσιο του `MALLOC_ALIGNMENT`.
* Μήνυμα σφάλματος: `free(): invalid size`
* **Έλεγχος Μεγέθους Fastbin**:
* Για κομμάτια fastbin, βεβαιωθείτε ότι το μέγεθος του επόμενου κομματιού βρίσκεται εντός των ελάχιστων και μέγιστων ορίων.
* Μήνυμα σφάλματος: `free(): invalid next size (fast)`
* **Έλεγχος Διπλής Απελευθέρωσης Fastbin**:
* Όταν εισάγετε ένα κομμάτι σε ένα fastbin, βεβαιωθείτε ότι το κομμάτι στην κορυφή δεν είναι το ίδιο με αυτό που εισάγετε.
* Μήνυμα σφάλματος: `double free or corruption (fasttop)`
* **Έλεγχος Συνέπειας Fastbin**:
* Όταν εισάγετε σε ένα fastbin, βεβαιωθείτε ότι τα μεγέθη του κομματιού στην κορυφή και του κομματιού που εισάγετε είναι τα ίδια.
* Μήνυμα σφάλματος: `invalid fastbin entry (free)`
* **Έλεγχος Συνέπειας Κορυφής Κομματιού**:
* Για κομμάτια που δεν είναι fastbin, βεβαιωθείτε ότι το κομμάτι δεν είναι το ίδιο με το κομμάτι κορυφής.
* Μήνυμα σφάλματος: `double free or corruption (top)`
* **Έλεγχοι Ορίων Μνήμης**:
* Βεβαιωθείτε ότι το επόμενο κομμάτι μνήμης βρίσκεται εντός των ορίων της αρένας.
* Μήνυμα σφάλματος: `double free or corruption (out)`
* **Έλεγχος Bit Prev\_inuse**:
* Βεβαιωθείτε ότι το bit προηγούμενου σε χρήση κομματιού στο επόμενο κομμάτι είναι επισημασμένο.
* Μήνυμα σφάλματος: `double free or corruption (!prev)`
* **Έλεγχος Κανονικού Μεγέθους**:
* Βεβαιωθείτε ότι το μέγεθος του επόμενου κομματιού βρίσκεται εντός των έγκυρων εύρων.
* Μήνυμα σφάλματος: `free(): invalid next size (normal)`
* **Έλεγχος Συνέπειας Unsorted Bin**:
* Όταν εισάγετε ένα συνενωμένο κομμάτι στο unsorted bin, ελέγξτε εάν `unsorted_chunks(av)->fd->bk == unsorted_chunks(av)`.
* Μήνυμα σφάλματος: `free(): corrupted unsorted chunks`
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!
Άλλοι τρόποι υποστήριξης του HackTricks:
* Αν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)!
* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα τηλεγραφήματος**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.