Как посмотреть исходный код программы?

935
08 июля 2017, 10:19

Я хочу подправить исходный код, ничего серьезного, только вывод нескольких строк. Программа написана скорее всего на С++. Мне использовать отладчик? Или как-то открыть в IDE? Просто я не хочу запускать программу, хочу просто поковыряться в коде. И может посоветуете какой нибудь для новичка? P.S. Сам файл - .exe

Answer 1

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

Но есть способы полностью или частично раскрыть код.

  • IDA Pro - самый лучший из безплатных взломщиков, некоторые макросы возможно позволяют преобразовать код назад. Но не всегда. Особо хорошо раскрываются borland-продукты.
  • Hiew.Exe бесплатная утилита, очень маленькая, позволяет править код на языке ассемблера. Можно править текстовые и целые константы. Можно ею даже сделать "перевод" программы на другой язык, затереть имя фирмы и т.п.
  • Если есть PDB-файл, или подшита debug-info к файлу то код можно получить в среде разработки (если debug-info полная) редко можно использовать.
  • Если файл написан на с# его можно почти полностью просмотреть в кодах с помощью disSharp (такие программы "подключают" в таблице импорта лишь mscorlib и всё)
  • Если файл написан на FoхPro, clipper и других подобный байт-кодовых языках - он раскрывается спец-утилитами.
  • Утилита exescope.exe и её-подобные утилиты позволяют смотреть шапку, подключенные библиотеки (по ним можно понять на чём писана программа) и редактировать ресурсы программы (ресурс-формы в.т.ч. delphi, иконки, картинки, таблицы ресурсо-строк).
  • Если извесно чем создан код - думаю есть специальные утилиты способные его раскрыть (они платные и малодоступные).

Опять-же, это при условии что нету паковщика кода, шифровальщика/самомодифицирующегося кода. Если не разбит обфускатором так что не распутать. Чем больше код - тем сложнее разобраться.

P.S. Лично моё мнение - раскрывается-взламывается всё, но на это нужно потратить много-много времени. Иногда более года.

Answer 2

Рад буду ошибаться, что такого способа для "новичка" просто нет. Вам нужно дизассемблеровать exe-файл в IDA или Hiew32, ну и там уже рассматривать код на языке asm(низкого уровня).

Answer 3

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

READ ALSO
Qt C++ Потоки и ProgressBar

Qt C++ Потоки и ProgressBar

Всем приветЕсть пулл потоков, к примеру их 10 штук

342
Перенос данных mySQL

Перенос данных mySQL

Только начал изучать SQL, возник такой вопрос, не смог найти (скорее всего не грамотно вводил в поиск)Имеется: таблица1 и таблица2 с одинаковой...

336
Выбрать максимльно количество записей

Выбрать максимльно количество записей

Никак не могу реализовать такой запрос: необходимо вывести id пользователя, у которого максимальное количество друзейЕсть такая таблица:

251