К вопросу о выравнивании сегментов |
[Oct. 12th, 2007|01:45 pm] |
[ | Current Mood |
| | excited | ] | Пока я раздумывал, над тем, как "собирать" сегменты и секции в ELF-файлах, у меня постоянно вертелось в голове offset + 0x1000, offset + 0x1000, co-aligned offset/address... Вспомнил я
также, вот эту картинку из статьи Сильвио:
( картинка )
Странно, что никто не пользуется выравниванием в сегменте данных. А между тем, если пораскинуть мозгами, то становится очевидно, что почти для всех ELF-файлов (с последовательно идущими сегментами кода и данных), сумма длин алигментов сегментов равна 4096 байт. Исключением являются только те файлы, у которых сегмент данных начинается по адресу кратному 4096. Для таких файлов размер "дырки" в памяти будет равен длине выравнивания сегмента кода, то есть, как в оригинальном способе заражения. Соотношение количества тех и других, для /bin в моей системе 2:1.
( код ) |
|
|