Уроки Iczelion'а


         

Мы отобразим имя секции, но


invoke RtlZeroMemory,addr buffer,9 invoke lstrcpyn,addr buffer,addr [esi].Name1,8 lea eax,buffer mov lvi.pszText,eax
Мы отобразим имя секции, но перед этим мы должны отконвертировать его в ASCIIZ-строку.
invoke SendDlgItemMessage,hDlg,IDC_SECTIONLIST,LVM_INSERTITEM,0,addr lvi
Затем мы отобразим его в первой колонке.
Мы продолжаем действовать по этой схеме, пока не выведем последнее значение. Тогда мы должны переходить к следующей структуре.
dec edi add esi, sizeof IMAGE_SECTION_HEADER .endw
Мы понижаем значение в edi после обработки каждой из секций. И добавляем размер IMAGE_SECTION_HEADER к esi, что он содержал адрес следующей структуры IMAGE_SECTION_HEADER.
Вот, что необходимо сделать, чтобы обработать таблицу секций:

  • Убедиться, что файл является верным PE.

  • Перейти к началу PE-заголовка.

  • Получить количество секций из поля NumberOfSections в файловом заголовке.

  • Перейти к таблице секций либо добавив ImageBase к SizeOfHeaders или добавив адрес PE-заголовка к размеру DOS-заголовка (таблица секций идет непосредственно за PE-заголовком). Если вы не хотите использовать file maрing, вам нужно переместить файловый указатель на таблицу секций посредством SetFilePointer. Файловое смещение таблицы секций находится в SizeOfHeaders (это один из параметров IMAGE_OPTIONAL_HEADER).

  • Обработать каждую структуру IMAGE_SECTION_HEADER.

[C] Iczelion, пер. Aquila.

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий