Реинженеринг

Реинженеринг

Викикнига «Реинжинеринг»

Данная книга посвящена реинженерингу программного обеспечения. Основное внимание уделяется архитектуре Intel x86, языку программирования C, и платформе Microsoft Windows (так-как это наиболее популярная платформа для реинжинеринга). Так-же будут освешены и другие вопросы, такие как Linux-системы, реверсинг Microsoft.Net и Java байт-кода, компьютерные сети, и закрытые форматы файлов. Многие страницы книги пока не завершены, и поэтому приветствуется любая посильная помощь в её развитии.

Отказ от ответственности

Основное предназначение этой книги – быть введением в практическую часть реинженеринга. Несмотря на то, что реинженеринг имеет множество законных применений и является незаменимым инструментом для поиска и исправления ошибок в программном обеспечении, "яростного противодействия" другим его применениям здесь не будет (однако если вы описываете что-то "злое", то желательно рассматривать и возможности противодействия).

Заметка для соавторов

Официальная тема этой книги – «Законный Реинженеринг»; Любой материал не попадающий под это описание нежелателен для включения в эту книгу (впрочем, можете спокойно проигнорировать эту заметку, и делать так, как полагаете нужным). Эта книга – не выставка эксплойтов, хаков, крэков и других вредоносных штуковин.

Специальные страницы

  • Обложка
  • Версия для печати
  • Список страниц

Содержание

Введение

Введение ... Аспекты легальности ... Терминология

Часть 1: Основа

Часть 2: Операционные системы

  • Системы и файлы
  • Windows
  • Linux
  • Mac OS X
  • ThreadX
  • PE файлы
  • ELF файлы
  • Другие исполняемые файловые форматы
  • Динамические библиотеки

Часть 3: Структура программ

  • Структура программы
  • Стек
  • Функции и фреимы стека (Примеры)
  • Соглашения вызова (Примеры)
  • Переменные (Примеры)
  • Структуры данных
  • Объекты и классы
  • Ветвления (Примеры)
  • Циклы (Примеры)

Часть 4: Дизассемблирование

  • Продвинутае дизассемблирование
  • Числа с плаваюшей точкой (Примеры)
  • Оптимизация кода (Примеры)
  • Интерливинг
  • Неинтуитивные инструкции
  • Обфускация кода

Часть 5: Байт-код

  • Реверсирование байт-кода
  • Файлы Java .class
  • Другие инструменты Java
  • Структура файлов .NET
  • Инструменты реверсинга .NET

Часть 6: Компьютерные сети

  • Компьютерные сети
  • Telnet
  • Сниферы пакетов
  • Сканеры портов
  • Заголовки Ethernet
  • Заголовки TCP-IP
  • Сетевые атаки

Часть 7: Безопасность

  • Безопасность
  • Базовая безопасность
  • Переполнение стека
  • Переполнение кучи
  • Обшие решения
  • Взлом паролей Windows XP

Часть 8: Коммерческие форматы файлов

  • Форматы файлов

Часть 9: Анти-Реверсинг

  • Анти-Реверсинг
  • Обфускаторы
  • Преобразователи кода
  • Непроницаемые предикаты
  • Криптование-декриптование кода
  • Хеширование кода
  • Обнаружение отладчиков
  • Уничтожение отладчиков

Часть 10: Дизассемблирование и Декомпиляция

  • Теория дизассемблирования
  • Теория декомпиляции

Приложение

  • Примеры
  • Ресурсы