как разобрать приложение exe
Чем открыть exe? Как распаковать EXE-файл в Windows и Mac
Программа для редактирования exe файлов, которая поставляется с поддержкой создания резервных копий и пакетного экспорта. Она позволяет просмотр, замену, добавление, удаление и извлечение ресурсов, расположенных в 32-разрядных и 64-разрядных исполняемых файлах Windows и файлах ресурсов (*.res).
Исполняемые файлы Windows (или, более конкретно, файлы Win32 PE) часто содержат небольшую базу данных ресурсов: графические файлы, текстовые строки, значки и другие программные атрибуты. Часто может оказаться полезным изменить эти ресурсы, например, изменить внешний вид программы или исправить неправильный перевод в таблице строк. Anolis Resourcer предназначена для изменения ресурсов исполняемых файлов.
Способ первый: традиционная распаковка
Традиционная распаковка не требует установленных в системе вспомогательных программ. Все, что нужно, — уже предустановлено в Windows.
Итак, процесс распаковки EXE-файла следующий:
Вам остается лишь дождаться завершения этого процесса, после чего можно будет закрывать окно Мастера установок. Вот так просто можно распаковывать EXE-файлы программы.
Какие файлы не имеет смысла открывать в редакторе ресурсов
Не смотря на то, что Resource Tuner предназначен для открытия и редактирования любых 32-/64-битных исполняемых файлов, существуют некоторые виды EXE файлов, в которых ресурсы практически отсутствуют.
1. Файлы, созданные при помощи Visual Basic.
В таких файлах в секции ресурсов ничего нет, кроме иконы и информации о версии. Строчки и диалоги в программах, написанных на визуальном бейсике, хранятся в своём собственном закрытом формате, и стандартная секция ресурсов в них не используется.
Поскольку Resource Tuner — это 32-битная программа, существуют естественные ограничения для размещения образа открываемого файла в виртуальной памяти в пределах первого гигабайта. Файл размером в гигабайт и более туда просто не поместится.
3. Самораспаковывающиеся архивы в виде EXE файлов.
В таких файлах в ресурсах ничего нет, кроме иконы и информации о версии, а может и этого не быть. По сути, это архивированные данные, снабжённые подпрограммой для распаковки.
4. Инсталляторы других программ.
Resource Tuner работает на всех версиях Windows
от 2000 и XP до 8 и 10.
Минимальные системные требования:
Процессор Intel Pentium® или AMD K5 166 MHz 16 MB RAM
Copyright © 2020 Heaventools Software. Все права сохранены.
Динамически подключаемая библиотека или DLL выполняет роль своеобразного исполняемого файла, который многократно используется различными приложениями для осуществления действий. Такое решение позволяет экономить дисковое пространство в несколько раз, а также происходит эффективная организация памяти. Из этого выходит, что на компьютере каждого пользователя хранится множество DLL-объектов, которые можно открыть и не только просмотреть, но и отредактировать.
Способ второй: извлечение установочных файлов
Второй метод кардинально отличается от первого. Если в первом случае нужно было распаковать файлы программы для того, чтобы после этого запустить ее на компьютере, то в этом случае нужно извлечь файлы самого инсталлятора, чтобы произвести с ними манипуляции. В примере представлена специальная программа под названием ResourcesExtract. Работает она следующим образом:
В итоге в указанной вами папке будут находиться файлы установщика. Вы сможете отредактировать их в любое время.
PE-Explorer
Под первым номером идет довольно распространенный редактор PE-Explorer. В отличие от своего собрата Resource Tuner, он способен редактировать не только ресурсы приложения, но и код. Несмотря на свой почтенный возраст, исправно работает даже в Windows 10. К сожалению, PE-Explorer умеет работать только с 32-битными файлами и при попытке открыть 64-битный бинарник сообщает об ошибке.
Утилита обладает богатой функциональностью: отображает все элементы заголовка РЕ, определяет, к каким DLL происходит обращение, предсказывает поведение программ и логику взаимодействия с другими модулями и даже открывает запакованные UPX, UPack или NSPack файлы. Кроме того, она позволяет просматривать и редактировать секции PE-файла, исследовать содержимое таблиц импорта и экспорта и проверять наличие и целостность цифровой подписи. В качестве «вишенки на торте» тут присутствует полноценный дизассемблер.
Но это только на словах, а на деле мы его сейчас проверим. Из-за того что продукт платный, я использовал триальную версию, готовую работать на протяжении 30 дней. Об урезанных функциях ничего сказано не было.
Запустим редактор и сразу же откроем наше подопытное приложение. PE-Explorer первым делом выводит информацию о заголовке PE-файла. Для получения сведений об остальных разделах достаточно пощелкать кнопки на панели инструментов. Жмем пиктограмму Disassembler и открываем окно для выбора поддерживаемых инструкций: SSE, SSE2 и прочее. Указываем необходимые и начинаем процесс нажатием кнопки Start Now.
В открывшемся окне большую часть занимает область с дизассемблерным листингом, чуть ниже располагается шестнадцатеричный дамп. Если в заголовке нижней панели выбрать вкладку Strings, то отобразятся все строки в исследуемом приложении. Так что поиском можно найти и эталонный пароль. Однако для этого пришлось бы перебрать весь внушительный список доступных строк, так что отложим этот вариант до худших времен.
Так как мы с помощью отладчика нашли адрес инструкции, которая отвечает за ход выполнения программы, то попробуем проверить этот адрес в PE-Explorer: нажимаем Ctrl-F (или Search → Find) и вводим адрес для поиска: 402801.
Что ж, я немного разочарован результатом дизассемблирования. Даже отладчик в этом месте показывает мне инструкцию test, а здесь я вижу лишь начало ее шестнадцатеричного кода: 0х85. При этом я не могу редактировать код! Зачем мне все эти возможности, если утилита не позволяет делать самую базовую вещь?
Я даже не могу списать этот недочет на ограничения демоверсии, так как о ее отличиях от платной ничего толком не сказано. Допускаю, что с теми целями, для которых этот продукт предназначен (статическое изучение приложения и вектора его выполнения), он справляется хорошо. Однако нашим требованиям программа не соответствует, поэтому смело вычеркиваю PE-Explorer из списка кандидатов.
Как распаковать EXE-файлы на Mac
Распаковка в операционной системе Mac происходит совсем другим способом. Для того, чтобы достать сами файлы с EXE, вы можете использовать простой архиватор. Принцип распаковки такой же, как и с архивами. В статье показано, как распаковать EXE-файлы, чтобы после запустить программу на компьютере. Именно таким образом вы можете запускать программы Windows в операционной системе Mac.
Итак, для того, чтобы произвести заявленные действия, вам необходимо выполнить следующее:
После этого вы без проблем сможете запускать файл EXE. Далее запустится инсталлятор, а дальнейшие действия аналогичны тем, что были в Windows.
Ошибки при открытии файла
Если при открытии файла возникает ошибка, то скорее всего по трём причинам: файл защищён, файл 16-битный, или это вообще не исполняемый файл.
1. Ошибка: Файл повреждён, сжат упаковщиком или защищён протектором.
Вероятность того, что файл сжат для уменьшения размера, весьма велика. Упаковщиков и протекторов для исполняемых файлов существует не один десяток, и всё время появляются новые. Resource Tuner поддерживает распаковку только одного, зато самого распостранённого упаковщика — UPX. Остальные упаковщики не поддерживаются, и вам придётся самостоятельно заниматься распаковкой файла, прежде чем вы сможете открыть файл для просмотра или редактирования.
Данная ситуация не рассматривается, как ошибка программы. Мы не собираемся ни бороться с попытками других авторов программ защитить свои творения от взлома, ни поддерживать распаковку нескольких десятков разных упаковщиков, среди которых есть и коммерчиские продукты, и самоделки.
Восстановление запуска exe вручную
Вручную действие будет немного сложнее, но зато не требует установки или загрузки программ, подойдёт для компьютера вне сети. Действия будут выполняться в реестре, поэтому не меняйте лишних параметров, так как это может плачевно сказаться на устойчивости системы.
Этот ряд действий позволяет добиться поставленной цели и восстановить ассоциацию файлов exe. Подобным образом можно делать и с другими форматами, но лучше воспользуйтесь специальными утилитами, вроде предыдущей.
Также следует знать, что существуют тяжелые варианты проблемы, когда даже строка «Выполнить» не работает. Тогда нажмите Ctrl+Alt+Del, затем выберите «Файл» и «Выполнить».
Особенности работы с DLL файлами и возможные проблемы
Некоторые DLL не удастся не только изменить, но даже открыть. Это происходит с защищенными библиотеками и проблема не решается без специальных программ для взлома.
Пользователи также сталкиваются с отсутствием библиотек, необходимых для работы некоторых программ. ОС при этом выдает сообщение о том, что «файл не найден». Для устранения неисправности требуется отыскать недостающие DLL с помощью поисковых систем и скачать. Затем – поместить в требуемую папку.
В редких случаях библиотеки DLL придется зарегистрировать в ОС:
Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio
Отладка
Как и в обычном проекте, вы можете начать отладку с помощью F5, которая запустит EXE и подключит отладчик. Если вы хотите отладить запуск, вы можете запустить с помощью F11, который запустит EXE и остановится на первой строке пользовательского кода. Оба эти параметра доступны в контекстном меню для проекта EXE в окне Solution Explorer, как показано ниже:
Для отладки понадобятся символы, файлы PDB, для EXE и любых DLL, которые нужно отладить. Visual Studio будет следовать тому же процессу и попытается получить символы также, как и при отладке обычного проекта. Поскольку маловероятно, что файлы PDB были распространены вместе с EXE-файлом, возможно, вы захотите найти их в сборке или, что еще лучше, на сервере символов. Дополнительную информацию и рекомендации по использованию символов можно найти в этом блоге.
Для эффективной отладки вам также понадобится исходный код, который использовался для сборки EXE, или даже для нескольких файлов, которые вас интересуют. Вам нужно найти эти файлы и открыть их в Visual Studio. Если исходный код не совпадает с исходным кодом, который был собран, EXE Visual Studio предупредит вас, когда вы попытаетесь вставить точку останова, и точка останова не будет привязана. Это поведение может быть изменено в окне Settings peek window. В окне просмотра параметров щелкните текст ссылки Must match source, а затем установите флажок, чтобы разрешить несоответствующий источник, как показано ниже. Конечно, с несоответствующим источником вы никогда не знаете, что произойдет, так что используйте это только на свой страх и риск.
Если EXE был собран с SourceLink, то информация об источнике будет включена в PDB, и Visual Studio попытается загрузить источник автоматически. Это действительно хорошая причина использовать SourceLink с вашими проектами. Даже если у вас есть локальный набор, у вас может не быть той версии, которая использовалась для сборки двоичного файла. SourceLink — ваш надежный способ убедиться, что правильный источник связан с правильным двоичным файлом.
Если вы не можете получить исходный код, у вас еще есть несколько вариантов:
Как разобрать приложение exe
Известный хакерский распаковщик DOS COM/EXE-упакованных или защищенных файлов by Sage/CyberWare (UCF). Позволяет распаковывать программы сжатые/зашифрованные даже неизвестными или новыми утилитами. Работает через командную строку и имеет множество параметров (читай возможностей). В программе имеется несколько режимов взлома: пошаговый real-mode, пошаговый V86 и real-mode i80386-эмуляция. В зависимости от режима, CUP386 использует различные методы отладки, обходит антидебаговый код и т.п. Кстати в программе есть и встроенный визуальный дебаггер наподобие Turbo Debugger для «ручного» взлома. Лично мне оригинальной показалась опция «Я все еще жив», которая заставляет перемигиваться LED-индикаторы на клавиатуре во время распаковки, показывая, что программа пока не зависла.
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/ucfcup34.zip (60 Кб)
DeShrink 1.6
Самая продвинутая Windows-утилита, предназначенная для «распаковки» EXE/DLL файлов, сжатых популярным EXE-пакером Shrinker (вплоть до версии 3.4). DeShrink имеет графический интерфейс, позволяющий легко указать путь и имена входного/выходного файлов, просмотреть EXE-заголовок и даже снять шифрование с отдельных секций методом простого перебора.
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/dshrnk16.zip (190 Кб)
ExeScan 3.21
Эта DOS-утилита by STILLSON предназначена для определения паковщиков и навесных защит (довольно много), которыми были защищены EXE или COM файлы. Кроме того ExeScan позволяет распознавать наиболее распространенные компиляторы.
Программа (вернее два ее модуля) может работать в нескольких режимах: в простом («тупое» определение), в deepscan (пытается обнаружить многослойную защиту/сжатие, например когда EXE’шник сжат PKLite-ом и защищен программой CrackStop) и в режиме generic detection (перехват Int 21h, выполнение исследуемого файла и попытка определить код).
ExeScan также позволяет просматривать и сравнивать информацию заголовков двух разных исполнимых файлов, имеет встроенный дизассемблер (есть функции показа входных точек и т.п.), может работать совместно с универсальным анпакером TEU.
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/es321.zip (70 Кб)
File Analyzer 1.6.x
Программа занимает немного места на диске и поставляется с хорошей документацией на русском и английском языках.
Программу можно скачать с сайта http://www.world.lv/vnet (135 Кб)
FileInfo 2.49
Свежая утилита от M.Hering, предназначенная для определения паковщиков и защит (в том числе самых новых), которыми были «обработаны» исполнимые файлы. Кроме того FileInfo позволяет распознавать «работу» наиболее распространенных компиляторов и форматы SFX-EXE-архивов.
Программа может работать в режиме показа краткой информации о файлах в директории(ях) или в режиме показа детальной информации о конкретном файле. Имеются встроенный HEX/TXT вьюер (с возможностью быстрого перехода по адресам, поиска, фильтрации), редактор MZ/PE заголовков и контрольных сумм, оригинальный графический байт-анализатор.
Поддерживает длинные имена файлов под Win9x.
В последней версии добавлена и улучшена поддержка определения двух десятков форматов защит/пакеров, в том числе UPX, tELock, уменьшено потребление памяти, внесены прочие улучшения.
Программу можно скачать с сайта http://www.programmerstools.org/files/utilities/fi.zip (155 Кб)
NED 2.31 (New Executable files Deshrinker)
Утилита командной строки by Snajder, позволяющая распаковывать исполнимые NE-файлы (NE-Visual Basic 3.0), сжатые утилитой Shrinker версий 3.xx.
Программу можно скачать с сайта http://www.programmerstools.com/files/unpackers/ned.zip (8 Кб)
Petite 2.x Enlarger 1.3
Простенькая Windows-утилита by r!sc, позволяющая распаковывать EXE/DLL файлы, сжатые пакером Petite версий 2.1/2.2.
В новой версии переписан обработчик командной строки (иногда не открывались файлы под NT).
PE-UnCompact 1.5
Небольшая Windows-утилита by tNO позволяет распаковывать EXE, DLL, SCR и OCX (?) файлы, сжатые популярным пакером PECompact версий 1.24-1.30. Расжатие не производится если выбранный файл не является PECompact-сжатым. При распаковке программа восстанавливает расширение файла, таблицы импорта, секции, «выравнивает» код.
В новой версии добавлена поддержка PECompact 1.30, внесены внутренние изменения.
Программу можно скачать с сайта http://pleiku.vietmedia.com/protools/files/unpackers/tnopeunc.zip (15 Кб)
PMWUnLite 1.30
Небольшая утилита, предназначенная для распаковки исполнимых файлов защищенного режима (типа DOS/4GW), сжатых утилитой PMWLite из набора PMODE/W.
Программу можно скачать с сайта http://www.suddendischarge.com/cgi-bin/antileech.cgi?pmwun130.zip (38 Кб)
TEU 1.8x (The Executables’ Unpacker)
Универсальный распаковщик запакованных или защищенных исполнимых файлов by JVP. TEU распознает программы полученные в наиболее распространенных компиляторах и позволяет распаковывать файлы, если они были защищены/сжаты неизвестными или новыми утилитами. Кроме этих средств в TEU есть несколько оригинальных, даже помеченных значком TM режимов взлома: DirectY и PassiveX. Однако из-за отсутствия документации ничего определенного сказать о них не могу.
Утилита работает из командной строки и имеет n-ное количество параметров, которые как обычно не обязательно использовать. Хочу также отметить, что TEU может работать совместно с утилитой ExeScan.
Программа поставляется в двух версиях: на английском (буква «e» в конце версии) и немецком языках («d»).
Программу можно скачать с сайта http://members.xoom.com/jvp/ (40 Кб)
TRON 1.30
Еще один универсальный распаковщик запакованных или защищенных исполнимых файлов by Smilesoft Company. Знает около двух десятков программ (от ComPack до Protect EXE/COM и WWPack), не считая их множества подверсий. Утилита традиционно может попытаться распаковывать файлы, сжатые/защищенные неизвестными или новыми программами. Правда для этого надо сперва зарегистрироваться и заплатить за программу 25$. При взломе TRON может опционально работать в специальном режиме «отклонения» прерываний, а также в защищенном режиме.
Программа занимает мало места на диске и очень неплохо документирована; имеется много информации по пакерам/протекторам.
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/tron130.zip (40 Кб)
UnASPack 1.0.9.1
Эта небольшая Windows-утилита by BiWeiGuo позволяет распаковывать EXE и DLL файлы, сжатые популярным пакером ASPack до версии 2.1. Расжатие не будет производиться если выбранный файл не является ASPack’ованным (или использованная для сжатия версия ASPack неизвестна утилите).
При распаковке всегда создается резервная копия файла.
Программу можно скачать с сайта http://pleiku.vietmedia.com/protoools/files/unpackers/2unaspack.zip (73 Кб)
UNP 4.12c
Некогда очень популярный, правда немного устаревший (1995 год) универсальный распаковщик запакованных или защищенных DOS исполнимых файлов by Ben Castricum. Умеет определять и снимать множество защит и «упаковок» (знает около 50 наименований программ, не считая их множества подверсий). Кроме того, UNP может пытаться распаковывать файлы, сжатые/защищенные неизвестными или новыми утилитами (правда, эта функция не такая мощная, как в других специализированных программах, описанных на этой странице).
UNP позволяет конвертировать некоторые EXE-файлы в COM и наоборот, вставлять файлы в заголовки программ, «выдирать» и «прикреплять» оверлеи, производить поиск сжатых файлов в директории, оптимизировать EXE’шники для последующего сжатия, «выравнивать» EXE-заголовки для более быстрого запуска, удалять в них же ненужную информацию, например комментарии линкеров и т.п.
Программа хорошо документирована, занимает традиционно немного места. Как говорится «The must have program».
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/unp412b.zip (без док)
Полную версию можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/unp411.zip (40 Кб)
Un-Pack (File Analizer & Unpacker) 2.2
Новая мощная DOS-утилита by Snow Panther, предназначенная для идентификации и при возможности снятия в автоматическом режиме различных навесных защит и COM/EXE-«запаковок». Программа расшифровывает большинство из тех файлов, что не «берет» CUP386 и X-TRACT. Иногда после некоторых изменений, сделанных рассматриваемой утилитой, распаковка может быть произведена с помощью CUP386, о чем Un-Pack вас уведомит.
Имеются функции установки даты/времени файлов, их усечения, анализа PE файлов (импорт./экспортируемые функции), дампер (универсальный распаковщик) для COM файлов, generic детектор неизвестных типов защит/сжатия, EXE->COM конвертор, обработчик relocations, дизассемблер entry point’a, эвристический анализатор.
Программа поддерживает длинные имена файлов (LFN), может работать совместно с анпакером TEU. Она также опознает всевозможные «левые» форматы файлов по расширениям и использует «движки» утилит ExeScan, File Analyzer, IDArc, что сделало возможным распознавание около 170 типов архивных файлов.
В новой версии добавлены сигнатуры для MZ, NE, PE файлов, доработана конвертация EXE->COM, обновлен движок IDArc, реализована поддержка распаковки файлов модифицированных tElock, ASProtect, ASPack, GFX2EXE, PE-Nightmare и другими; исправлено несколько багов.
Программу можно скачать с сайта http://mud.sz.jsinfo.net/per/aaron/files/file-analyzers/unpack22.zip (800 Кб)
UnPECompact 1.31
Небольшая медленноватая Windows-утилита by Yoda, позволяющая распаковывать EXE файлы, сжатые популярным пакером PECompact практически любых версий (0.9-1.43). Распаковка не производится если выбранный файл не является PECompact-сжатым. Имеется возможность управления из командной строки.
Утилита обычно не работает под Win2K.
В новой версии добавлена поддержка дополнительных версий PECompact, появилась опция принудительного полного восстановления таблицы импорта.
Программу с исходниками можно скачать с сайта http://y0da.cjb.net (70 Кб)
UnPEPack 1.0
Мелкая Windows-утилита by M.o.D., позволяющая распаковывать исполнимые файлы, сжатые пакером PEPack. Не работает под Win2K.
Программу с исходниками можно скачать с сайта http://pleiku.vietmedia.com/protoools/files/unpackers/unpepack.zip (135 Кб)
UnShrinker 1.0
Данная утилита командной строки предназначена для тех людей, которым вдруг понадобилось получить файл запакованный Shrinker’ом версий 3.2-3.3 (на более ранних версиях не тестировался) в чистом виде.
Текущая версия способна распаковывать только файлы с заголовками PE.
Программу можно скачать с сайта http://plieku.vietmedia.com/protools/files/unpackers/shrunp.zip
UNTPack 1.00
Примитивная утилита для распаковки COM-файлов, сжатых упаковщиком T-Pack v0.5b.
Утилиту можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/untpack.zip (4 Кб)
UUP 1.4 (Universal EXE UnPacker)
Универсальный распаковщик DOS EXE-упакованных или защищенных файлов by Unibest. Позволяет распаковывать программы сжатые/зашифрованные даже неизвестными или новыми утилитами. UUP работает через командную строку и имеет несколько параметров, позволяющих указывать «глубину» взлома, включать режим более «строгого» определения размера распакованной программы и повышать свою «болтливость».
Программу можно скачать с сайта ftp://ftp.elf.stuba.sk/pub/pc/pack/uup14.zip
Win32 Intro 0.7x
Универсальный распаковщик Win32 EXE-упакованных или защищенных файлов by Vitaly Evseenko. Теоретически позволяет распаковывать Win32-программы сжатые/зашифрованные любыми утилитами. Теоретически потому, что, откровенно говоря, большая часть моих попыток получить работоспособные распакованные EXE-шники с помощью этой программы, не увенчалась успехом. Возможно в новых версиях дела будут обстоять получше.
Интерфейс Win32 Intro максимально упрощен: окно с двумя полями для указания имени распаковываемой программы и ее необязательные параметры запуска (возможен пуск утилиты и с указанием файла для взлома в командной строке).
Программу можно скачать с сайта http://madmat.hypermart.net (30 Кб)
xPKLite 0.1
Специализированный command line распаковщик программ, сжатых утилитой PKLite v2.0x.
Программу можно скачать с сайта http://usrwww.mpx.com.au/
XtractWWPack
Специализированный command line распаковщик программ, сжатых утилитой WWPack. Немного странно ведет себя под Windows, так что лучше запускайте под чистым DOS.