Введение 0:17 Рассматриваются способы уменьшения размера исполняемого файла. Уменьшение размера файла важно для хакерского программирования. Информация предназначена для правомерных целей и освоения перспективных способов кодирования.
Объединение секций 1:12 Линкер создает секции для кода, данных, импорта, экспорта и ресурсов. Секции можно объединять или удалять, что уменьшает размер файла. Объединение данных в секцию кода затрудняет отладку, что является защитой от взлома.
Выравнивание секций 2:17 Секции выравниваются в памяти на значение, кратное 4096. Изменение кратности выравнивания уменьшает размер файла. Для 32-битной системы минимальное выравнивание - 16 байт.
Удаление секции DOS 3:23 В начале исполняемого файла Windows есть секция с текстом для DOS. Удаление этой секции уменьшает размер файла. Реализуется через линкер и файл-затычку.
Использование системных функций 4:13 Использование функций из библиотек DLL уменьшает размер кода. Пример: функции Win32 API вместо самописных процедур.
Динамическое выделение памяти 4:51 Динамическое выделение памяти или размещение неинициализированных данных в секции .data уменьшает размер программы. Применение неординарных способов уменьшения размера программ.
Практика на MASM 32 5:24 Использование шаблона для создания крохотных файлов. Перенос секции данных в секцию кода с помощью джампов. Объединяем секции .data и .text, выравниваем секции и удаляем секцию .rel.
Использование файла-затычки 9:37 Использование файла-затычки .stab для удаления секции .rel. Линкер link2.exe подходит для наших целей. Размер файла уменьшен до 592 байт.
Обрезка файла 13:56 Обрезка нулевых байтов в конце файла с помощью WinHex. Размер файла уменьшен до 577 байт.
Практика на Pelles 15:17 Использование Pelles для уменьшения размера файла. Настройка выравнивания секций и удаление точки входа. Размер файла уменьшен до 800 байт.