РуЛиб - онлайн библиотека > Сейтц Джастин > Python > Программирование на Python для хакеров

Читаем онлайн «Программирование на Python для хакеров»

стр.
Ïðîãðàììèðîâàíèå
íà Python äëÿ õàêåðîâ
Äæàñòèí Ñåéòö
GRAY HAT PYTHON
Автор:
Justin Seitz
Перевод:
forum.reverse4you.org
M. Chumichev
Russian Underground
2012
ОГЛАВЛЕНИЕ
Глава 1 – Настройка рабочего окружения
Глава 2 – Отладчики и устройство отладчика
Глава 3 – Создание отладчика под Windows
Глава 4 – PyDbg: Windows отладчик на чистом Python
Глава 5 – Immunity Debugger
Глава 6 – Hooking
Глава 7 – DLL и Code Injection
Глава 8 – Fuzzing
Глава 9 – Sulley
Глава 10 – Фаззинг драйверов Windows
Глава 11 – IDAPython
Глава 12 – PyEmu
3
СОДЕРЖАНИЕ
ВВЕДЕНИЕ............................................................................................................. 8
ГЛАВА 1: Настройка рабочего окружения.................................................... 10
1.1. Требования к системе................................................................................. 10
1.2 Получение и установка Python 2.5 ............................................................. 11
1.2.1 Установка Python в Windows ............................................................... 11
1.2.2 Установка Python в Linux..................................................................... 11
1.3. Настройка среды Eclipse и PyDev ............................................................. 13
1.3.1. Лучшие друзья Хакера: ctypes ............................................................. 15
1.3.2 Использование динамических библиотек ........................................... 15
1.3.3 Конструирование типов данных C ..................................................... 18
1.3.4 Передача параметров по ссылке......................................................... 19
1.3.5 Определение структур и объединений ............................................... 19
ГЛАВА 2: Отладчики и устройство отладчика ............................................ 23
2.1. Регистры общего назначения центрального процессора........................ 24
2.2 Стек ............................................................................................................... 26
2.3 События отладчика...................................................................................... 28
2.4 Точки останова............................................................................................. 29
2.4.2 Аппаратные точки останова .............................................................. 32
2.4.3. Точки останова памяти ...................................................................... 35
ГЛАВА 3: Создание отладчика под Windows ................................................ 37
3.1 Debuggee, Where Art Thou?......................................................................... 37
3.2 Получение состояния регистров процессора............................................ 45
3.2.1 Перечисление потоков .......................................................................... 45
3.2.2 Собираем все вместе ............................................................................ 47
3.3 Реализация отладочных обработчиков событий ...................................... 50
3.4 Всемогущий брейкпойнт............................................................................. 54
3.4.1 Программные брейкпойнты................................................................. 54
3.4.2 Аппаратные брейкпойнты................................................................... 59
3.4.3 Брейкпоинты на память ...................................................................... 63
3.5 Заключение ................................................................................................... 66
3.6 Ссылки .......................................................................................................... 67
ГЛАВА 4: PyDbg – Windows отладчик на чистом Python .......................... 69
4.1 Расширение брейкойнт-обработчиков....................................................... 69
4.2 Обработчики событий "access violation" ................................................... 72
4.3 Снапшоты ..................................................................................................... 75
4.3.1 Создание снапшотов ............................................................................ 75
4.3.2 Собираем все вместе ............................................................................ 78
4.4 Ссылки .......................................................................................................... 81
ГЛАВА 5: Immunity Debugger........................................................................... 82
5.1 Установка Immunity Debugger.................................................................... 82
5.2 Immunity Debugger 101................................................................................ 82
5.2.1 PyCommands........................................................................................... 83
4
5.2.2 PyHooks................................................................................................... 84
5.3 Разработка эксплойта .................................................................................. 86
5.3.1 Поиск дружественных эксплойту инструкций ................................. 86
5.3.2 Фильтрация плохих символов .............................................................. 88
5.3.3 Обход DEP.............................................................................................. 91
5.4 Обход анти-отладочных методов............................................................... 96
5.4.1 IsDebuggerPresent.................................................................................. 96
5.4.2 Обход перебора процессов.................................................................... 97
5.5 Ссылки .......................................................................................................... 98
ГЛАВА 6: Hooking............................................................................................... 99
6.1 Программные перехваты с помощью PyDbg ............................................ 99
6.2 Жесткие перехваты с помощью Immunity Debugger.............................. 104
6.3 Ссылки ........................................................................................................ 111
ГЛАВА 7: DLL и Code Injection...................................................................... 112
7.1 Создание удаленных потоков................................................................... 112
7.1.1 Внедрение DLL..................................................................................... 113
7.1.2 Code Injection ....................................................................................... 116
7.2 На стороне зла ............................................................................................ 119
7.2.1 Скрытие файла ................................................................................... 119
7.2.2 Кодим Backdoor ................................................................................... 121
7.2.3 Использование py2exe.......................................................................... 124
7.3 Ссылки....................................................................................................... 127
ГЛАВА 8: Fuzzing
стр.