Common Binary Exploitation Protections & Bypasses

Υποστηρίξτε το HackTricks

Ενεργοποίηση Αρχείων Core

Τα αρχεία Core είναι ένας τύπος αρχείου που δημιουργείται από ένα λειτουργικό σύστημα όταν ένας διεργασία καταρρέει. Αυτά τα αρχεία καταγράφουν την εικόνα μνήμης της διεργασίας που κατέρρευσε στη στιγμή της τερματισμού της, συμπεριλαμβανομένης της μνήμης της διεργασίας, των καταχωρητών και της κατάστασης του μετρητή προγράμματος, μεταξύ άλλων λεπτομερειών. Αυτή η στιγμιότυπη εικόνα μπορεί να είναι εξαιρετικά χρήσιμη για την αποσφαλμάτωση και την κατανόηση του λόγου για τον οποίο συνέβη ο κρατικός τερματισμός.

Ενεργοποίηση Δημιουργίας Αρχείων Core Dump

Από προεπιλογή, πολλά συστήματα περιορίζουν το μέγεθος των αρχείων core σε 0 (δηλαδή δεν δημιουργούν αρχεία core) για να εξοικονομήσουν χώρο στο δίσκο. Για να ενεργοποιήσετε τη δημιουργία αρχείων core, μπορείτε να χρησιμοποιήσετε την εντολή ulimit (σε κέλυφος bash ή παρόμοια κέλυφη) ή να ρυθμίσετε ρυθμίσεις σε επίπεδο συστήματος.

  • Χρησιμοποιώντας το ulimit: Η εντολή ulimit -c unlimited επιτρέπει στην τρέχουσα συνεδρία κελύφους να δημιουργεί αρχεία core με απεριόριστο μέγεθος. Αυτό είναι χρήσιμο για συνεδρίες αποσφαλμάτωσης αλλά δεν είναι μόνιμο σε επανεκκινήσεις ή νέες συνεδρίες.

ulimit -c unlimited
  • Μόνιμη Διαμόρφωση: Για μια πιο μόνιμη λύση, μπορείτε να επεξεργαστείτε το αρχείο /etc/security/limits.conf για να περιλαμβάνει μια γραμμή όπως * soft core unlimited, η οποία επιτρέπει σε όλους τους χρήστες να δημιουργούν αρχεία πυρήνα με απεριόριστο μέγεθος χωρίς την ανάγκη να ορίζουν χειροκίνητα το ulimit στις συνεδρίες τους.

* soft core unlimited

Ανάλυση Αρχείων Core με το GDB

Για να αναλύσετε ένα αρχείο core, μπορείτε να χρησιμοποιήσετε εργαλεία αποσφαλμάτωσης όπως το GDB (ο GNU Debugger). Υποθέτοντας ότι έχετε ένα εκτελέσιμο αρχείο που παρήγαγε ένα core dump και το αρχείο core έχει το όνομα core_file, μπορείτε να ξεκινήσετε την ανάλυση με:

gdb /path/to/executable /path/to/core_file

Αυτή η εντολή φορτώνει το εκτελέσιμο αρχείο και τον πυρήνα στο GDB, επιτρέποντάς σας να επιθεωρήσετε την κατάσταση του προγράμματος στη στιγμή του κρασαρίσματος. Μπορείτε να χρησιμοποιήσετε εντολές GDB για να εξερευνήσετε το stack, να εξετάσετε μεταβλητές και να κατανοήσετε τον λόγο του κρασαρίσματος.

Last updated