Показать исходный код Delphi и C++

Как я могу увидеть исходный код исполняемого файла, скомпилированного с помощью Delphi или C++?

Пожалуйста, помогите мне.

После редактирования:

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

6 ответов

Решение

Ты не можешь

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

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

Есть утилиты, которые пытаются преобразовать машинный код в исходный код, но результат, на мой взгляд, менее читабелен для людей, чем оригинальный машинный код. Сгенерированные машиной имена функций, сгенерированные машиной локальные переменные и аргументы, и много раз утилита должна угадывать точные типы данных аргументов и локальных переменных. (это arg со знаком int или без знака int? Трудно сказать, когда это просто слот стека или машинный регистр)

Компиляция в промежуточное представление, как это делается в Java и.NET, обеспечивает гораздо большую обратимость, поскольку типы и имена символов большей части исходного кода сохраняются. Например, Reflector может генерировать исходный код C#, который очень близок к исходному, написанному человеком исходному коду.

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

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

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

Как я могу увидеть исходный код исполнительного файла, скомпилированного с помощью Delphi или C++?

Вы не можете, потому что исходный код не существует в скомпилированной программе Delphi/C++.

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

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

Вы можете получить список ассемблера из программы, используя дизассемблер (Ida Pro, OllyDBG или аналогичный инструмент). И вы можете отлаживать свою программу даже без исходного кода, хотя вы увидите чистую сборку. AFAIK, "декомпиляторы" существуют, но я никогда не использовал ни одного из них, и сомневаюсь, что они будут полезны для кода C++/Delphi (тот, который компилируется в собственное приложение).

Есть несколько простых методов, которые позволят взломать программу и обойти проверку пароля (если соблюдены некоторые условия, автор программы не был в безопасности, защита проста и т. Д.), Но я не уверен, разрешена ли эта тема для обсуждения. на стеке потока

В любом случае, если вы заинтересованы в реверс-инжиниринге для юридических целей, вы можете попробовать книгу под названием "Реверс: Секреты обратного инжиниринга".

Во-первых, пароль не сохраняется в исходном коде. Процесс компиляции только односторонний; готовый продукт не изменит своего источника. (Или его двоичный файл, в этом отношении, по крайней мере, в большинстве случаев.) Скорее всего, пароль где-то сохраняется в файле данных. И если автор программы вообще компетентен, пароль каким-то образом хешируется или шифруется. Декомпиляция программы вам мало поможет.

Кроме того, как упомянул InsertNickHere, мы здесь не сайт для взлома. Мы - уважаемые программисты, помогающие друг другу справляться со сложностями, возникающими при создании легального программного обеспечения. Пожалуйста, возьмите свои сомнительные вопросы в другом месте.

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

Другие вопросы по тегам