PE Explorer Питання та відповіді
Поширені запитання
Якщо у вас є питання щодоPE Explorer, то цілком можливо, що у нас вже є на них відповіді. Нижче наведено список питань і відповідей, що найбільш часто ставляться. Якщо ви не знайшли відповіді, будь ласка, зверніться до Технічної підтримки.
Бажаємо також звернути вашу увагу на довідкову систему, яка доступна з програми натискання кнопки F1. Документація до програми допоможе вам дізнатися більше про всі можливостіPE Explorer.
Загальні питання
У чому різниця між тріальною та повною версіями PE Explorer?
З погляду функціональності – майже ніякої. Ознайомча 30-денна версія PE Explorer містить ті самі функції, що й зареєстрована версія. Відмінність у тому, що через 30 днів із моменту встановлення тріальна версія попросить вас придбати ліцензію для продовження роботи.
Також у тріальному режимі відключено кілька другорядних функцій: збереження всіх ресурсів відразу, видалення релокацій, видалення налагоджувальної інформації та збереження дизассемблерного лістингу у вигляді сесії.
Чому PE Explorer коштує так дорого, порівняно з безкоштовними аналогами типу Resource Hacker?
PE Explorer не може відкрити себе. Це навмисне?
Так. Так і було задумано.
Якщо ж ви хочете відкрити файл, що виконується, отримати з нього вихідний код програми на 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 матиме багатомовний інтерфейс.
Відкриття файлу
Вискакує помилка "Файл, можливо, пошкоджено абозапакований". Що робити?
При збереженні 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 при відкритті файлу виконує дві автоматичні операції: розпакування файлу, якщо він визначається як стислий UPX-ом, і перевірка файлу на помилки в ресурсах.
Якщо файл стиснутий за допомогою UPX, Upack або NSPack, файл розпаковується і, відповідно, збільшується у розмірі. При збереженні файлу PE Explorer не запаковує його назад. Вся інформація про розмір файлу до і після відкриття та про всі зроблені операції відображається у вікні лога.
Наступне, що робить PE Explorer - це перезбирає ресурси відповідно до специфікації PE файлів. Це може призвести до зміни оригінального розміру файлу після простої операції збереження.
Якщо ви не хочете, щоб розмір змінився, просто не перезберігайте файл.
Редактор ресурсів
Як загалом редагуються ресурси?
Чи можу я витягти всі ресурси з файлу, відредагувати їх, а потім вставити їх назад?
Чи є у вас версія, яка підтримувала б .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 файл з командного рядка. Як мені це зробити?
Перегляд експорту
Як мені отримати параметри функції, що експортується? Я знаю ім'я функції, але марно, якщо я не знаю параметрів.
Якщо у вас немає доступу до вихідного коду функції або документації API, то все, що у вас є - це машинний код у файлі. Іншого способу, окрім як скористатися дизассемблером та самостійно з'ясувати параметри на основі дизассемблерного лістингу, у вас немає. На жаль, ця областьреверсинг не піддається автоматизації.
PE Explorer містить базу з описом 39 стандартних бібліотек, включаючи системні бібліотеки Windows (наприклад, KERNEL32, GDI32, USER32, SHELL32, WSOCK32), ключові графічні бібліотеки (DDRAW, OPENGL32) та інші, і показує типи їх параметрів та значення, що повертаються. Однак надати опис для всіх бібліотек на світі, коли-небудь написаних, ми поки що не в змозі.
Дизассемблер
Що таке дизассемблер?
Дизассемблер - це програма, яка перекладає машинний код мовою асемблера, тобто. виконує операцію зворотну тій, що робить асемблер. Відмінність дизассемблера від декомпілятора у цьому, що він намагається відтворити вихідний текст досліджуваної програми мовою високого рівня.
Чи можлива справжня декомпіляція?
На жаль немає. Повністю автоматична декомпіляціянеможлива. Ніякий декомпілятор не в змозі точно відновити оригінальний вихідний код.
Нам шкода руйнувати ваші ілюзії, але PE Explorer не декомпілює код. Він його дизассемблирует, тобто. перекладає з машинної мови на мову асемблера, але й годі. Генерувати код на С або С++ із дизассемблерного лістингу PE Explorer не вміє, оскільки це завдання неймовірної складності. Особливо якщо вихідна програма була написана на Бейсику.
Результати видаються на асемблері, який зовсім не розумію. Невже не можна перекласти все на нормальний С++ чи паскаль?
Я отримав з exe файлу асемблерний лістинг і вніс зміни до коду. Але як мені перетворити ці зміни назад на формат exe?
Результат, який видається дизассемблером, призначений лише для дослідження та вивчення. Отриманий асемблерний код може бути повторно скомпільований у працездатну програму.
Чомуб не зробити дизасеблер трохи кращим (показувати список імен API функцій тощо)?
Це все буде у майбутніх версіях. Наш список побажань – кілометрової довжини.
Чи можу я написати власний плагін для PE Explorer?
Так. Опис API для плагінів можна знайти у документації до програми.
Дізнайтесь більше про можливості PE Explorer Завантажте 30-денну версію PE Explorer