PE Explorer

   English English  Deutsch Deutsch  Русский Русский

Часто задаваемые вопросы

Если у вас есть вопросы по PE Explorer, то вполне возможно, что у нас уже есть на них ответы. Ниже представлен список наиболее часто задаваемых вопросов и ответов. Если вы не нашли ответа, пожалуйста обратитесь в Техническую поддержку.

Хотим также обратить ваше внимание на справочную систему, которая доступна из программы по нажатию кнопки F1. Документация к программе поможет вам больше узнать о всех возможностях PE Explorer.

Вопросы

Общие вопросы

Открытие файла

Сохранение файла

Редактор ресурсов

Просмотр экспорта

Дизассемблер

Плагины

 

Общие вопросы

В чём разница между триальной и полной версиями PE Explorer?

С точки зрения функциональности - почти никакой. Ознакомительная 30-дневная версия PE Explorer содержит все те же фунции, что и зарегестрированная версия. Отличие в том, что через 30 дней с момента установки триальная версия попросит вас приобрести лицензию для продолжения работы.

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

Почему PE Explorer стоит так дорого по сравнению с бесплатными аналогами типа Resource Hacker?

Давайте сразу внесём ясность: PE Explorer - это НЕ редактор ресурсов и ни разу не аналог Resource Hacker. Взгляните на скриншоты PE Explorer. Где вы такое видели в Resource Hacker? Да, в состав PE Explorer входит редактор ресурсов, но это не делает его похожим на Resource Hacker, так же как MS Word с трудом может считаться аналогом бесплатного Notepad. В отличие от Resource Hacker, PE Explorer предназначен для использования в самых различных ИТ-областях: в разработке и тестировании программного обеспечения, в обратной разработке (реверс-инжиниринге) с целью восстановления алгоритмов, применяющихся в анализируемом файле, в антивирусных лабораториях и криминалистике, в информационной безопасности для обнаружения уязвимостей и проведения аудита файлов, полученных из непроверенных источников. На этом фоне редактор ресурсов - это лишь один из многих компонентов, входящих в PE Explorer. Мы полагаем, что набор возможностей PE Explorer компенсирует разницу в цене с бесплатными редакторами ресурсов.

Более того, редактор ресурсов из PE Explorer нами был специально выделен в отдельный продукт, Resource Tuner. Если ваша единственная задача - это редактирование ресурсов, и вас не интересует расширенная функциональность PE Explorer, то в таком случае Resource Tuner будет для вас правильным выбором.

И ещё интересная деталь насчёт бесплатного аналога: Ангус Джонсон, автор программы Resource Hacker, является зарегистрированным пользователем PE Explorer.

PE Explorer не может открыть сам себя. Это нарочно?

Да. Так и было задумано.

Почему вы говорите, что это редактор, если он не даёт мне редактировать код программы?

PE Explorer не является редактором бинарного кода программ. PE Explorer редактирует внутреннюю структуру исполняемых файлов. Если вы хотите редактировать бинарный код, вам нужен hex редактор, например FlexHEX Editor.

Если же вы хотите открыть исполняемый файл, получить из него исходный код программы на C++, затем внести в этот код изменения и сохранить эти изменения в виде exe файла, то, к сожалению, PE Explorer этого делать не умеет.

Как мне изменить что-либо в EXE или DLL файле?

Спрашивая, как открыть или изменить что-то в EXE или DLL файле, многие люди часто не очень хорошо себе представляют, с чем они столкнутся. Ведь EXE и DLL файлы - это не обычные текстовые документы, которые можно легко и непринуждённо открыть, прочитать или отредактировать в Блокноте. Вы не можете вот так вот просто взять и открыть такой файл, а тем более начать вносить в него изменения. В какой-то степени открытие EXE файла можно сравнить со снятием задней крышки с телевизора и разглядыванием разноцветных проводков внутри: проводки можно попереставлять местами, но будет ли телевизор после этого работать?

EXE и DLL файлы имеют очень сложную структуру, которая определяется специальным форматом Portable Executable, и вообще не предназначены для чтения людьми. Часто единственной вразумительной информацией в текстовом виде, которую можно найти в таких файлах, является версия продукта и информация о его производителе.

С помощью программы PE Explorer действительно можно вносить изменения в EXE и DLL файлы, но не в сам код, а в структуру файла и его свойства. Так же вы можете модифицировать ресурсы приложения. Благодаря тому, что ресурсы в файле отделены от кода программы, вы можете внести значительные изменения в интерфейс программы, не затронув при этом собственно сам код. На этом принципе как раз и строится локализация программ. Но для редактирования ресурсов лучше использовать программу Resource Tuner.

Смотрите также :  Какая программа мне подходит лучше?

Не смог открыть по нормальному ни одного DLL файла. Что не откроешь - внутри везде только какие-то непонятные цифры и кракозябры.

Цифры и кракозябры - это и есть DLL. Если вы ожидали увидеть внутри DLL книжку с картинками, то не удивительно, что вы разочарованы. И это при том, что PE Explorer всё же пытается представить информацию из DLL в наиболее читабельном виде. И чтобы извлечь максимум из этой информации, вам потребуется как минимум умение понимать значения и смысл этих цифр.

Воспользуйтесь справочной системой, которая доступна из программы по нажатию кнопки F1. Документация к программе так же поможет вам больше узнать о всех возможностях PE Explorer.

Что такое PE файл и зачем мне его исследовать?

"PE" - это сокращение от "Portable Executable". Термин "Portable Executable" был выбран компанией Microsoft, чтобы специально подчеркнуть переносимость единого формата исполняемых файлов для всех версий Windows, начиная с Windows NT и 95, который должен работать на всех поддерживаемых процессорах. Таким образом, PE файл - это 32-битный исполняемый файл, разработанный Microsoft для своих 32-битных операционных систем. Для 64-битных систем спецификация PE файлов была дополнена, 64-битные файлы обозначаются как PE+. Детальный обзор PE формата содержится в справке к программе PE Explorer.

Есть и другие типы исполняемых файлов, которые могут запускаться на платформах от Microsoft. Это "MZ" (DOS), "NE" и "LE" - но эти форматы считаются устаревшими (хотя и всё ещё работающими).

Не все PE файлы имеют расширение 'exe'. Это может быть "dll", "scr", "sys", "cpl" или "ocx", и даже "msstyles" и "mui", появившиеся в Windows XP. Так же примечательно, что не все PE файлы могут запускаться сами по себе - к примеру, файлы dll (динамически подключаемые библиотеки) могут только вызываться из основной программы. PE файлы, которые запускаются самостоятельно, имеют расширения exe, scr и cpl.

Планируется ли версия для работы с 64-битными файлами?

Обязательно. Версия 2 будет иметь полную поддержку 64-битных файлов.

Будет ли доступна версия PE Explorer на русском языке?

Да. Версия 2 будет иметь многоязычный интерфейс.

Открытие файла

Выскакивает ошибка "Файл, возможно, повреждён или запакован". Что делать?

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

При сохранении DLL возникает ошибка: Не могу создать новый файл имиджа, исходный файл возможно был запакован. Как быть?

Скорее всего так и есть - исходный файл был сжат одним из нескольких десятков существующих упаковщиков или защищен коммерческим протектором. Поскольку PE Explorer автоматически распаковывает только файлы, сжатые бесплатными UPX, Upack и NsPack, вам придётся самостоятельно определить упаковщик и распаковать файл перед открытием. Пытаться внести изменения в запакованный файл и потом записать эти изменения особого смысла не имеет - файл просто не будет работать.

Что такое упаковщики?

Упаковщики (пакеры, протекторы) - это специальные программы, которые уменьшают размеры исполняемых файлов (EXE, DLL, и т.д.), иногда в несколько раз, оставляя их при этом 100% работоспособными. Некоторые из них также криптуют данные и ресурсы, защищая exe файлы от изменений или взлома.

Возникает ошибка - что-то там "несовместимо" и какой-то "тип NE". Что это за NE файл?

PE Explorer работает только с PE файлами. NE (сокращённо от "New Executable") файл - это древнее 16-битное приложение, оставшееся со времён Windows 3.xx. Формат этих файлов отличается от современных PE файлов.

Работает ли PE Explorer с NE и другими 16-битными файлами?

Нет. NE формат устарел, и у нас нет намерений поддерживать его.

Если PE Explorer не работает с NE файлами, как сделать, чтобы работал?

Никак. Мы не занимаемся 16-битными файлами. Мы занимаемся только 32- и 64-битными файлами.

Работает ли PE Explorer с .NET managed сборками?

Нет. В данный момент PE Explorer работает только с unmanaged 32-битными PE файлами и не поддерживает дотнет сборки. Хотя иногда некоторые .Net файлы могут представлять из себя всё те же старые добрые PE файлы, и в этом случае PE Explorer вполне может с ними работать.

PE Explorer сообщает о какой-то внутренней ошибке и открывает файл в SAFE режиме. Что это значит?

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

Сохранение файла

Почему у меня размер сохранённого файла увеличился после открытия и пересохранения файла, без единого внесённого изменения?

PE Explorer при открытии файла выполняет 2 автоматические операции: распаковка файла, если он определяется как сжатый UPX-ом, и проверка файла на ошибки в ресурсах.

Если файл был сжат при помощи UPX, Upack или NSPack, файл распаковывается и, соответственно, увеличивается в размере. При сохранении файла PE Explorer не запаковывает его обратно. Вся информация о размере файла до и после открытия и обо всех произведенных операциях отображается в окне лога.

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

Если вы не хотите, чтобы размер изменился - просто не пересохраняйте файл.

Редактор ресурсов

Как вообще редактируются ресурсы?

На страницах Resource Tuner Tutorials рассказывается подробно и в картинках об основных операциях при использовании редактора ресурсов.

Могу ли я извлечь все ресурсы из файла, отредактировать их, и затем вставить их обратно?

Текущая версия редактора ресурсов не имеет функции импорта. Мы понимаем потенциальную ценность этой этой фунции и она, возможно, появится в версии 2.

Есть ли у вас версия, которая бы поддерживала .NET ресурсы в managed сборках?

Пока нет.

Почему PE Explorer говорит, что у заменяемой иконки должен быть тот же размер и та же глубина цвета? Вы можете это исправить?

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

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

Группа икон в Блокноте

В каждой группе икон могжет находится дюжина разных икон, каждая со своим размером и/или количеством цветов. Стандартный набор размеров включает 16, 32, 48 и 256 пикселей, глубина цвета обычно 32 бита (24 бита плюс 8-битный альфа канал), 8 бит (256 цветов) и 4 бита (16 цветов).

Когда Windows отображает иконку, к примеру ярлык в папке, любая из этих иконок может быть использована в зависимости от настроек папки - при показе крупных значков Windows выберет 48х48, при показе списка - самые мелкие 16х16. Выбор глубины цвета зависит от дисплея: на одном мониторе будут выбраны 16-цветные иконки, на другом - 32-х битные.

Поэтому PE Explorer контролирует размер и цветность иконок и не позволяет несоответствия.

Мне нужно заменить иконки в exe файле из командной строки. Как мне это сделать?

Воспользоваться Resource Tuner Console. Это консольная версия редактора ресурсов, управляемая скриптом из командной строки. Эта программа работает с 32- и 64-битными файлами и сочетает в себе надёжный юникодный редактор ресурсов и гибкие возможности скриптового языка (VBScript).

Просмотр экспорта

Как мне получить параметры экспортируемой функции? Я знаю имя функции, но оно бесполезно, если я не знаю параметров.

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

PE Explorer содержит базу с описанием 39 стандартных библиотек, включая системные библиотеки Windows (например, KERNEL32, GDI32, USER32, SHELL32, WSOCK32), ключевые графические библиотеки (DDRAW, OPENGL32) и другие, и показывает типы их параметров и возвращаемые значения. Однако предоставить описание для всех библиотек на свете, когда-либо написанных, мы пока не в состоянии.

Дизассемблер

Что такое дизассемблер?

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

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

Возможна ли настоящая декомпиляция?

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

Нам жаль разрушать ваши иллюзии, но PE Explorer не декомпилирует код. Он его дизассемблирует, т.е. переводит с машинного языка на язык ассемблера, но и только. Генерировать код на С или С++ из дизассемблерного листинга PE Explorer не умеет, поскольку это задача невероятной сложности. Особенно, если исходная программа была написана на Бейсике.

Результаты выдаются на ассемблере, который я совсем не понимаю. Неужели нельзя перевести всё на нормальный С++ или паскаль?

К сожалению, процесс компиляции однонаправленный и необратимый, и в скомпилированном файле бесследно исчезают и синтаксис исходного языка, и имена функций и переменных, не говоря уже о комментариях. Всё, что там есть - это серии инструкций в машинных кодах. Правильно интерпретировать эти инструкции и восстановить даже приближенно исходный код на С++ - это всё равно, что пытаться восстановить корову из гамбургера.

Я получил из exe файла ассемблерный листинг и внёс изменения в код. Но как мне превратить эти изменения обратно в формат exe?

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

Почему бы не сделать дизассеблер немного лучше (показывать список имён API функций и т.п.)?

Это всё будет в будущих версиях. Наш список пожеланий - километровой длины.

Плагины

Могу ли я написать свой собственный плагин для PE Explorer?

Да. Описание API для плагинов можно найти в документации к программе.

 Подробнее о плагинах для PE Explorer

 

Узнайте больше о возможностях PE Explorer
Скачайте 30-дневную версию PE Explorer