Как получить исходный код исполняемого файла Windows?

У меня есть старые исполняемые файлы Windows. Как я могу редактировать их с помощью Visual Studio 2010? Как можно увидеть исходный код exe?


Вы не можете получить исходный код C ++ из exe, и вы можете получить только некоторую версию источника C # через отражение .


21

Если программа написана на C # вы можете получить исходный код почти в его исходной форме с помощью .NET Reflector. Вы не сможете увидеть комментарии и имена локальных переменных, но они очень читабельны.

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

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

Улучшите этот ответ
ответил 17 апреля 2010 г., 18:40
  • спасибо за ваш ответ. это действительно полезно. Я пробовал отражатель .Net, но он не работает для моего exe. Peid сообщает, что его Microsoft Visual C ++ 6.0. я думаю, что нет способа получить исходник. все равно спасибо – Али Демирчи 17 апр., 2010 в 18:51
добавить комментарий |

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

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

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


6

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

Если это байт-код (MSIL или javabytecode), есть декомпилятор, который может довольно хорошо исходный код. Для .net это будет отражатель.

Улучшите этот ответ
ответил 17 апр., 18:40
добавить комментарий |

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

Если это байт-код (MSIL или javabytecode), есть декомпилятор, который может довольно хорошо исходный код. Для .net это будет отражатель.


3

Я бы (и использовал) использовал IDA Pro для декомпиляции исполняемых файлов. Он создает полузаполненный код, который можно декомпилировать в сборку или C.

Если у вас есть копия символов отладки, загрузите их в IDA перед декомпиляцией, и он сможет назвать многие из функции, параметры и т. д.

Улучшите этот ответ
ответил 17 апр. ’10 в 18:43
добавить комментарий |

Я бы (и использовал) использовал IDA Pro для декомпиляции исполняемых файлов. Он создает полузаполненный код, который можно декомпилировать в сборку или C.

Если у вас есть копия символов отладки, загрузите их в IDA перед декомпиляцией, и он сможет назвать многие из функции, параметры и т. д.


0

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

Это в значительной степени случайный сценарий.

Кто-то уже спрашивал об этом на другом веб-сайте

Улучшить этот ответ
отредактировано 17 апреля 2010 г. в 18:55
ответил 17 апреля 2010 г., 18:42
  • Как правило, голосование “против” без объяснения причин. Кроме того, этот ответ не слишком далек от принятого ответа. По крайней мере, упомяните, как мой ответ может быть улучшен ради меня самого, а также ради автора вопроса. – Джейми Килинг, 17 апр., 19:05
  • Если бы вы не удалили свой ответ, мы могли бы его удалить. В любом случае ваш ответ неверен; посмотреть другие ответы на вопрос. Обратный инжиниринг исполняемого образа возможен во многих случаях и с использованием правильных инструментов. – Майкл Петротта, 17 апр. ’10 в 19:06
  • Это не совсем неверно, мой ответ имеет балл или два по сравнению с принятым ответом. Причина, по которой я удалил свой ответ, заключается в том, что он был отклонен на 3 в течение секунд, и никто не имел приличия, чтобы оставить комментарий. Спасибо за ответ, я ценю ваши усилия. Он хочет, чтобы я не утруждал себя внесением вклада из-за страха, что люди будут безжалостно отвергать голосование за ответ без объяснения причин, при условии, что я не знаю всего, но это вызов уверенности, независимо от того, кто поставил ответ. – Джейми Килинг, 17 апр. 2010, 19:13
  • 3
    Джейми, я понимаю ваше разочарование, но при всем уважении, вы должны были понять, почему ваш ответ был отклонен, без каких-либо комментариев. Когда вы начали получать отрицательные голоса, вам следует взглянуть на другие ответы. Ваш прямо противоречит верхним. “Вы ничего не можете с этим поделать”! = “Вы можете сделать это легко, если это .NET, и сложнее, если это нативный код”. – Майкл Петротта, 17 апреля 2010 г., 19:20
  • 2
    Я вроде как согласен с Джейми. Да ладно, его ответ противоречит другим и может быть неправильным. Так что проголосуйте против, но скажите ему, почему согласно SO: «Прежде всего, будьте честны. Если вы видите дезинформацию, проголосуйте против. Вставьте комментарии, указывающие, что именно не так . Еще лучше – редактируйте и улучшайте информацию! Предоставляйте собственные более сильные, быстрые и качественные ответы! ” – RoLYroLLs 21 апр. ’10 в 19:27
| показать 2 дополнительных комментария

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

Это в значительной степени случайный сценарий.

Кто-то уже спрашивал об этом на другом сайте


-1

Используйте PE Explorerнажмите здесь, чтобы узнать больше и загрузить

Улучшите этот ответ
ответил 02 марта ’14 в 8:27
добавить комментарий |

Используйте PE Explorerнажмите здесь, чтобы узнать больше и скачать


-1

Для любого файла * .Exe, написанного на любом языке. Вы можете просмотреть исходный код с помощью hiew (в противном случае – просмотр Hackers). Вы можете скачать его на сайте www.hiew.ru. Это будет демонстрационная версия, но код все еще можно будет просмотреть.

После этого выполните следующие действия:

  1. Нажмите alt + f2, чтобы перейти к файлу.

  2. Нажмите клавишу ВВОД, чтобы увидеть его код сборки/C ++.

Улучшить этот ответ
отредактировано 28 мая ’14 в 13:42
Yogiraj
1,9141616 серебряных знаков2929 бронзовых знаков
ответил 28 мая ’14 в 13:14
добавить комментарий |

Для любого файла * .Exe, написанного на любом языке. Вы можете просмотреть исходный код с помощью hiew (в противном случае – просмотр хакеров). Вы можете скачать его на сайте www.hiew.ru. Это будет демонстрационная версия, но код все еще можно будет просмотреть.

После этого выполните следующие действия:

  1. Нажмите alt + f2, чтобы перейти к файлу.

  2. Нажмите Enter, чтобы увидеть его код сборки/C ++.



Просмотр кода EXE-файла, созданного в Visual Studio

Программирование
0

Уважаемые все

У меня есть файл .exe, созданный в Visual Studio.
У меня также есть соответствующие файлы .dll.
Я хочу открыть все файлы (.exe и .dll) и просмотреть их код.
Не могли бы вы посоветовать мне это сделать?

Заранее спасибо.

Пожалуйста, войдите, чтобы добавить закладку

4 ответа

  • Активные
  • Проголосовали
  • Новые
  • Самые старые
0

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

0

Привет, Антонис Сервос,

Ответ разделен на 2 части, если сборка НЕ ​​является сборкой .NET, тогда вы не сможете восстановить код (по крайней мере, нет простого способа).

Если ваша сборка является .NET, тогда используйте такой инструмент, как .NET Reflector
Вы можете скачать пробную версию отсюда:
http://www.reflector.net/

0

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

Деннис

0

Почему ему интересно просматривать скомпилированные файлы?

Зарегистрируйтесь или Войти

Связанные

Поддержка разработки API для COVID-19 в 2020 году, результаты опроса Postman Survey
Национальное кодирование Мы ek 2020 – Эксперты обсуждают важность кодирования
У Hadoop много ограничений: вот решение
12+ бесплатных (или недорогих) веб-сайтов для расширения возможностей вашего обучения программированию
Python: проблема с кортежами – мутация

Уважаемые все

У меня есть файл .exe, созданный в Visual Studio.
У меня также есть соответствующие файлы .dll.
Я хочу открыть все файлы (.exe и. dll) и просмотрите их код.
Не могли бы вы посоветовать мне это сделать?

Заранее спасибо.

Войдите, чтобы добавить закладку

0

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


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


0

Привет, Антонис Сервос,

Ответ разделен на 2 части, если сборка НЕ ​​является. NET, тогда вы не сможете восстановить код (по крайней мере, нет простого способа).

Если ваша сборка является .NET, используйте такой инструмент, как .NET Reflector
Вы можете загрузите пробную версию отсюда:
http://www.reflector.net/


Привет, Антонис Сервос!

Ответ разделен на 2 части, если сборка НЕ ​​является сборкой .NET, вы не можете восстановить код (по крайней мере, нет простого способа).

Если ваша сборка является .NET, используйте такой инструмент, как .NET Reflector
Вы можете скачать пробную версию отсюда:
http://www.reflector.net/


0

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

Деннис


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

Деннис


0

Почему ему интересно просматривать скомпилированные файлы?


Почему ему интересно просматривать скомпилированные файлы?

Оцените статью
futurei.ru
Добавить комментарий