30 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Загальні захисти та обхідні шляхи для бінарного експлуатації
{{#include ../../banners/hacktricks-training.md}}
## Увімкнення файлів ядра
**Файли ядра** - це тип файлу, який генерується операційною системою, коли процес зазнає збою. Ці файли захоплюють образ пам'яті зламаного процесу на момент його завершення, включаючи пам'ять процесу, регістри та стан лічильника програми, серед інших деталей. Цей знімок може бути надзвичайно цінним для налагодження та розуміння причин збою.
### **Увімкнення генерації дампів ядра**
За замовчуванням багато систем обмежують розмір файлів ядра до 0 (тобто, вони не генерують файли ядра), щоб заощадити місце на диску. Щоб увімкнути генерацію файлів ядра, ви можете використовувати команду **`ulimit`** (в bash або подібних оболонках) або налаштувати системні параметри.
- **Використання ulimit**: Команда `ulimit -c unlimited` дозволяє поточній сесії оболонки створювати файли ядра необмеженого розміру. Це корисно для сесій налагодження, але не зберігається після перезавантаження або нових сесій.
```bash
ulimit -c unlimited
```
- **Постійна конфігурація**: Для більш постійного рішення ви можете відредагувати файл `/etc/security/limits.conf`, щоб додати рядок на кшталт `* soft core unlimited`, що дозволяє всім користувачам генерувати файли ядра необмеженого розміру без необхідності вручну встановлювати ulimit у своїх сесіях.
```markdown
- soft core unlimited
```
### **Аналіз файлів ядра за допомогою GDB**
Щоб проаналізувати файл ядра, ви можете використовувати інструменти налагодження, такі як GDB (GNU Debugger). Припустимо, у вас є виконуваний файл, який створив дамп ядра, і файл ядра називається `core_file`, ви можете розпочати аналіз з:
```bash
gdb /path/to/executable /path/to/core_file
```
Ця команда завантажує виконуваний файл та файл ядра в GDB, що дозволяє вам перевірити стан програми в момент збою. Ви можете використовувати команди GDB для дослідження стеку, перевірки змінних та розуміння причини збою.
{{#include ../../banners/hacktricks-training.md}}