Как посмотреть код exe файла

Обновлено: 07.07.2024

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

ResEdit.1.5.9.zip (527,389 bytes)

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

  • как открыть файл exe если он не запускается: решение.

Ехе – основное расширение программ в операционной системе Windows. Но что делать, если у вас, например Мас, который не позволяет открывать файлы такого типа. Выход есть. Если у вас процессор Intel одной из последних версий, то можно воспользоваться небольшой утилитой от Apple для открытия файлов с расширение ехе.

Откройте Boot Camp Assistant. Дважды кликните левой кнопкой мышки по иконке запуска программы, которая располагается в директории Applications/Utilities/boot camp assistant. Освободите достаточно места на жестком диске, чтобы установить операционную систему Windows XP (полезная информация: Windows XP занимает около 1,5 гб, Windows Vista – 20-40 гб, Windows 7 – 20гб).

Создайте специальный раздел на жестком диске для операционной системы Windows XP. Вставьте диск с этой операционной системой в ваш привод. В окне автоматического запуска нажмите «Начать установку». После этого компьютер перезагрузится, и начнется установка. После того, как компьютер перезагрузился, выберите только что созданный с помощью Boot Camp Assistant раздел. Производите установку именно в него. В противном случае, если вы установите операционную систему в обычный раздел Мас, то все ваши данные будут автоматически уничтожены.

Содержимое файла

Объект с расширением EXE встречается в ОС Windows. Программа exe содержит сценарии и скомпилированный программный код, запускающий установку приложений. Содержимое объекта EXE включает:

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

После распаковки исполняемого файла в операционной системе начинается инициализация всех программных классов и установка приложения.

Программы для открытия EXE

В Windows Exe объект открыть можно с помощью стандартного установщика или утилиты 7Zip . Для запуска файла достаточно дважды кликнуть по нему мышкой или запустить объект через меню архиватора. Для запуска в MacOS следует установить эмулятор ОС Windows и в нем открыть файл Exe.

EXE может быть не только модулем установки программы, но и самораспаковывающимся архивом. Запуск Exe файлов позволяет его содержимому распаковаться в указанную пользователем или самим архивом папку.

Чтобы посмотреть содержимое файла EXE без его запуска, следует воспользоваться инструментами для разработчика, а именно программным пакетом Visual Studio . С его помощью можно редактировать программные ресурсы, изменять интерфейс и функции программного модуля. Внесение изменений возможно только для приложений с отрытым исходным кодом (в которых не используется шифрование).

Уясните процесс. EXE файлы не поддерживают OS X, поэтому вам понадобится специальное программное обеспечение, чтобы заставить их работать. Для этого установите бесплатную утилиту Wine, в которой можно работать с файлами Windows. Помните, что не все EXE файлы можно открыть в этой утилите, а некоторые программы будут работать лучше, чем другие. Вам не нужен установочный диск Windows, чтобы установить Wine.

Скачайте и установить Xcode из Mac App Store. Это бесплатный инструмент разработчиков, необходимый для того, чтобы скомпилировать программный код. Вы не будете пользоваться этим инструментом, но он необходим для работы с другими утилитами, которые открывают EXE файлы.

  • Запустите Xcode и откройте его меню. Выберите «Настройки» – «Загрузки». Нажмите «Установить» (рядом с «Инструменты командной строки»).

Откройте терминал, чтобы настроить некоторые параметры MacPorts. Вы можете открыть терминал из папки «Утилиты».

Скопируйте и вставьте в окно терминала следующую команду, а затем нажмите Return:

Echo export PATH=/opt/local/bin:/opt/local/sbin:$PATH$"
"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, чтобы получить возможность скомпилировать код. После выполнения этой команды закройте и снова откройте терминал:

Введите команду, чтобы установить Wine. Вам может быть предложено еще раз ввести пароль администратора. Процесс установки может занять некоторое время.

Перейдите в папку с EXE файлом. Для этого в терминале используйте команду cd .

Использование Wine для запуска EXE файла. Введите следующую команду для запуска EXE файла, который находится в текущем каталоге. Замените имя_файла на имя выбранного ЕХЕ файла.

Используйте программу как обычно. Если EXE файл запустил программу, вы сможете начать работать с ней. Если это установочный файл, следуйте инструкциям на экране, чтобы установить программу (как вы это делаете в Windows).

Запустите установленную программу (если вы использовали EXE файл для ее установки). Для этого воспользуйтесь Wine.

/.wine/drive_c/Program Files/ , чтобы открыть каталог «Program Files», в котором установлены программы в Wine.

  • Введите sudo port install winetricks и нажмите Return.
  • Введите winetricks mono210 и нажмите Return, чтобы установить Mono.

EXE – распространенный файловый формат еще со времен ОС MS-DOS. Рассмотрим, что это за файлы, их наз.

EXE – распространенный файловый формат еще со времен ОС MS-DOS. Рассмотрим, что это за файлы, их назначение и задачи, какими программами запускаются, на что обратить внимание при работе с ними.

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


Формат EXE

EXE применяется для названия файлов-исполнителей. Это сокращение английского «executable files» – исполняемый файл. Используется в операционных системах Microsoft Windows, MS-DOS. Его задача – запуск инсталляции (деинсталляции) софта на устройство. Для этого в нем записан сценарий и код, которые запустят процесс.

В файле EXE находятся:

  • Стартовый блок установки.
  • Данные для загрузчика файла.
  • Ресурсы программы – графические, медиа-элементы в сжатом виде.
  • Формы объектов – иконки программ, листы.

При открытии файла запускается автоматический процесс распаковки компонентов папки с приложением или загрузочного диска. Типичные примеры файлов .EXE – Setup.exe, Install.exe. Они входят в состав разных программ: игр, офисных и графических редакторов, других.


Файл может быть закодирован и сжат архиватором в самораспаковывающийся архив. Инсталляция проводится в ту же директорию или в указанную пользователем.

Создание файлов .EXE

На персональном компьютере с ОС Microsoft Windows затруднений при открытии файла не возникает (об исключениях ниже). Сложности будут, если у пользователя Linux, Mac OS или мобильное устройство. Частый вопрос – как открыть EXE файл для редактирования или просмотра. Разбираемся по порядку.


На компьютере

Как открыть файл .EXE зависит от операционной системы устройства. Если это версии ОС Microsoft Windows, то сложностей быть не должно – под эту ОС файлы и разрабатывались. В основном они запускаются автоматически, для просмотра содержимого можно применить ряд утилит. Сложнее задача решить на ОС Linux или Mac. Но и тут выходы есть. Разберем подробней.

ОС Microsoft Windows 7

Для запуска применяем двойной щелчок манипулятора. Файл начнет устанавливаться и распаковываться (если это архив). Для просмотра содержимого без инсталляции подойдут утилиты Windows:

  • 7Zip – утилита для сжатия данных. Нужный файл выбирается при помощи пункта меню архиватора.
  • VMware ThinApp – софт для просмотра и переноса программ на другие платформы.
  • Microsoft Visual Studio – программа для разработки приложений.
  • IcoFX – утилита для просмотра, изменения значков из файловых ресурсов.

Для редактирования файлов .EXE подойдет Resource Hacker и аналогичные программы. Это редактор с функцией доступа в исполнительные файлы (.EXE, .DLL) для просмотра и замены в них данных.


ОС Microsoft Windows 10

Программы и принцип применения аналогичны, описанным выше. Сложность может быть в некорректном редактировании реестра Windows. Поможет модификация конфигурационного Reg-файла. Для него скачивается архив, соответствующий версии ОС Microsoft Windows, он распаковывается и после перезагрузки ПК файл .EXE должен открываться.

ОС Mac

На ПК с этими ОС напрямую открыть и запустить файл с форматом .EXE невозможно. Потребуются программы-эмуляторы, которые запустят Windows и ее приложения на ОС Mac:

Windows приложения работают с эмуляторами без сбоев, для переключения на установленную на компьютере ОС не нужно перезагружать ПК.

ОС Linux

Как и ОС Мас напрямую из Linux открыть .EXE не удастся. Применяются программы-эмуляторы Windows, указанные выше. После запуска виртуального сеанса Windows, файл будет открыт.

ОС Android

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

  • При помощи удаленного доступа.
  • С программой-эмулятором Microsoft Windows.

Второй вариант проще. К таким утилитам относятся: BOCHS, Limbo, QEMU и другие. Принцип действий идентичен: скачать и установить приложение на мобильное устройство, запустить утилиту.


Возможные проблемы с файлами .EXE

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

Файлы .EXE могут не работать, если рассчитаны на другую версию ОС Windows. Решение – в разделе «Свойства» файла зайти в пункт «Совместимость» и вручную изменить версию ОС. Не в 100% случаев, но такие действия помогают.

Что Вы подразумеваете под "исходными кодами"? Если просто набор байт, то в любом шестнадцатеричном редакторе (он же Hex редактор) , например WinHex, HexWorkShop и т. д. Так же есть плагины для far и TotalCommander. Если именно исх. код, то смотрите ниже.

Теперь по Вашему вопросу.
Код можно попробовать восстановить с помощью дизассемблеров, т. е. программ, как раз и предназначенных для перевода из exe в asm. Перевести в код любого из языков высокого уровня (C, paskal, basic и т. д. ) невозможно 100%. Однако, даже с использованием дизассемблера asm код будет сильно избыточен. Для уменьшения избыточности и для повышения четкости кода существуют так называемые "интерактивные дизассемблеры". Условно, их действие можно описать так. Человек не умеющий читать (дизассемблер) идет по дорожке (программе) и доходит до развилки на которой стоит указатель "влево-деревня Кодево 50м, вправо деревня Кодево 15км" и останавливается (ставит указатель на "развилочный код") и спрашивает, куда ему идти. Мы говорим естественно налево. И так до конца, пока не пройдет всю программу.

В свете вашего вопроса, я могу с большой долей уверенности Вам сказать, что Вам этого сейчас не одолеть. Не зная ассемблера, пытаться что то дизассемблировать бессмысленно IMHO.

Исполняемый файл EXE является приложением Windows либо DOS систем. Такой тип файла может включать в себя самораспаковывающиеся архивы. Имеют невероятно широкое распространение.

Стоит отметить, что в операционных системах Windows, открыть файл .exe можно посредством двойного клика левой клавиши мыши. В прочих платформах Linux или Mac OS запустить рассматриваемое расширение возможно при помощи предварительно установленных на компьютер эмуляторов, к примеру VMware Workstation.

Формат .exe так же поддаётся редактированию, для этого необходимо воспользоваться утилитой на подобии Resource Hacker. Среди пользователей распространены случаи нарушения ассоциации файлов по типам, когда множество ярлыков в формате EXE могут иметь одинаковый внешний вид. При такой ситуации можно воспользоваться приложением Unassociate File Types, способным корректно восстановить ассоциации.

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

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


Как вызвать запуск .ехе файла другой программы?
Запуск левой программы с под WForm

Можно ли как-нибудь из ехе-файла получить дизассемблированый код
Можно ли как нибудь из ехе файла получить дизассемблированый код на FASM\MASM?


Как узнать исходный код файла-ЕХЕ для Visual Basic 6.0?
Здравствуйте! Прошу помощи. Как узнать P-Code? Научите, пожалуйста, пользоваться компиляторами и.

Как средствами Delphi реализовать извлечение ехе файла при запуске ехе?
Здорова, народ. Как средствами Delphi реализовать извлечение ехе файла при запуске ехе? Заранее.

Точно не знаю,но кажется в домашних условиях нет.Может быть какой нибудь профессиональной платной софтиной. хотя вряд ли. na3ar1y, полностью получить исходный код - никак. Для этого используются дизассемблеры, но от них толку мало ну на самом деле все зависит от дизасма) если в ассемблере разбираться и использовать иду, то все очень даже легко.
а еще вроде есть хорошие тулзы, которые смогут восстановить даже не ассемблерный код, а прямо нормальный листинг (но только для конкретного компилятора) кто знает как извлечь код програми с ехе файла?? это возможно зделать? иди изучай архитектуру ЭВМ долго и тщательно, паралельно практикуясь с асм. Только после того как твои мозги очистятся от текущего рака, тогда ты сможешь приступить к реверсингу и просветвлишься насчет того что такое "получить код из бинарника" иди изучай архитектуру ЭВМ долго и тщательно, паралельно практикуясь с асм. Только после того как твои мозги очистятся от текущего рака, тогда ты сможешь приступить к реверсингу и просветвлишься насчет того что такое "получить код из бинарника"

смешно, хоть и флуд.

na3ar1y, exe-файл - и есть код программы.
а то, что вы хотите получить называется листингом программы на каком-либо языке.
судя по разделу, вы хотите листинг программы на C++, или даже на Visual C++.
программы? способные выполнить ваше желание, называются декомпиляторами.
декомпиляторы для С++ - большая-большая редкость.
просто в силу того, что это язык достаточно низкого уровня, и в результате компиляции программы в exe-файл из очень-очень разных исходных листингов получаются практически идентичные исполнимые exe-файлы.

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

na3ar1y, exe-файл - и есть код программы.
а то, что вы хотите получить называется листингом программы на каком-либо языке.
судя по разделу, вы хотите листинг программы на C++, или даже на Visual C++.
программы? способные выполнить ваше желание, называются декомпиляторами.
декомпиляторы для С++ - большая-большая редкость.
просто в силу того, что это язык достаточно низкого уровня, и в результате компиляции программы в exe-файл из очень-очень разных исходных листингов получаются практически идентичные исполнимые exe-файлы.

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

ссылку на спеки ЯЗЫКА visual C++ можно предоставить, а то я что то видимо проспал.
"exe-файл - и есть код программы" . "в результате компиляции программы в exe-файл из очень-очень разных исходных листингов получаются практически идентичные исполнимые exe-файлы." - а теперь выдыхните, соберитесь и расшифруйте сей высер гуманитария техническими терминами Идиотом только и остается как смеятся, на большее они не способны.
ссылку на спеки ЯЗЫКА visual C++ можно предоставить, а то я что то видимо проспал.
"exe-файл - и есть код программы" . "в результате компиляции программы в exe-файл из очень-очень разных исходных листингов получаются практически идентичные исполнимые exe-файлы." - а теперь выдыхните, соберитесь и расшифруйте сей высер гуманитария техническими терминами

кончай выдрючиваться.
троллинг никому не интересен.
а если правда не понял - поясняю:
1)автор хочет исходник для Студии; от бишь с шаблонами диалогов, дотнетом, и прочими финтифлюшками.
это специфические реализации С++, требующие специфического декомпилятора.
обычным декомпилятором С++ ты шаблоны ресурсов для Студии не получишь.
2)есть несколько вариантов реализации одного и того-же алгоритма.
например, простейший цикл.
можно написать
for(i=. ;;)<>
а можно руками:
lebel: i = . ;делаем чего-то;goto label
а в итоге компилятор сделает ИДЕНТИЧНЫЕ exe.
т.е., как правило, восстановить исходный листинг программы на С++ невозможно в принципе. но можно получить что-то похожее.
а в языках высокого уровня листинг как правило транслируется в код (и обратно) однозначно, без таких вариантов.

и хватит хамить.
я хоть в этом разделе уже и не модератор, но репу загадить могу по самый бан.

кончай выдрючиваться.
троллинг никому не интересен.
а если правда не понял - поясняю:
1)автор хочет исходник для Студии; от бишь с шаблонами диалогов, дотнетом, и прочими финтифлюшками.
это специфические реализации С++, требующие специфического декомпилятора.
обычным декомпилятором С++ ты шаблоны ресурсов для Студии не получишь.
2)есть несколько вариантов реализации одного и того-же алгоритма.
например, простейший цикл.
можно написать
for(i=. ;<>
а можно руками:
lebel: i = . ;делаем чего-то;goto label
а в итоге компилятор сделает ИДЕНТИЧНЫЕ exe.
т.е., как правило, восстановить исходный листинг программы на С++ невозможно в принципе. но можно получить что-то похожее.
а в языках высокого уровня листинг как правило транслируется в код (и обратно) однозначно, без таких вариантов.

и хватит хамить.
я хоть в этом разделе уже и не модератор, но репу загадить могу по самый бан.

ну вот сейчас вменяемое объяснение. это так сложно сразу нормально писать.
То что можно только повторить примерный листинг пользуясь диззасемблером/декомпилятором это и говорилось автору сразу, но он сам этого мало понимает в силу своих очень скудных познаний (да и интелектуальный потенциал этого индивида тоже вызывает сомнения)
>>1)автор хочет исходник для Студии; от бишь с шаблонами диалогов, ДОТНЕТОМ, и прочими финтифлюшками. это специфические реализации С++

с++ это не дотнет, дотнетовские проги просматриваются CLR просмоторщиками (который входит в состав студии)

Я не очень хорошо знаком с магией компилятора. Акт преобразования кода, читаемого человеком (или не действительно читаемых инструкций ассемблера) в машинный код, для меня представляет собой ракетостроение в сочетании с колдовством.

Я сузлю тему этого вопроса до исполняемых файлов Win32 (.exe). Когда я открываю эти файлы в специализированном средстве просмотра, я могу найти строки (обычно 16 байт на символ), разбросанные в разных местах, а все остальное - просто мусор. Я полагаю, что нечитаемая часть (большинство) - это машинный код (или, возможно, ресурсы, такие как изображения и т. Д.).

Есть ли простой способ чтения машинного кода? Открывая exe как файловый поток и читая его побайтно, как можно превратить эти отдельные байты в сборку? Есть ли прямое соответствие между этими байтами инструкций и инструкцией Assembly?

Как пишется .exe? Четыре байта на инструкцию? Более? Меньше? Я заметил, что некоторые приложения могут создавать исполняемые файлы точно так же: например, в ACD See вы можете экспортировать серию изображений в слайд-шоу. Но это не обязательно должно быть слайд-шоу в формате SWF, ACD See также может создавать EXE-файлы для презентаций. Как это сделать?

Как я могу понять, что происходит внутри EXE-файла?

OllyDbg - отличный инструмент, который разбирает EXE на читаемые инструкции и позволяет вам выполнять инструкции одну за другой. . Он также сообщает вам, какие функции API использует программа и, если возможно, аргументы, которые она предоставляет (если аргументы находятся в стеке).

Вы можете взять Учебник по языку ассемблера для ПК доктора Пола Картера, который представляет собой бесплатную книгу начального уровня, в которой рассказывается о сборка и принцип работы процессора Intel 386. Большинство из них применимо даже к современным потребительским процессорам Intel.

Формат EXE специфичен для Windows. Точка входа (т.е. первая исполняемая инструкция) обычно находится в том же месте в EXE-файле. Все это сложно объяснить сразу, но предоставленные мной ресурсы должны помочь вылечить хотя бы часть вашего любопытства! :)

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

Между машинным кодом и сборкой существует соответствие 1: 1. Программа дизассемблера выполнит обратную операцию.

На i386 нет фиксированного количества байтов на инструкцию. Некоторые из них состоят из одного байта, некоторые намного длиннее.

Если это так чуждо вам, как кажется, я не думаю, что отладчик или дизассемблер помогут - сначала вам нужно выучить программирование на ассемблере; изучить архитектуру процессора (множество документации можно загрузить с сайта Intel). А поскольку большая часть машинного кода генерируется компиляторами, вам необходимо понимать, как компиляторы генерируют код - самый простой способ написать множество небольших программ, а затем их дизассемблировать, чтобы увидеть, во что превратился ваш C / C ++.

Пара книг, которые помогут вам понять: -

Чтобы получить представление, установите точку останова на каком-нибудь интересном коде, а затем перейдите в окно ЦП.

Если вас интересует больше, проще скомпилировать короткие фрагменты с помощью Free Pascal, используя параметр -al.

FPC позволяет выводить сгенерированный ассемблер во множестве форматов ассемблера (TASM, MASM, GAS) с помощью параметра -A, и вы можете чередовать исходный код паскаля в комментариях (и других) для облегчения перекрестных ссылок.

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

Я бы посоветовал взять немного исходного кода Windows C и собрать и начать его отладку в Visual Studio. Переключитесь в режим разборки и переходите по командам. Вы можете увидеть, как код C был скомпилирован в машинный код, и посмотреть, как он выполняется шаг за шагом.

Относительно этого вопроса, кто-нибудь все еще читал такие вещи, как CD 21?

Я вспомнил Сандру Баллок в одном шоу, которая фактически читала экран с шестнадцатеричными числами и выясняла, что делает программа. Вроде как текущая версия чтения кода Матрицы.

Если вы читаете такие вещи, как CD 21, как вы запоминаете различные комбинации?

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

(Я понятия не имею, что такое ACD See, так что относитесь к этому с большой долей скепсиса, но я действительно знаю, что некоторые программы создаются таким образом.)

Знакомство с низкоуровневой сборкой (я имею в виду низкоуровневую сборку, а не «макросы» и т. Д.), Вероятно, просто необходимо. Если вы действительно хотите напрямую читать необработанный машинный код, обычно вы используете для этого шестнадцатеричный редактор. Однако, чтобы понять, что делают инструкции, большинство людей использовали бы дизассемблер, чтобы преобразовать это в соответствующие инструкции сборки. Если вы относитесь к меньшинству, которое хочет понимать сам машинный язык, я думаю, вам понадобится Руководства разработчика программного обеспечения для архитектур Intel® 64 и IA-32. Том 2 специально описывает набор инструкций, который относится к вашему запросу о том, как читать сам машинный код и как с ним связана сборка.

Каждая инструкция находится в машинном коде и хранится в специальной области памяти внутри процессора. В ранних книгах INTEL для своих инструкций использовался машинный код, поэтому следует попытаться получить такие книги, чтобы понять это. Очевидно, что сегодня машинный код нелегко получить. Что было бы неплохо, так это программа, которая может преобразовывать шестнадцатеричный код в машинный. Или сделайте это вручную _ !! скучный

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

Исполняемый файл, который вы видите, имеет формат Microsofts PE (Portable Executable). По сути, это контейнер, который содержит некоторые данные о программе, относящиеся к операционной системе, а сами данные программы разделены на несколько разделов. Например, код, ресурсы, статические данные хранятся в отдельных разделах.

Формат раздела зависит от того, что в нем находится. Раздел кода содержит машинный код в соответствии с исполняемой целевой архитектурой. Чаще всего это Intel x86 или AMD-64 (то же, что и EM64T) для двоичных файлов Microsoft PE. Формат машинного кода - CISC, он восходит к 8086 и более ранним версиям. Важным аспектом CISC является то, что размер его инструкций непостоянен, вы должны начать чтение в нужном месте, чтобы извлечь из него что-то ценное. Intel издает хорошие руководства по набору инструкций x86 / x64.

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

Reverse Engineering (также обратная разработка) - это процесс разбора программы. Так программисты компилируют свой код в приложение,а реверсеры из готового приложения достают исходный код. Целей для этого может быть куча,понять как устроена программа,украсть чьи то разработки,т.д. Так разобрать можно абсолютно любую программу,на любом языке(это может быть довольно сложно))

Программы, которые используются в Reverse Engineering

DetectItEasy/PEiD/ExeInfo - программы для анализа исполняемых файлов.

Эти программы дают нам информацию про то, чем была скомпилирована программа; язык написания; стоит ли защита от вскрытия(протектор), если да,то какая; .

c233611806899ae750e3a.jpg

DnSpy/IDA/OllyDbg - программы для обратного программирования, разбора приложений.

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

90729cafbcaeba48f7a7c.jpg

MegaDumper - программа для создания копии запущенной,распакованной программы.

Данная программа и ее аналоги дают нам возможность сделать слепок запущенной программы.

f19640ba4acb9fd683d69.jpg

D4dot/ConfuserDeobfuscator - программы для снятия протекторов/обфускаторов/защиты от декомпиляции.

Так разработчики для спасения от вскрытия программы ставят на них защиту - протекторы. Данные программы дают возможность нам снять защиту с приложения.

1fd1b9c387fb9cc6310f4.jpg

Список можно продолжать еще довольно долго,но на этом мы с вами остановимся.

С помощью гугла нашел паблик с "читами" на игру "контра сити". Под видом читов здесь распостраняют разные вирусы.

Для нас это идеальный вариант поупражняться в реверсинге. В паблике с любого поста качаем наш "чит".

fcc12510fc6ee469061ab.jpg

Суем наше приложение в DetectItEasy/Аналог и получаем про него информацию.

094cc00918cd1915aa042.jpg

И нам сразу стает ясно,что это просто SFX архив,который мы распаковываем и получаем файл,который мы также суем в DIE

636378fd4ab3750d956db.jpg

отлично использовать декомпилятор DnSpy. Отправляем exe в декомпилятор(просто перетаскиваем его в DnSpy).

285df83574a565792d4d4.jpg

Это был самый простой пример реверса программы.

Вот вы и получили самые базовые,основные знания про реверс.

Я старался излагать мысли так,чтобы всем новичкам было максимально понятно)

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