Как вытащить текст из exe файла

Обновлено: 06.07.2024

Автоматические распаковщики инсталляторов

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

Самым мощным и удобным инструментом для автоматической распаковки инсталляторов является программа Universal Extractor. Она представляет собой оболочку для других распаковщиков, всего поддерживается несколько десятков различных форматов, в том числе таких популярных, как распаковка Inno Setup, InstallShield, Wise Installer и других. Поддерживается русский язык, интеграция в контекстное меню Проводника Windows, продвинутые пользователи могут сохранить и посмотреть лог работы внешних модулей распаковки. На момент написания статьи хостинг с дистрибутивами и исходниками Universal Extractor недоступен, поэтому выложу Universal Extractor здесь.

Universal Extractor 1.6.1

Многие инсталляторы представляют собой обычный архивный файл, к которому дописан модуль для его распаковки, то есть SFX-архив (Self-extracting архив). Поскольку распространенных алгоритмов компрессии не так много, в некоторых случаях для распаковки инсталляторов можно воспользоваться обычными архиваторами, например, WinRAR или бесплатным 7zip.

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

innounp, распаковщик инсталляторов Inno Setup версий от 2.0.8 до 5.3.11. Inno Setup Unpacker - консольная утилита, поэтому для удобства работы сделано несколько графических оболочек, например, IS Unpacker Explorer (русскую версию можно найти на сайте MSILab) или InnoSetup And NSIS Unpacker Shell (требует 7zip и innounp).

InnoSetup And NSIS Unpacker Shell 1.4

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

InnoCry 1.2.7

InnoExtractor сделан на базе архиватора 7zip. Позволяет просматривать и извлекать содержимое инсталляторов Inno Setup. Большой плюс в том, что InnoExtractor постоянно совершенствуется и поддерживает как старые, так и новейшие версии этого инсталлятора.

InnoExtractor 4.8.0.156

Для распаковки инсталляторов, созданных при помощи Nullsoft Scriptable Install System или сокращенно NSIS, удобнее всего пользоваться бесплатным архиватором 7zip. Он без труда открывает такие инсталляторы для просмотра и позволяет извлекать из них нужные файлы.

E_WISE 2002.03.29 - консольная утилита для извлечения файлов из WISE-инсталляторов. Поддерживаются практически все версии Wise-инсталляторов, в комплекте есть версии распаковщика для DOS, Windows и Linux, а также документация на английском и немецком языках.

E_WISE 2002.03.29

E_WISE 2002.07.01 (Update)

HWUN (Heuristic Wise UNpacker) также предназначен для распаковки инсталляторов WISE, но в отличие от предыдущей программы использует эвристические алгоритмы для поиска необходимых сигнатур и данных, так что есть большая вероятность, что он будет работать и с более новыми версиями инсталляторов.

Setup Factory Unpacker - консольный распаковщик инсталляторов Setup Factory версии 5 и 6. Как признается сам автор, имеют место быть глюки и баги, так что пригодится больше для коллекции.

Setup Factory Unpacker


Скриншот программы InstallShield (by one exe-file) Unpacker

InstallShield (by one exe-file) Unpacker - автоматический консольный распаковщик двух из трех известных типов инсталляторов, созданных программой InstallShield. Это одиночный cab-файл, упакованный в msi-контейнер, а также набор из установочных файлов и cab-архива, также помещенный внутрь msi-файла (Microsoft Installer). Третий тип, использующий шифрование, этим распаковщиком не поддерживается.

InstallShield (by one exe-file) Unpacker 0.99

Less MSIerables также используется для извлечения файлов из MSI-контейнеров, но имеет графический интерфейс и может встраиваться в Проводник Windows. Кроме извлечения файлов показывает всю дополнительную информацию, содержащуюся в инсталляторе.

Less MSIerables 1.0.8

Orca MSI Editor 3.1.4000.1830

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

JSWare MSI Unpacker

Остался последний вопрос: а как определить, с помощью какой программы был собран тот или иной инсталлятор? Ответить на этот вопрос помогут программы для анализа исполняемых файлов. Например, PEiD четко определяет инсталляторы как "Inno Installer 5.1.2 [Overlay]" или "Nullsoft PiMP Stub [Nullsoft PiMP SFX]", так что проблем с идентификацией и выбором нужного инструментария быть не должно.

Вопрос от посетителя:

Имею электронную книгу в ехе-формате, которая "позволяет" себя читать на экране монитора, но текст нельзя ни распечатать, ни скопировать в буфер. Есть ли какие возможности извлечь этот текст для распечатки?

Ответы:


Sad:
Можно использовать такие программы, как Kleptomania и HyperSnap.


Vladimir:
Зачастую такие программы распаковываются во время просмотра в папки временных файлов – Temp, TMP. Не выключая программы, поищи в этих папках.


independence777:
Сказал бы хоть, что там за exe-книга, чем скомпилирована - какой логотип появляется при открытии.


Markiz:
Всегда есть возможность. Данных мало, но как крайнее средство: съемка с экрана и FineReader.


Alexander:
Не понимаю вопроса: \"что там за exe-книга. \". Разве все exe-книги выглядят по-разному? И как можно узнать, чем скомпилирована? Логотип появляется: красный круг. Внутри него рукопожатие на фоне солнечных лучей. Кто знает, подскажите, как извлечь текст. А какие данные нужны, если есть возможность? Съемка с экрана - не очень подходящий вариант, так как страницы с текстом у книги узкие, да и страниц много. Кроме того, не весь текст страницы можно увидеть за раз (на экране монитора), не пользуясь прокруткой. В любом случае спасибо за отклик!


Maks3:
Попробуйте вскрыть exe ResourceHacker\'ом или Restorator\'ом. Вполне возможно, что в ресурсах exe найдутся эти тексты. Только если exe сжат упаковщиком, то ничего не выйдет. Если только не найти подходящий распаковщик. Если есть возможность мышью выделять текст в программе, то нажмите просто Ctrl+C и вставьте скопированный текст в какой-нибудь текстовый редактор. Просто у меня тоже есть пара таких электронных книг, текст в них выделять можно, но контекстное меню не вызывается, а копирование через Ctrl+C проходит на ура.


Alexander:
Все удалось с помощью Kleptomania. Чудная программка. Все \"снимает\" с экрана! Спасибо всем, кто откликнулся.


Михаил:
Крутые грабилки захватывают и страницы со скроллингом.


FantasMic:
Необходимо узнать, каким компилятором сделана книга. Это можно сделать при помощи ResourceHacker (у меня один раз вышло), также иногда это написано в самой книге где-нибудь на вкладке \"About\", иногда название компилятора проскакивает при открытии или закрытии книги. Далее, скачиваете этот компилятор с сайта разработчика, он, как правило, дает возможность декомпиляции. Если книга защищена паролем, воспользуйтесь программой Ebook Password Recowery (к сожалению, последняя версия вышла в 2004 году).


Смотреть другие вопросы раздела FAQ Software >>

Решил начать делать программу которая
находила бы в EXE файле английские строки
и переводила бы их на русский язык
только не знаю с чего начать
как лучше отыскивать строки?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Необходимо отредактировать 2 строки в .exe файле
Есть у меня одна программа для колледжа и мне нужно отредактировать две строки по просьбе отца. Вот.


Изменение строки текста в exe файле
Допустим у меня есть откомпелированная программа, и в ней есть string'и, которые можно изменить.


Найти в текстовом файле строку по заданному слову и заменить ей определённую часть строки в другом файле
Всех с Новым Годом! Наверное избитая тема, но все же. Задача такая: Существует два файла.

Найти последовательность чисел в .exe файле
Доброго времени суток! Возникла проблема, необходимо узнать где хранится последовательность из.

Гритх Саирон, зачем решил?
Тем более такую задачу?

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

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

Добавлено через 4 минуты
А перевод можно через интернет сделать, но можно и автономный, только словарь таскать придеться, там главное не ошибиться какие слова подменить, вот в чём дело.

Добавлено через 16 минут
И в какой длине в новой ?, или желательно фиксированной ?

Добавлено через 6 минут
Вообщето в дальнейшем могут образоваться ещё проблемы,
там будут особенности англо-русских словосочетаний,
но об этом я промолчу пока

Решение

В общем случае это нерешаемая задача. Строки могут быть запакованы, разбросаны по EXE и в разных кодировках. Обычно VB6 хранит строковые литералы в секции .text, вместе с кодом, строки, которые загружаются из ресурсов хранятся в секции .rsrc; все строки хранит в юникоде.
Например, если есть такой код: , то все литералы будут содержася в секции .text, а загружаемый ресурс в секции .rsrc, смещения строк будут зависеть уже от программы, и узнать их не получится, только проводя анализ кода (и то не всегда поможет)

The trick то что вы предложили, очень интересно
вы молодец !

Добавлено через 1 минуту
Значит всётаки юникод.

Добавлено через 28 минут
Вот только непонятно, как определить что это слово
а не набор служебных символов, по какому критерию определять ?

Kostyan » 11.01.2004 (Вс) 6:10

Поменяй расширение с exe на txt.
Щелкаешь правой кнопкой мыши на файле, выбираешь "Переименовать", вместо exe пишешь txt. И наслаждайся какой ты крутой хакер!

А может он имел в виду програмно?

FileCopy "C:\new.exe" , "C:\new.txt"

ANDLL » 12.01.2004 (Пн) 19:56

Извини, но на ТАКОЙ вопрос ответ не кто не даст. Ибо не ясно, что тебе нужно.
Дело в том, что текст в принципе не отличается от другой двоичной информации.

GAGArin » 12.01.2004 (Пн) 20:03

Человек хочет декомпиляцию и не находит. Вот и злится. Я его понимаю, сочувствую, но ничем помочь не могу.

Kostyan » 13.01.2004 (Вт) 1:10

Извините, но если речь идет о декомпиляции, то причем тут wav mp3 msi zip rar
А декомпилировать программу в исходный текст практически невозможно, только дезассемблирование.

RayShade » 13.01.2004 (Вт) 11:32

Афтар! Спасибо тебе! Ты меня просто вернул к жизни своим вопросом! Я уже отчаялся что либо предпринять для возвращения своего циничного чувства юмора к жизни, но тут ты явился и спас меня. За что тебе большое спасибо и две награды - за оформление топика и за ясность изложения мыслей.

ЗЫ. Подробнее бы хоть объяснил, зачем тебе ЕХЕ и ВАВ в текст переводить

skiperski » 13.01.2004 (Вт) 18:44

Ты сам-то понимаешь что тебе нужно? Уже все варианты тебе предложили. Форматы файлов, тех что на диске, в бинаром представлении ничем не отличаются. Разница только в их представлении различными программами. Например, договорились, что файлы с расширением exe будут исполняемыми, и, в соответствии с этим, обязаны иметь определённый формат. Но никто не мешает тебе открыть тот же файл в текстовом редакторе. Увидишь в нём кучу бекарасок и вкраплённый между ними текст констант. Всё что тебе для этого нужно - изменить расширение на txt.

ANDLL » 13.01.2004 (Вт) 20:23

Ох жуть.
Ну ладно ну тебя. Накрапал я тебе пример. Правда не пойму где такое может понадобится.

Функция TranslateBytesToString преобразует двоичные байты в Hex-строку.
Функция TranslateStringToBytes делает наоборот

Для использования создаешь StandardEXE - проект, удаляешь форму, добавляешь модуль и пишешь в него це.

Kostyan » 14.01.2004 (Ср) 1:38

To ANDLL:
Ну ты даешь Оно тебе надо. это похоже на перекладывание вещей с одного места на тоже самое
Не могу понять автора вопроса. разве ты ещё не понял что все файлы состоят из одного и того-же, пусть это exe, txt или wav! Просто текстовый файл содержит набор байт понятных для человека, exe для компьютера, wav для проигрывателя.
Например байт 1000001 в блокноте будет выглядеть как буква "A", в exe файле он же будет означать например операцию сложения а в звуковом файле частоту звука. Если всё это не укладывается в твоей голове - постарайся просто принять как неопровержимую истину. А переводить бинарный файл в текстовый всё-равно что перекрашивать забор из зеленого в зеленый!
Я кончил

SeRRg » 14.01.2004 (Ср) 10:15

Вы его не поняли. Он, наверное, так подумал, потому что
открыл в блокноте екзешник, сохранил и у него не запустилось.
Вот почему он и думает, что они разные.
P.S. я тоже раньше чуть ли не бесился, когда так получалось

ANDLL » 14.01.2004 (Ср) 20:19

Ну чтож, господа умные.

Если все так просто, то объясните почему код не работает.

Картинки и т.п. он пресует OK, а вот EXEшник переписывает неправильно.

Vovik » 14.01.2004 (Ср) 21:04

Люди, вы меня извините, но можно ли как-нть перевести ActiveX Dll написанную на вб(знаем заранее) в код вб? или хотяб в тхт?

RayShade » 14.01.2004 (Ср) 23:05

Кому охота - дуйте туда и читайте. Для новичков в этом вопросе скажу - ТАКОЙ ВОЗМОЖНОСТИ НЕТ.

Читайте также: