Как извлечь код из exe файла. Как открыть.DLL или.EXE файл в редакторе ресурсов
Уясните процесс. EXE файлы не поддерживают OS X, поэтому вам понадобится специальное программное обеспечение, чтобы заставить их работать. Для этого установите бесплатную утилиту Wine, в которой можно работать с файлами Windows. Помните, что не все EXE файлы можно открыть в этой утилите, а некоторые программы будут работать лучше, чем другие. Вам не нужен установочный диск Windows, чтобы установить Wine.
Скачайте и установить Xcode из Mac App Store. Это бесплатный инструмент разработчиков, необходимый для того, чтобы скомпилировать программный код. Вы не будете пользоваться этим инструментом, но он необходим для работы с другими утилитами, которые открывают EXE файлы.
- Запустите Xcode и откройте его меню. Выберите «Настройки» – «Загрузки». Нажмите «Установить» (рядом с «Инструменты командной строки»).
Скачайте и установите MacPorts. Это бесплатная утилита, которая упрощает процесс компиляции и которую вы будете использовать, чтобы установить Wine. Вы можете скачать MacPorts с сайта macports.org/install.php . Щелкните по ссылке для версии OS X, которую вы используете, а затем дважды щелкните по скачанному файлу с расширением.pkg, чтобы установить MacPorts.
Откройте терминал, чтобы настроить некоторые параметры MacPorts. Вы можете открыть терминал из папки «Утилиты».
Скопируйте и вставьте в окно терминала следующую команду, а затем нажмите Return:
Echo export PATH=/opt/local/bin:/opt/local/sbin:\$PATH$"\n"export MANPATH=/opt/local/man:\$MANPATH | sudo tee -a /etc/profile
Введите пароль администратора, чтобы разрешить исполнение команды. При вводе пароля никакие символы отображаться не будут. Введя пароль, нажмите Return. Если у вас нет пароля администратора, процесс не запустится.
Скопируйте и вставьте следующую команду. Эта команда уведомит MacPorts, пользуетесь ли вы 64-битной системой. Вставьте следующую команду и нажмите Return:
If [ `sysctl -n hw.cpu64bit_capable` -eq 1 ] ; then echo "+universal" | sudo tee -a /opt/local/etc/macports/variants.conf; else echo "n/a"; fi
Введите команду принять условия лицензии Xcode, чтобы получить возможность скомпилировать код. После выполнения этой команды закройте и снова откройте терминал:
- sudo xcodebuild -license
Введите команду, чтобы установить Wine. Вам может быть предложено еще раз ввести пароль администратора. Процесс установки может занять некоторое время.
- sudo port install wine
Перейдите в папку с EXE файлом. Для этого в терминале используйте команду cd .
Использование Wine для запуска EXE файла. Введите следующую команду для запуска EXE файла, который находится в текущем каталоге. Замените имя_файла на имя выбранного ЕХЕ файла.
- wine имя_файла.exe
Используйте программу как обычно. Если EXE файл запустил программу, вы сможете начать работать с ней. Если это установочный файл, следуйте инструкциям на экране, чтобы установить программу (как вы это делаете в Windows).
- Не каждая программа будет работать в Wine. Для получения полного списка совместимых программ откройте сайт appdb.winehq.org .
Запустите установленную программу (если вы использовали EXE файл для ее установки). Для этого воспользуйтесь Wine.
- Введите cd ~/.wine/drive_c/Program\ Files/ , чтобы открыть каталог «Program Files», в котором установлены программы в Wine.
- Введите ls , чтобы просмотреть список всех установленных программ. Введите cd имя_программы, чтобы открыть каталог программы. Если в имени программы присутствует пробел, до пробела введите \ . Например, для Microsoft Office введите cd Microsoft\ Office .
- Введите ls , чтобы найти EXE файл.
- Введите wine имя_программы.exe , чтобы запустить программу
Установите библиотеки Mono, если программа требует наличия.NET. Это библиотека программного обеспечения, требуемая многими программами Windows, а Mono – это бесплатный аналог такой библиотеки, который поддерживается Wine. Установите Mono только в том случае, если ваши программы требуют наличия.NET.
- Введите sudo port install winetricks и нажмите Return.
- Введите winetricks mono210 и нажмите Return, чтобы установить Mono.
Исходный код раскрыть невозможно если для этого постарались обеспечить безопасность (особенно если это фирменная вещь).
Но есть способы полностью или частично раскрыть код.
- IDA Pro - самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
- Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать "перевод" программы на другой язык, затереть имя фирмы и т.п.
- Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать. Исходный код получить нельзя, но можно получить "номера строк и имена исходников", а так же имена/значения всех констант, локальных переменных, избежать "раздроблености функций" а так же получить классы с начинкой класса (почти все структуры кроме текста программы) что значительно упростит понимание работы программы. Для некоторых библиотек (dll) pdb-файлы можно скачать отдельно. Врядли уважающая себя фирма допустит утечку pdb своего стоящего продукта.
- Debug info, существует DebugInfo-информация встроеная в exe. Если есть такая информация, и соответствующая утилита (Например на Borland Delphi собран, и он есть в наличии), то можно сделать аналогичное предыдущему пункту. Но врядли уважающая себя фирма допустит такую "глупую" ошибку (аналогично pdb).
- Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы "подключают" в таблице импорта лишь mscorlib и всё). DisSharp плохо дизассемблирует некоторые части программы, но возможно его платная версия или платная версия подобных утилит раскрывает код лучше.
- Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках - он раскрывается спец-утилитами (Refox например).
- Утилита exescope.exe ResourceHacker.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
- Если извесно чем создан код - думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).
Опять-же, это при условии что нету паковщика кода (тогда нужно сначала применить депаковщик), шифровальщика/самомодифицирующегося кода. Если не разбит обфускатором так что не распутать. Чем больше код - тем сложнее разобраться.
P.S. Лично моё мнение - раскрывается-взламывается всё, но на это нужно потратить много-много времени. Возможно год и более (зависит от опыта и инструментов, в свободном доступе хороших инструментов нету).
EXE - это расширение для программ в ОС DOS и Windows. Формат Exe относится к группе исполняемых файлов, которые содержат все данные для установки приложения. Чтобы компактно распространить установочный файл используются алгоритмы сжатия.
Содержимое файла
Объект с расширением EXE встречается в ОС Windows. Программа exe содержит сценарии и скомпилированный программный код, запускающий установку приложений. Содержимое объекта EXE включает:
- Программные ресурсы - графика и другие медиа-элементы, а также сжатые пакеты (.package) классов программного кода;
- Формы объектов (битмапы, листы, иконки приложений);
- Информация для загрузчика файла;
- Модуль запуска инсталляции.
При запуске EXE система начинает автоматическую инициализацию всех заархивированных компонентов флеш-накопителя, виртуального или жесткого диска. К компонентам EXE файла относят программные библиотеки, подключённые службы, программный код.
После распаковки исполняемого файла в операционной системе начинается инициализация всех программных классов и установка приложения.
Программы для открытия EXE
В Windows Exe объект открыть можно с помощью стандартного установщика или утилиты 7Zip . Для запуска файла достаточно дважды кликнуть по нему мышкой или запустить объект через меню архиватора. Для запуска в MacOS следует установить эмулятор ОС Windows и в нем открыть файл Exe.
EXE может быть не только модулем установки программы, но и самораспаковывающимся архивом. Запуск Exe файлов позволяет его содержимому распаковаться в указанную пользователем или самим архивом папку.
Чтобы посмотреть содержимое файла EXE без его запуска, следует воспользоваться инструментами для разработчика, а именно программным пакетом Visual Studio . С его помощью можно редактировать программные ресурсы, изменять интерфейс и функции программного модуля. Внесение изменений возможно только для приложений с отрытым исходным кодом (в которых не используется шифрование).
Редакторы ресурсов - это специализированные программы для просмотра, создания и изменения ресурсов PE-файлов. С их помощью можно, например, разблокировать пункты меню в шароварной программе, поменять иконку приложения, изменить внешний вид диалоговых окон, выполнить перевод интерфейса и т.п. У каждого специалиста по реверсу есть свой любимый редактор ресурсов, поэтому нельзя сказать, что какой-то из них лучше или хуже. Очень часто для решения разных задач требуются функции какого-нибудь конкретного инструмента, и в этой статье я попробую вкратце рассказать о самых популярных редакторах ресурсов исполняемых файлов.
Restorator - пожалуй, самый известный редактор ресурсов исполняемых файлов в формате exe, dll, ocx, scr, res и других. Позволяет создавать и редактировать стандартные файлы ресурсов.RES, извлекать и добавлять в файл свои ресурсы. Но главное преимущество Restorator в том, что результаты ваших трудов можно несколькими кликами мышки оформить в виде небольшого патча. Таким способом, например, создано огромное количество русификаторов для различных программ. Из замеченных недостатков первый косяк - это необходимость заплатить за использование программы (в прилагаемых вариантах эта проблема уже решена), а второй - дурацкая привычка гадить строчкой "Bome" в служебных полях иконок отредактированного файла.
eXeScope - мой любимый редактор. Очень шустро работает с ресурсами, можно быстро посмотреть диалоговые окна, вытащить или поменять иконки и картинки, но особенно меня радует работа с ресурсами файлов, написанных на Delphi. Иногда возникают проблемы с ресурсами распакованных файлов, в этом случае обычно помогает пересборка секции ресурсов файла перед отправкой его в редактор. eXeScope тоже платный, но эта проблема тоже давно решена. Если предпочитаете английский интерфейс, то удалите файл eXeScope.RUS из каталога программы.
PE Explorer предназначен для просмотра и редактирования внутренней структуры исполняемых файлов, таких как EXE, DLL, ActiveX и другие. В состав PE Explorer входят редактор ресурсов, редактор секций, дизассемблер, сканер зависимостей, анализатор цифровых подписей и другие незаменимые в работе исследователей программ инструменты. С помощью PE Explorer очень просто анализировать, редактировать или оптимизировать проблемные файлы, переводить интерфейсы на другие языки. Авторы этого поделия те же, что и предыдущего, со всеми вытекающими последствиями. Но заграница снова нам поможет .
Resource Builder - еще одна коммерческая разработка в арсенале редакторов ресурсов. Используя Resource Builder, редактирование ресурсов становится простейшей задачей. В этом редакторе представлен полный набор очень удобных и понятных инструментов для всех типов ресурсов. Встроенный линковщик обновит ресурсы прямо в исполняемых модулях без перекомпиляции, а создание библиотек ресурсов (Resource Only DLLs), используемых для локализации приложений, займет всего пару щелчков мыши. Взять бесплатно этот полезный инструмент можно на сторонних ресурсах: и два .
- бесплатный просмотрщик и редактор ресурсов исполняемых файлов. Скачать можно , а для разработчиков в открытый доступ там же выложены исходные тексты редактора. Вот, учитесь, шароварщики, как надо работать.
ResEdit.1.5.9.zip (527,389 bytes)
RCE - редактор ресурсов для визуального создания и редактирования RC-файлов, может быть использован совместно с IDE или применяться с другими редакторами ресурсов в качестве вспомогательного инструмента. Напрямую с исполняемыми файлами не работает, поэтому особой пользы от RCE я не вижу.