Софт-Архив

Pe img-1

Pe

Рейтинг: 4.7/5.0 (1873 проголосовавших)

Категория: Windows: Autorun

Описание

Как открыть PE файлы - Файлы с расширением PE

Что обозначает расширение PE?

автор: Jay Geater. главный писатель по вопросам технологий

Вам кто-то послал по электронной почте файл PE, и вы не знаете, как его открыть? Может быть, вы нашли файл PE на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом PE.

До того, как вы сможете открыть файл PE, вам необходимо выяснить, к какому виду файла относится расширения файла PE.

Совет: Неправильные ассоциации файлов PE могут являться признаком других базовых проблем в вашей операционной системе Windows. Эти неверные записи могут также стать причиной иных сопутствующих проблем, таких как медленный запуск Windows, зависание компьютера и прочих проблем производительности ПК. Поэтому мы настоятельно рекомендуем вам просканировать свой реестр Windows на предмет неправильных ассоциаций файлов и других проблем, связанных с фрагментацией реестра.

Файлы PE имеют Uncommon Files, который преимущественно ассоциирован с PatentEase File.

Файлы PE также ассоциированы с Portable Executable File, Microsoft Symbol and Type Information и FileViewPro.

Иные типы файлов также могут использовать расширение файла PE. Если вам известны любые другие форматы файлов, использующие расширение файла PE, пожалуйста, свяжитесь с нами. чтобы мы смогли соответствующим образом обновить нашу информацию.

Как открыть ваш файл PE: PE Средство открытия файлов

Самый быстрый и легкий способ открыть свой файл PE — это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла PE.

В случае, если ваш файл PE не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями PE.

Если ваш ПК открывает файл PE, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов PE с неверной программой.

Мы настоятельно рекомендуем просканировать ваш реестр Windows на предмет неверных ассоциаций файлов и прочих проблем, связанных с реестром.

Загрузки программного обеспечения, связанные с расширением файла PE:

• PatentEase File

* Некоторые форматы расширений файлов PE можно открыть только в двоичном формате.

PE Инструмент анализа файлов™

Вы не уверены, какой тип у файла PE? Хотите получить точную информацию о файле, его создателе и как его можно открыть?

Теперь можно мгновенно получить всю необходимую информацию о файле PE!

Революционный PE Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле PE. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.†

Уже через несколько секунд вы точно узнаете тип вашего файла PE, приложение, сопоставленное с файлом, имя создавшего файл пользователя, статус защиты файла и другую полезную информацию.

Чтобы начать бесплатный анализ файла, просто перетащите ваш файл PE внутрь пунктирной линии ниже или нажмите «Просмотреть мой компьютер» и выберите файл. Отчет об анализе файла PE будет показан внизу, прямо в окне браузера.

Перетащите файл PE сюда для начала анализа

Просмотреть мой компьютер »

Другие статьи, обзоры программ, новости

Создание базового загрузочного диска Windows PE

Создание базового загрузочного диска Windows PE

Важно! В статье рассматривается создание загрузочного диска Windows PE 2.0 на основе WAIK для Windows Vista. Доступны обновленные руководства по созданию диска:

Также доступна экспресс-инструкция для тех, кто не хочет все это читать, а хочет быстро войти в Windows PE .

Windows PE - это среда предустановки Windows, использующаяся для подготовки к установке операционных систем Windows Vista, Windows Server 2008 и Windows 7. Однако с помощью Windows PE можно выполнять разнообразные задачи. Например,

  • управление разделами жесткого диска с помощью утилиты Diskpart или сторонних средств,
  • захват томов в WIM-образ с помощью утилиты ImageX и их сохранение на другой раздел жесткого диска или USB-диск,
  • применение WIM-образов к тому с помощью утилиты ImageX ,
  • запуск автоматической установки Windows XP, Windows Vista, Windows Server и Windows 7,
  • копирование и замену файлов, а также правку реестра установленной операционной системы, если она не загружается.

Среду Windows PE также часто используют ОЕМ-производители для восстановления системы к заводским настройкам с помощью собственных средств. Особую ценность для диагностики и восстановления операционной системы Windows PE приобретает при включении в ее состав набора Microsoft Diagnostics and Recovery Toolset (MSDaRT). входящего в пакет Desktop Optimization Pack. К сожалению, MSDaRT для Windows Vista доступен только по программе Software Assurance или по корпоративным лицензиям VL/OL/EA.

Так или иначе, диск с Windows PE может пригодиться вам для работы с WIM-образами или восстановления операционной системы, поэтому ниже я рассмотрю процесс его создания с помощью пакета автоматической установки Windows (WAIK). Процесс создания базового диска Windows PE довольно прост - он занимает буквально 10 минут.

На этой странице Создание базового набора файлов

В статье рассматривается создание диска с 32-разрядной версией Windows PE. Кроме того, я предполагаю, что у вас на диске создана папка C:\VistaWork. Если вы создаете диск с 64-разрядной версией Windows PE и/или используете другую папку, вам необходимо будет заменить во всех командах архитектуру (х86 на amd64 ) и пути к папкам.

В меню Пуск последовательно щелкните Все программы. Microsoft Windows AIK и Утилиты командной строки Windows PE - все последующие команды будут вводиться в это окно командной строки.

Примечание. Если вы работаете в Windows Vista или Windows Server 2008, Утилиты командной строки Windows PE следует запускать от имени администратора, щелкнув правой кнопкой мыши на ярлыке и выбрав в контекстном меню пункт Запуск от имени администратора. Это позволит избежать проблем с правами доступа к папкам и файлам.

Базовый набор файлов создается одной командой:

После ее завершения в папке winpe_x86 будет создана такая структура, как показано на скриншоте.

Подключение образа Windows PE и работа с ним

Для изменения исходного образа Windows PE его необходимо подключить командой

Подключив образ, вы можете устанавливать в него пакеты и добавлять собственные файлы.

Блог программиста Еремина Вячеслава Викторовича

PE - формат исполняемого файла.

Существует несколько стандартных форматов исполняемых файлов. Самый старый, унаследованный от CP/M формат файлов с расширением COM применяется в MS-DOS и позволяет использовать только один сегмент в 64K пямяти. При этом блок PSP занимает первые 100h (256 байт) и прога должна начинаться с директивы ORG 100. Также существует и ряд более продвинутых форматов исполняемых файлов. Хорошие проги умеют создавать исполняемый файл во многих форматах - a.out, COFF, PE, ELF и др.

Но основным форматом исполняемых файлов в Windows является формат Portable Executable (PE). Все файлы с расширением SYS, EXE, DLL, OCX имеют имено этот формат.

Поэтому на этой страничке мы коснемся трех вопросов:
  • Описание PE-формата.
  • Чем смотреть на PE-файлы (в обычном и .NET варианте).
  • Дополнительные файлы, помогающие понять содержимое PE-Файлов.

Хороший справочник всех форматов Windows-файлов (кроме как в MSDN) можно посмотреть здесь. А с моего сайта можно сгрузить четыре различных описания формата PE:

Конечно исполняемый файл можно посмотреть с помощью WinHex. но в практическом плане это нереально, ибо ничего конкретного так не увидишь. WinHex применяется только для просмотра BSS секции с неициализированными данными, которые игнорируют обычные отладчики, но которые очень любит всякая вирусня для размещения своих данных.

Из исполняемого файла можно почерпнуть много полезной информации, чтобы смотреть его WinHex'ом. Например, список API, которые вызывает прога. Лучший инструмент для просмотра списка импортируемых функций - Dependency Walker (Depends.exe) из комплекта Windows 2000 Support Tools.

На рисунке показано как ядро Windows (NTOSKRNL.EXE) экспортирует предоставляемые им сервисы прикладным программам (которыми пользуются например, программы Native API - Ntdll.dll, которыми в свою очередь уже пользуются KRNL32.dll, USER32.dll, GDI32.dll, которые в свою очередь превращаются уже в команды языка программирования типа WriteFile, CreateProcess, OpenWindow, NetworkSend и т.д.) Посмотреть статически взаимосвязь между модулями очень удобно именно с помощью Dependency Walker.

Секции в PE-файле могут быть нескольких видов. Для полного дампирования всего исполняемого файла (что нужно например для изучения вирусов) можно воспользоваться разными утилитами, но существуют две отличные бесплатные утилиты. Одна из них PEDUMP из MSDN выдает дамп в строчном режиме, другая PeBrewsePro от компании Smidfeonsoft - в оконном режиме.

Что касается дампирования .NET сборок, то могу порекомендовать программы с этого сайта.

Также с моего сайта можно сгрузить все три указанные бесплатные проги для работы с исполняемыми форматами файлов:

  • PeDump.
  • PeBrowsePro.
  • Depends.
  • NET-инстрменты.
  • Еще один хороший инструмент, умеющий работать с исполняемыми файлами - RcHunter. только он небесплатный, а с креками для него плохо.

Разумеется с исполняемым файлом можно работать не только статически (как с записанным на диске текстом) - можно организовать для него виртуальную память с помощью IDAPro, загрузить его в виртуальную память отладчика, дизассемблировать и посмотреть в динамике процесс выполнения - но это уже другая задача и там будут свои проблемы. Подробнее об этом в разделе средства мониторинга программ. Но очень часто достаточно просто посмотреть на исполняемый файл как на текст, не исполняя его - а для этого и нужно знание PE-формата и указанные выше утилитки. Посмотрите еще на эту тему статью Криса Касперски (часть1. часть2 ).

Часто исполняемый файл существует не сам по себе, а с дополнительными файлами ресурсов (окошки, кнопки и т.д.). Об этом подробнее в разделе ресурсы .

Из исполняемого файла можно полностью вырезать отладочную символьную информацию, а также с исполняемым файлом можно связать отладочные символы в DBG или PDB формате. Именно эти отладочные символы загрузила здесь LiveKD. Подробнее об этом можно посмотреть в разделе Средства отладки программ.

К библиотечным исполняемым файлам типа OCX или DLL также могут прилагаться TLB-файлы с полным описанием всех классов на языке IDL. Это описание читается прогой OleView (сгрузить ) - как видите, это даже удобнее чем просто исходный текст - налицо вся структура программы.

Защитные проводники (PE-проводники)

Защитные проводники (PE-проводники)

Надежными техническими способами защиты от поражения электротоком считаются заземление и зануление. Система защитного заземления предназначена для электрического соединения предмета из проводящего ток материала с землёй. Составляющими компонентами заземление выступают заземлитель и заземляющий проводник, соединённые между собой. Защитная функция заключается в полной или частичной защите человека от угрозы поражения током, в уменьшении разницы потенциалов заземляемого проводящего объекта и проводящими ток объектами с естественным заземлением до безопасного значения. Отдельные части установки соединяются с заземленным устройством через сопротивление в несколько раз меньше сопротивления человеческого тела. Когда возникает замыкание. большая часть тока проходит через землю, а тот ток, который припадает на тело, оказывается совсем уже довольно незначительным. Если система заземления спроектирована правильно, согласно норм и правил по технической эксплуатации, то возникновение утечки тока ведёт к незамедлительному срабатыванию защитных устройств.

Какие бывают защитные проводники (PE-проводники)

Зануление также выполняется в целях электробезопасности. Это процесс преднамеренного электрического соединения проводящих открытых частей электроустановок с наглухо заземленной точкой. Нулевой РЕ-проводник используется в данном случае для соединения открытых частей пользователя электрической энергии с заземленной нейтральной точкой источника.

Проводники для защитного заземления, нулевые защитные проводники в электроустановках с напряжением до 1 кВ с глухозаземленной нейтралью маркируются буквенным обозначение РЕ. Защитный РЕ-проводник предназначен исключительно для целей электробезопасности. В системе заземления, РЕ-проводники обеспечивают непрерывное соединение всех открытых и внешних токопроводящих частей установки. Проводники обеспечивают создание непрерывной эквипотенциальной системы, обеспечивают безопасность. РЕ-проводники способствуют прохождению тока, возникшего при повреждении к заземленной нейтрали источника. PE-проводники присоединены к главной шине заземления установки, которая, в свою очередь, подсоединена к заземляющему электроду специальным проводником. Цветовое обозначение проводников (РЕ) соответствует чередующимися поперечным или продольным полосам одинаковой ширины зеленого и желтого цветов. РЕ-проводники должны быть тщательно защищены от разного рода механических и химических повреждений. Их прокладывают в одной трубе, кабельном канале, кабельной нише с токоведущими кабелями цепи в схемах заземления IT и ТН. Такая особенность обеспечивает минимально возможное индуктивное сопротивление цепи, по которой ток замыкания проходит на землю.

В электроустановках напряжением до 1 кВ в качестве РЕ-проводников используют специально предусмотренные проводники. Но данные функции также могут быть возложены и на открытые части электроустановок или некоторые сторонние проводящие части. Если речь идет о специально предусмотренных проводниках, то они могут быть:

  • жилами многожильных кабелей;
  • как изолированными, так и неизолированными проводами;
  • проводниками, проложенными стационарно.
Функции РЕ-проводников могут выполнять открытые части электроустановок:
  • алюминиевых оболочек кабелей;
  • стальных труб электропроводок;
  • металлических оболочек шинопроводов;
  • опорных конструкций комплектных устройств.

Функции РЕ-проводников могут выполнять сторонние части, обладающие высокой проводимостью, такие как:

  • металлические каркасы зданий, конструкции из металла;
  • арматурные конструкции;
  • конструкции для производственного назначения.

Короба из металла, лотки электрических проводок, прекрасно подойдут в качестве проводников. В процессе проектировки строительства следует исключить любые механические повреждения этих конструкций и предварительно предусмотреть их использование в качестве проводников.

Открытые проводящие части, как и сторонние проводящие части вполне подойдут в качестве защитных РЕ-проводников, в том случае, если они отвечают всем требованиям настоящей главы проводимости и непрерывности электроцепи.

Если возникает необходимость в качестве проводников использовать сторонние проводящие части, то они должны соответствовать следующим требованиям:

  • их конструкция должна быть произведена таким образом, чтобы обеспечить непрерывность электроцепи. В случае, если такая возможность ограничена определенными строительными особенностями, то непрерывность электрической цепи должна быть обеспечена посредством соединений, защищенных от любого рода повреждений;
  • если существует минимальный риск прерывания непрерывности цепи, то демонтаж таких конструкций невозможен.

В целях безопасности, не следует забывать о том, что некоторые приспособления строго запрещены для использования в качестве защитных РЕ-проводников. Речь идёт о:

  • металлических оболочках изоляционных трубок, рукавов, свинцовых оболочках кабелей;
  • трубах центрального отопления;
  • канализационных трубах;
  • водопроводные трубы;
  • системах газоснабжения.

В многих старых домах электрическая проводка выполнена по давно устаревшим нормам и нуждается в замене. Для обеспечения собственной безопасности жители таких домов пытаются, с помощью опытных специалистов электриков, произвести модернизацию. Задача состоит в разделении ранее совмещенного нулевого и рабочего проводника PEN на нулевой защитный РЕ и нулевой рабочий N проводники. Такое требование обеспечивает максимальную безопасность, надёжно сохраняет соединения заземления с защитным проводником в случае разрушения контактного зажима.

Пишите комментарии, дополнения к статье, может я что-то пропустил. Загляните на карту сайта. буду рад, если вы найдете на моем сайте  еще что-нибудь полезное. Всего доброго.

Заземление Август 11, 2014 admin в 8:50

Pe

PE-формат. Часть 1 – Базовая информация

Воскресенье, 24. Июль 2011

Данная статья является первым маленьким шажком на пути к написанию собственного несложного упаковщика. Знаний предстоит получить весьма большое количество, так что садитесь поудобнее, запасайтесь попкорном и готовьтесь к чтению. В статье большое количество отсылок к MSDN, поэтому не ленитесь открывать и изучать те структуры, на которые я ссылаюсь. Если будете следовать моим простым советам, обучение пойдет гораздо проще. Еще я бы рекомендовал скачать какой-нибудь PE-редактор, например, CFF Explorer и скормить ему реальный PE-файл, чтобы можно было вживую пробежаться по тем структурам, которые я здесь описываю.

PE-формат (Portable Executable) - это формат всех 32- и 64-разрядных исполняемых файлов в ОС Windows. Такой формат имеют файлы exe, dll, ocx, sys и т.д. (Разумеется, exe под DOS не в счет). В этой статье я расскажу самую базовую информацию об устройстве этого формата и его структурах. Практически самое полное и доступно изложенное описание можно найти в статье Криса Касперски . и она является обязательной к прочтению, если вы действительно решили во всем этом разобраться. Помните - никто не говорил, что будет легко, но у вас появился отличный шанс показать, что вы настоящие мужики с железными волосатыми яйцами, разобравшись во всем этом.

Каждый исполняемый файл формата PE состоит из множества взаимосвязанных структур, содержащих информацию о самом файле, об импортируемых и экспортируемых им функциях, о перемещаемых элементах, ресурсах, Thread Local Storage и многое другое. Начнем по порядку. На рисунке ниже приведена обобщенная структура файла PE-формата:

Каждый PE-файл состоит из вышеперечисленных элементов, они являются обязательными. С самого верху находится MS-DOS-заголовок - наследие еще с тех самых времен, когда происходил переход с DOS на Windows, поддерживающий новый PE-формат. Наверняка вы замечали, что все исполняемые файлы начинаются с букв "MZ" - это сигнатура как раз характерна для структуры, названной IMAGE_DOS_HEADER и располагающейся в самом начале PE-файла. Поля этой структуры по большей части нам неинтересны, так как необходимы для запуска из-под DOS. Следует обратить внимание на следующие поля: e_magic - собственно, это поле размером два байта содержит сигнатуру 'MZ' (сокращение от имени Марк Збиновски, который являлся ведущим разработчиком MS-DOS и архитектором формата PE); e_lfanew - указатель на начало PE-заголовка (см. рисунок выше). Это поле должно указывать на первый байт PE-заголовка (IMAGE_NT_HEADERS ), т.е. на сигнатуру "PE\0\0", причем значение этого поля должно быть выровнено по границе двойного слова. Крис Касперски в своей статье упоминает еще поле e_cparhdr. но, по всей видимости, оно по-прежнему никем не проверяется.

Весь смысл DOS-заголовка в том, чтобы передать управление на идущую далее DOS-заглушку, если вдруг кто-то запустить виндовый бинарник под досом. Обычно эта заглушка (по сути - обычная DOS-программа) выдает текст "This program cannot be run in DOS mode.", но ничто не мешает запихать туда и досовую версию программы :)

Далее идет уже упомянутая сигнатура PE-файла (4 байта: 'P', 'E', 0, 0), после которой начинается структура IMAGE_FILE_HEADER. Эта структура подробно описана в MSDN или в статье Криса, тем не менее, я заострю внимание на некоторых ее полях:

Machine - архитектура, на которой может запускаться файл;

NumberOfSections - количество секций в PE-файле. Допустимое значение - от 1 до 0х60. Секция - это некая область памяти, обладающая определенными характеристиками и выделяемая системой при загрузке исполняемого файла;

SizeOfOptionalHeader - размер идущего за этой структурой опционального заголовка в байтах;

Characteristics - поле флагов характеристик PE-файла. Тут содержится информация о том, имеет ли файл экспортируемые функции, перемещаемые элементы, отладочную информацию и т.д.

Остальные поля при загрузке ни на что не влияют.

Далее идет опциональный заголовок PE-файла. На самом деле, никакой он не опциональный, без него файл загружен не будет, хотя размер этого заголовка может и варьироваться. И вновь я приведу описание самых важных полей:

Magic - для 32-разрядных PE-файлов это поле должно содержать значение 0х10B, а для 64-разрядных - 0х20B. Дальше я расскажу, в чем отличие 32- и 64-разрядных версий.

AddressOfEntryPoint - адрес точки входа относительно базового адреса загрузки файла (ImageBase). О способах адресации, используемых в PE-файлах, я расскажу дальше.

ImageBase - базовый адрес загрузки PE-файла. В памяти по этому адресу после загрузки будет располагаться вышеописанная структура IMAGE_DOS_HEADER. Если у файла имеется таблица перемещаемых элементов (о ней тоже далее), то этот адрес может варьироваться, а ImageBase будет содержать лишь рекомендуемый адрес загрузки.

FileAlignment и SectionAlignment - файловое и виртуальное выравнивание секций. В обязательном порядке должны быть выполнены следующие условия:

1. SectionAlignment >= 0х1000;

2. FileAlignment >= 0х200;

3. SectionAlignment >= FileAlignment.

В Windows NT возможно создание невыровненных файлов, но в этом случае физические и виртуальные адреса каждой секции должны совпадать, и SectionAlignment должно быть равно FileAlignment.

SizeOfImage - это поле содержит размер в байтах загруженного образа PE-файла, который должен быть равен виртуальному адресу последней секции плюс ее виртуальный выровненный размер.

SizeOfHeaders - размер всех заголовков. Это поле говорит загрузчику, сколько байт считать от начала файла, чтобы получить всю необходимую информацию для загрузки файла. Значение поля не должно превышать относительного виртуального адреса первой секции.

CheckSum - контрольная сумма файла, которая проверяется загрузчиком только для самых важных системных файлов.

Subsystem - подсистема файла. Самые распространенные - IMAGE_SUBSYSTEM_WINDOWS_GUI (GUI-интерфейс Windows) и IMAGE_SUBSYSTEM_WINDOWS_CUI (консольный интерфейс). За остальными - в статью Криса или MSDN.

SizeOfStackReserve и SizeOfStackCommit . SizeOfHeapReserve и SizeOfHeapCommit - размер соответственно стека и кучи, которые должны быть зарезервированы и выделены для PE-файла. 0 - значение по умолчанию. Если SizeOfStackCommit > SizeOfStackReserve или SizeOfHeapCommit > SizeOfHeapReserve, то файл загружен не будет.

NumberOfRvaAndSizes - количество элементов в таблице DATA_DIRECTORY. расположенной в самом конце опционального заголовка. Может варьироваться от 0 до 16, но все линковщики ставят значение 16, даже если не используют все элементы таблицы. Это связано с ошибками в системном загрузчике (как я понял, только в Win7 загрузчик наконец-то не содержит этих ошибок).

Остальные поля снова никому не сдались, в том числе и системному загрузчику.

Перед тем, как рассматривать таблицу DATA_DIRECTORY. я расскажу о способах адресации, которые наиболее часто используются в PE-файлах.

1. Виртуальная адресация, VA. Такие адреса отсчитываются от начала адресного пространства (т.е. от 0) и являются абсолютными.

2. Относительная виртуальная адресация (RVA). Эти адреса отсчитываются от базового адреса загрузки образа исполняемого файла, т.е. от того адреса, по которому был загружен исполняемый файл.

3. Сырые адреса, т.е. адреса непосредственно от начала файла формата PE на диске, а не в памяти.

Некоторые структуры используют и другие типы адресации.

RVA и VA легко преобразуются друг в друга: VA = RVA + базовый адрес загрузки.

Как я уже говорил выше, базовый адрес загрузки содержится в поле ImageBase опционального заголовка PE, но может варьироваться, если файл имеет таблицу перемещаемых элементов (relocations).

Теперь перейдем к разбору DATA_DIRECTORY. Каждый элемент в этой таблице (IMAGE_DATA_DIRECTORY ), располагающейся в конце опционального заголовка, имеет собственное назначение. Лучше всего про это прочесть в MSDN или в статье Криса.

Каждый элемент таблицы представляет из себя структуру, содержащую два поля - виртуальный адрес тех данных, на которые указывает данный элемент, и их размер. Например, первый элемент таблицы (IMAGE_DIRECTORY_ENTRY_IMPORT ) указывает на таблицу импортируемых функций из различных модулей (как правило, DLL-файлов).

Некоторые из подобных таблиц я разберу в следующих статьях, но, если не терпится узнать побольше прямо сейчас, читайте опять-таки статью Касперски, хотя и там не все эти таблицы описаны.

За DATA_DIRECTORY (т.е. после конца опционального заголовка) начинается таблица секций. Между концом опционального заголовка и таблицей секций могут присутствовать неиспользуемые байты. Существует макрос, позволяющий найти начало таблицы секций, называется он IMAGE_FIRST_SECTION и определен в WinNT.h. Каждая секция описывается структурой IMAGE_SECTION_HEADER. и идут эти структуры друг за другом. Их количество содержится в поле NumberOfSection файлового заголовка.

Как обычно, опишу только реально используемые загрузчиком поля этой структуры.

Name - имя секции. Предоставляется только для удобства и может содержать что угодно. Единственное, что нужно знать - имя секции, содержащей ресурсы файла, должно всегда быть равно ".rsrc", иначе Проводник Windows не сможет отобразить информацию о версии файла и его иконку. Разумеется, это косяк разработчиков Windows.

VirtualAddress - VA секции в памяти, должен быть выровнен на величину Section Alignment.

PointerToRawData - указатель на данные в файле, которые будут использоваться для инициализации памяти секции, должен быть выровнен на величину File Alignment.

VirtualSize и SizeOfRawData - виртуальный и физический размер секции, соответственно. Значение VirtualSize может быть невыровненным, но при загрузке образа всегда автоматически выравнивается по границе SectionAlignment. Значение SizeOfRawData обязано быть выровненным на границу FileAlignment, иначе файл загружен не будет. Впрочем, SizeOfRawData для последней секции может быть и невыровненным. Если SizeOfRawData Упаковщик PE-файлов (exe, dll) (59)

CRACKL@B: ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PE

ФОРМАТ ИСПОЛНЯЕМЫХ ФАЙЛОВ PortableExecutables (PE)

Автор: Hard Wisdom <hardwisdom@geocities.com>

[0] Вступление

Итак, в этом документе излагается формат PE файла с комментариями. Что побудило меня к такой работе? Отчасти пинания Shadow Dragon'a, а отчасти одна законченная шутка для Windows'95. В основе лежит официальное описание фирмы Микрософт (весьма и весьма глюкавое), книга Мэтта Питрека "Секреты системного программирования в Windows'95" (ну очень тяжела для прочтения, ну очень много воды. ), книга Эндрю Шульмана "Неофициальная Windows'95" (тоже очень мокрая), книга Джеффри Рихтера "Программирование в Win32 API для Windows NT 3.5 и Windows'95", а так же готовые экзешники Windows'95. Общие соглашения в написанном тексте: все именования полей и ключевых структур - Английские и только, остальной текст может быть произвольным ;-), тект изложения перемежается с вольными комментариями и лирическими отступлениями. Знаком "? " отмечены места, назначение которых не ясно, либо вызывает сомнения.

Для проверки на возможность файла быть в формате PE необходимо, чтобы он был во первых EXE (байты по смещению 0h равны 5A4Dh), во вторых, слово по смещению 18h должно быть >=40h, тогда и только тогда DWord поле по смещению 3Ch имеет смысл. Загрузчик маздая файлы с заголовком 'ZM' - 4D5Ah не считает валидными 32-битовыми программами. При запуске из дос-окна выполняется ДОС часть программы, а при запуске с помощью CreateProcessA (консольная утилита START.EXE вызывает данный сервис) выдается сообщение о невозможности запуска программы, т.к. это не валидное 32-битовое приложение. Так же интересен следующий момент: возможен запуск файлов с расширением COM и структурой PE, но невозможен запуск файлов с расширением COM и структурой NE. Загрузчик 32-битового приложения проверяет на принадлежность файла к разряду 16-битовых приложений и передает управление в 16-битовый Kernel, в свою очередь тот отбраковывает переданное ему приложение и выполняет STUB.

Исследование переносимого формата исполнимых файлов

Исследование переносимого формата исполнимых файлов "сверху вниз"

Randy Kath

Microsoft Developer Network Technology Group

Операционная система Windows NT™ версии 3.1 представила новый формат исполнимых файлов, называемый Portable Executable (PE) - переносимый формат исполнимых файлов. Спецификация этого формата ( довольно несвязная ) была опубликована и включена в состав Microsoft Developer Network CD ( Specs and Strategy, Specifications, Windows NT File Format Specifications ). Однако только одна эта спецификация не дает достаточно информации для понимания разработчиками формата PE файлов, и не делает такое понимание легко достижимым или вообще возможным. Данная статья предназначена для устранения этой проблемы. В ней Вы найдете подробное объяснение всего формата PE файлов, вместе с описаниями всех необходимых структур и примерами исходного кода, которые демонстрируют использование излагаемой информации.

Все примеры исходного кода, включенные в эту статью, взяты из динамической библиотеки PEFILE.DLL. Я написал эту DLL просто чтобы просматривать всю важную информацию, содержащуюся в PE-файле. DLL и ее исходный код, а также пример приложения PEFile прилагаются; Вы свободны использовать их в своих собственных приложениях. Вы также можете взять мой исходный код для любых Ваших применений. В конце статьи, Вы можете найти краткий перечень экспортируемых из этой библиотеки функций и объяснения по их использованию. Я полагаю, что Вы гораздо легче поймете формат PE-файлов при наличии этих функций.

Недавнее дополнение к семейству операционных систем Windows™ - Microsoft® Windows NT™ привнесла с собою множество изменений в среду разработки и еще больше изменений - в сами приложения. Одно из наиболее значительных изменений - переносимый формат исполнимых файлов - Portable Executable (PE) file format. Новый формат произведен от спецификации COFF ( общий формат объектных файлов - Common Object File Format ), который распространен на многих операционных системах семейства UNIX®. В то же время, для сохранения совместимости с предыдущими версиями MS-DOS® и Windows, PE формат также сохранил старый знакомый MZ заголовок DOSа.

В этой статье, формат PE файлов исследуется с применением подхода "сверху-вниз". Эта статья описывает каждый из компонентов файла, в том порядке, в котором они появляются при рассмотрении содержимого файла, начиная с заголовка и все дальше углубляясь в содержимое файла.

Большинство определений отдельных компонентов взято из файла заголовков WINNT.H, включенного в комплект разработчика Microsoft Win32™ Software Development Kit - SDK для Windows NT. В этом файле Вы можете найти определения типов структур для каждого из заголовков файла и структур данных, представляющих различные компоненты PE-файла. Однако, для некоторых компонентов WINNT.H не предоставляет достаточной информации, для таких компонентов я определил собственные структуры, которые могут быть использованы для манипуляций с PE-файлами. Вы найдете определения этих структур в другом файле заголовков - PEFILE.H, написанным при создании библиотеки PEFILE.DLL. Также прилагаются все файлы, необходимые для построения этой библиотеки ( исходный код ).

В дополнение к исходному коду PEFILE.DLL, также прилагается отдельное 32-битное приложение EXEVIEW.EXE. Этот пример был создан для двух целей:

1) мне нужен был пример, с помощью которого я мог бы проверить функции PEFILE.DLL, которые в некоторых случаях требуют множества видов файла одновременно - отсюда поддержка множества видов.

2) Большинство работы по исследованию формата PE-файлов требует инструмента для интерактивного просмотра данных. Например, чтобы понять структуру таблицы импортируемых функций, я должен был видеть заголовок сегмента .idata, опциональный заголовок и собственно тело сегмента .idata, и все одновременно. EXEVIEW.EXE - замечательный инструмент для просмотра подобной информации.

Итак, начнем без дальнейших промедлений

Структура PE файла

Формат PE-файлов организован в виде линейного потока данных. Он начинается с заголовка MS-DOS, программы реального режима, и сигнатуры PE файла. Далее следуют заголовок PE-файла и опциональный заголовок. После них идут заголовки всех сегментов, за которыми следуют тела этих сегментов. И ближе к концу файла расположены различные области данных, включая информацию о переадресации, таблицу символов, информацию о номерах строк и данные в таблице строк. Все их легче представить графически, как показано на рисунке 1.

Pe

силовое электрооборудование

[Я.Н.Лугинский, М.С.Фези-Жилинская, Ю.С.Кабиров. Англо-русский словарь по электротехнике и электроэнергетике, Москва, 1999 г.]

К силовому электрооборудованию относят:

- комплектные трансформаторные подстанции 6.10/0,4.0,66 кВ;

- электрические, сети для питания электроприемников напряжением до 1 кВ в пределах проектируемого здания, сооружения;

- управляющие устройства электроприводов до 1 кВ систем вентиляции и кондиционирования воздуха, водоснабжения, канализации и других механизмов общего (например, общецехового) назначения, если электроприводы этих систем и механизмов поставляются без таковых.

1. В рабочих чертежах силового электрооборудования для электроприводов технологического, транспортного и т.п. оборудования, поставляемого заводами-изготовителями без управляющих устройств, предусматривают только подвод питания.

2. Установку НКУ и отдельных аппаратов, поставляемых заводами-изготовителями комплектно с технологическим, транспортным и т.п. оборудованием или предусмотренных в документации на изготовление нестандартизированного оборудования, а также прокладку электрических сетей между ними выполняют в рабочих чертежах установки этого оборудования, а подвод питания — в рабочих чертежах силового электрооборудования.

  • электротехника, основные понятия

технологическое оборудование

оборудование

Средства технологического оснащения, в которых для выполнения определенной части технологического процесса размещают материалы или заготовки, средства воздействия на них, а также технологическая оснастка.