как разобрать программу exe на исходный код

Как извлечь код программы из ехе файла?

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

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

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код
смешно, хоть и флуд.

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

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

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

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

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

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

Источник

Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Отладка

Как и в обычном проекте, вы можете начать отладку с помощью F5, которая запустит EXE и подключит отладчик. Если вы хотите отладить запуск, вы можете запустить с помощью F11, который запустит EXE и остановится на первой строке пользовательского кода. Оба эти параметра доступны в контекстном меню для проекта EXE в окне Solution Explorer, как показано ниже:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Для отладки понадобятся символы, файлы PDB, для EXE и любых DLL, которые нужно отладить. Visual Studio будет следовать тому же процессу и попытается получить символы также, как и при отладке обычного проекта. Поскольку маловероятно, что файлы PDB были распространены вместе с EXE-файлом, возможно, вы захотите найти их в сборке или, что еще лучше, на сервере символов. Дополнительную информацию и рекомендации по использованию символов можно найти в этом блоге.

Для эффективной отладки вам также понадобится исходный код, который использовался для сборки EXE, или даже для нескольких файлов, которые вас интересуют. Вам нужно найти эти файлы и открыть их в Visual Studio. Если исходный код не совпадает с исходным кодом, который был собран, EXE Visual Studio предупредит вас, когда вы попытаетесь вставить точку останова, и точка останова не будет привязана. Это поведение может быть изменено в окне Settings peek window. В окне просмотра параметров щелкните текст ссылки Must match source, а затем установите флажок, чтобы разрешить несоответствующий источник, как показано ниже. Конечно, с несоответствующим источником вы никогда не знаете, что произойдет, так что используйте это только на свой страх и риск.

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Если EXE был собран с SourceLink, то информация об источнике будет включена в PDB, и Visual Studio попытается загрузить источник автоматически. Это действительно хорошая причина использовать SourceLink с вашими проектами. Даже если у вас есть локальный набор, у вас может не быть той версии, которая использовалась для сборки двоичного файла. SourceLink — ваш надежный способ убедиться, что правильный источник связан с правильным двоичным файлом.

Если вы не можете получить исходный код, у вас еще есть несколько вариантов:

Источник

Декомпиляция EXE-файлов

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Как декомпилировать EXE-файл

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

Вариант 1: VB Decompiler

Корректно способен провести декомпиляцию EXE-файлов, написанных и скомпилированных через Visual Basic 5.0 и 6.0. Это самая популярная среда разработки программ для Windows. Сама программа полностью бесплатна и занимает на диске всего несколько мегабайт.

Вариант 2: EMS Source Rescuer

Данный декомпилятор корректно работает с файлами, скомпилированными с помощью Delphi и C++ Builder. Работа с другими компиляторами возможна, но официально не поддерживается, поэтому есть риски. Программа распространяется полностью бесплатно.

Вариант 3: ReFox

ReFox отлично зарекомендовал себя в декомпиляции проектов, созданных через Visual FoxPro и FoxBASE+. Сама программа носит условно-бесплатный характер использования. Есть демонстрационная версия, использование которой бесплатно, но только определенный период времени.

Инструкция по использованию данной программы выглядит так:

Вариант 4: DeDe

Эта программа для декомпиляции не так функциональна и поддерживает только одни язык – Delphi.

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

Источник

Распаковка исполняемых файлов

Привет, хабровчане. В рамках курса «Reverse-Engineering. Basic» Александр Колесников (специалист по комплексной защите объектов информатизации) подготовил авторскую статью.

Также приглашаем всех желающих на открытый вебинар по теме «Эксплуатация уязвимостей в драйвере. Часть 1». Участники вебинара вместе с экспертом разберут уязвимости переполнения в драйверах и особенности разработки эксплойтов в режиме ядра.

Статья расскажет о подходах к анализу запакованных исполняемых файлов с помощью простых средств для обратной разработки. Будут рассмотрены некоторые пакеры, которые применяются для упаковки исполняемых файлов. Все примеры будут проведены в ОС Windows, однако изучаемые подходы можно легко портировать на любую ОС.

Инструментарий и настройка ОС

Для тестов будем использовать виртуальную машину под управлением ОС Windows. Инструментарий будет содержать следующие приложения:

установленный по умолчанию плагин x64dbg Scylla;

Самый быстрый и простой способ провести распаковку любого исполняемого файла — применить отладчик. Но так как мы будем также рассматривать язык программирования Python, то может понадобится проект:

uncompile6 проект, который позволяет разобрать байткод виртуальной машины Python;

pyinstallerExtractor инструмент для распаковки архива pyInstaller.

Общие методы снятия паковки

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

На картинке может показаться, что файл стал по размеру больше, однако это не всегда так. Большинство файлов за счет такой модификации могут уменьшить свой размер до 1.5 раз от исходного объема.

Что же от этого реверс-инженеру? Почему надо знать и уметь определять, что файл упакован? Приведу наглядный пример. Ниже приведен снимок файла, который не запакован:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

И файл, который был пропущен через алгоритм UPX:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Изменения коснулись в этом случае двух основных точек исполняемого файла:

Точка входа — в случае с упакованным файлом это начало алгоритма распаковки, настоящий алгоритм программы будет работать только после того, как будет распакован оригинальный файл;

Код оригинального файла: теперь не найти паттернов, которые можно сразу разбирать как команды.

Итак, чтобы снова анализировать оригинальный файл, нужно найти настоящую или оригинальную точку входа. Для этого нужно разбить алгоритм на основные этапы:

Этап подготовки исполнения файла — загрузчик ОС настраивает окружение, загружает файл в оперативную память;

Сохранение контекста — упаковщик сохраняет контекст исполнения файла (набор значений регистров общего назначения, которые были установлены загрузчиком ОС);

Распаковка оригинального файла;

Передача управления оригинальному файлу.

Пример UPX

Попробуем с помощью отладчика найти оригинальную точку входа для приложения. Запечатлим оригинальную точку входа до упаковки UPX:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Как та же точка входа выглядит после упаковки:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Запустим отладчик и попробуем найти место сохранения контекста:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Ждем первого использования ESP — в отладчике при этом значение регистра подсветится красным цветом. Затем устанавливаем точку останова на адрес и просто запускаем приложение:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

В результате попадаем на оригинальную точку входа:

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Вот так просто, теперь используя плагин Scylla Hide можно сохранить результирующий файл на жесткий диск и продолжить его анализ.

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

Пример PyInstaller

Не всегда подобный подход работает для приложений, которые используют более сложную структуру исполняемого файла. Рассмотрим файл, который был создан с помощью PyInstaller — пакет, который позволяет преобразовать Python скрипт в исполняемый файл. При генерации исполняемого файла создается архив, который содержит виртуальную машину Python и все необходимые библиотеки. Сам исходный код приложения при этом преобразуется в байт код и его нельзя дезассемблировать.

Попробуем все же получить что-то читаемое. Создадим простое приложение на Python и упакуем с помощью PyInstaller. Исходный код приложения:

Установим пакет pyInstaller и создадим exe файл:

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Таким образом можно снова получить исходный код.

Смотреть открытый вебинар по теме «Эксплуатация уязвимостей в драйвере. Часть 1».

Источник

Reverse Engineering (получаем исходный код )

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Serzhik21

Serzhik21

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

Serzhik21

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

Пример реверсинга программы написанной на c#

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

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

И получаем полный исходный код этой программы на C#. Если присмотреться к сути,то это стиллер.

как разобрать программу exe на исходный код. Смотреть фото как разобрать программу exe на исходный код. Смотреть картинку как разобрать программу exe на исходный код. Картинка про как разобрать программу exe на исходный код. Фото как разобрать программу exe на исходный код

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *