Секреты покорения эльфов


>>> Врезка что нам понадобиться?


Для правки исполняемых файлов Линух необязателен. Достаточно иметь HIEW, запущенный из-под Windows, или даже MS-DOS, однако, в этом случае придется сильно попыхтеть и к тому же— как потом это отлаживать? Так что Линух все-таки желателен, хотя бы в виде эмулятора — VM Ware, BOCHS или QEMU.

Мы будем пользоваться hex-редактором HTE, готовую сборку которого можно бесплатно скачать с http://hte.sourceforge.net. Он "переваривает" ELF-формат, в нем есть мощный ассемблер и прочие вкусности. Как вариант, можно воспользоваться редактором BIEW (http://biew.sourceforge.net), но он намного слабее.

Желательно иметь ИДУ. Линуховый порт содержит удобный интерактивный отладчик в стиле Turbo-Debugger'а, плюс сам дизассемблер. Если нет ИДЫ, возьмите gdb – стандартный отладчик, входящий в штатный комплект поставки большинства Линухов, но его возможности сильно ограничены. В частности, от отказывается грузить файлы без section table, спотыкается на антиотладочный приемах и т.д., и т.п. (подробный обзор отладчиков под Линухом можно найти в моей статье "особенности национальной отладки в UNIX", опубликованной в "нннн" номере Хакера)

Из документации нам в первую очередь понадобиться спецификация на ELF-формат, которую можно бесплатно скачать с пристанского сервера: http://www.cs.princeton.edu/courses/archive/fall05/cos318/docs/ELF_Format.pdf и перечень системных вызовов в разных осях — "UNIX Assembly Codes Development for Vulnerabilities Illustration Purposes" (http://www.lsd-pl.net/documents/asmcodes-1.0.2.pdf).

Рисунок 2 отладка внедряемого кода с помощью интегрированного отладчика, встроенного в дизассемблер IDA Pro



Содержание раздела