Если вы думаете, что ваше WinForms .NET-приложение с самого начала безопасно и исходный код не может быть прочитан, то позвольте мне сказать вам, что ты не прав. Любой может использовать декомпилятор, который принимает исполняемый файл в качестве входных данных и пытается создать исходный файл высокого уровня (исходный код приложения). Перед публикацией приложения рекомендуется проверить уязвимости в коде, декомпилировав сгенерированный исполняемый файл с помощью некоторого инструмента декомпиляции. Помимо проверки возможных недостатков безопасности, если вы унаследовали приложение без документации или комментариев, посмотреть, как поведение кода компиляции с декомпилятором, может быть довольно полезно.
Если по какой-либо причине вы хотите декомпилировать сборки .NET, мы рекомендуем вам использовать Проект ILSpy. ILSpy — декомпилятор и работает так же Jadx (APK-декомпилятор) однако вместо декомпиляции Java декомпилирует C #. ILSpy — это браузер и декомпилятор сборки .NET с открытым исходным кодом. Наиболее известные особенности этого декомпилятора:
How to Create and Run C Program in Visual Studio
- Просмотр сборки
- IL разборка
- Поддержка C # 5.0 «асинхронно»
- Декомпиляция в C #
- Поддерживает лямбды и «доходность»
- Показывает XML документацию
В этой статье вы узнаете, как легко загрузить ILSpy на свой компьютер и декомпилировать исполняемый файл, сгенерированный Visual Studio, чтобы наконец увидеть его исходный код.
1. Скачать бинарники ILSpy
Официального установщика не существует, ILSpy переносим. Двоичные файлы ILSpy можно получить через релизы проекта в Github на область релизов или просто нажав кнопку Загрузить двоичные файлы с официального сайта здесь. В архиве содержатся до 11 файлов (1 исполняемый файл, 9 динамически подключаемых библиотек и файл конфигурации):
После загрузки вы можете использовать ILSpy через исполняемый файл, это не инструмент командной строки, поскольку он включает графический интерфейс.
2. Декомпиляция исполняемых файлов из приложения WinForms
Не связывайтесь с этикой, мы собираемся декомпилировать одно из наших собственных приложений, созданных с помощью Visual Studio в C #. В нашем примере проекта мы представим наиболее небезопасную форму простой формы входа для уникального пользователя:
Модель учетных данных хранится в переменных в исходном коде, что, очевидно, является недостатком безопасности. С помощью оператора if мы проверим, знает ли пользователь учетные данные, когда пользователь нажимает кнопку входа в систему. Исходный код нашего приложения следующий:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Sandbox < public partial class Form1 : Form < public string globalUsername = «Batman»; public string globalPassword = «batmobil»; public Form1() < InitializeComponent(); >private void Form1_Load(object sender, EventArgs e) < >private void button1_Click(object sender, EventArgs e) < string username = textBox1.Text; string password = textBox2.Text; if(username == globalUsername password == globalPassword) < MessageBox.Show(«Login granted, awesome !»); >else < MessageBox.Show(«Login denied, check your credentials !»); >> > >
Теперь мы скомпилируем (создаем решение) наш проект, чтобы сгенерировать его двоичные файлы в bin/Debug папка проекта:
Как компилировать C/C++ в Visual Studio Code на Windows?
Проект решения для сборки обновит двоичные файлы отладки, и вы можете найти исполняемый файл вашего приложения в bin/Debug папка например C:UsersmeDocumentsvisual studio 2017Projects\binDebug , Откройте ILSpy, нажмите «Файл» в строке меню и выберите «Открыть». Запустится файловый браузер и позволит вам выбрать сборку, которая в этом примере будет находиться в папке Debug нашего проекта:
Как только вы выберете исполняемый файл, ILSpy запустит процесс декомпиляции и добавит выбранный файл в качестве элемента в древовидном представлении. Там вы сможете изучить структуру и ресурсы файла и исходный код. В нашем примере у нас есть одна форма, а именно Form1, которую можно легко просмотреть через ILSpy:
Вы видите это правильно? ILSpy смог получить исходный код нашего исходного приложения и мы можем увидеть алгоритм «потрясающего входа» нашего проекта WinForms. Декомпиляция, очевидно, работает и с не отладочными версиями.
Источник: helpexe.ru
Как перекомпилировать проект Microsoft Visual Studio?
Есть проект, нужно перекомпилировать под 32 разрядную систему, но в диспетчере конфигураций на выбор только х64 и х86.
Если перекомпилировать под х86, то будет ли проект запускаться на 32х разрядной Windows?
- Вопрос задан более трёх лет назад
- 1138 просмотров
Комментировать
Решения вопроса 2
Консультация и разработка мобильных приложений
Должен
x86 — 32х разрядная система
x64 — 64х разрядная система
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Разработчик .NET
x86 — историческое название для 32-битной архитектуры.
Цитата из Википедии:
Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). За время своего существования набор команд постоянно расширялся, сохраняя совместимость с предыдущими поколениями.
Помимо Intel архитектура также была реализована в процессорах других производителей: AMD, VIA, Transmeta, IDT и др. В настоящее время для 32-разрядной версии архитектуры существует ещё одно название — IA-32 (Intel Architecture — 32).
Ответ написан более трёх лет назад
Комментировать
Нравится 3 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- C#
- +2 ещё
Средства разработчика для Android?
- 1 подписчик
- 7 минут назад
- 5 просмотров
Источник: qna.habr.com
как перекомпилировать .lib в Visual Studio 2013
У меня есть проект, который использует Effects11.lib и Effects11d.lib, но когда я создаю свой проект, я получаю кучу «ошибки LNK2038: обнаружено несоответствие для» __MSC_VER «: значение» 1600 «не соответствует значению» 1800 «. И из того, что я нашел, это говорит о том, что.lib был создан для другой версии VS, чем то, что я использую, и мне нужно перекомпилировать их. Проблема в том, что я не уверен, как это сделать. Никогда не приходилось перекомпилировать lib раньше.
Desenski 12 янв. 2015, в 05:36
Поделиться
Вы начинаете с исходного кода.
Ben Voigt 12 янв. 2015, в 04:35
Поделиться:
3 ответа
Лучший ответ
который затем ссылается на
который имеет загрузку для источника этой библиотеки в
который, как представляется, имеет файлы проектов, которые можно использовать с VS2013, которые вы используете, чтобы вы могли создавать эффекты.lib для vs2013 и продолжать свою разработку.
Альтернативу вы могли бы связаться с самим автором с его веб-страницы и посмотреть, сможет ли он сделать это для вас и связать с ним, поскольку, скорее всего, вы не единственный, кто попал в эту проблему?
Mike Vine 12 янв. 2015, в 10:41
Поделиться
Спасибо. Кажется, это исправило мою проблему. У меня есть только одна ошибка, которую нужно исправить, и, надеюсь, я смогу запустить свою программу.
Desenski 12 янв. 2015, в 19:34
Эти статические библиотеки построены с помощью VS 2010, но вы используете VS 2013. Ошибка ссылки сообщает об этом.
Исправление в этом случае — это посетить сайт Effects 11 на CodePlex, а затем создать новую копию Effects 11 с вашим компилятором VS 2013. Кроме того, вы можете использовать пакет NuGet fx11_desktop_2013, который является той же версией, созданной для VS 2013.
Обратите внимание, что при использовании VS 2013, который включает в себя SDK Windows 8.1 с несколько устаревшей книгой Luna, вы можете попытаться использовать устаревшую библиотеку D3DX11. Вы, безусловно, можете сделать это с VS 2013 года, но вам нужно внести некоторые изменения в проект include/lib paths, чтобы заставить его работать. См. MSDN. Библиотека библиотеки Effects 11 от CodePlex или NuGet не имеет никаких зависимостей от устаревшего SDK DirectX.
У меня есть некоторые общие замечания об этой книге здесь также.
Полный список альтернатив D3DX11 см. В разделе » Жизнь без D3DX».
Источник: overcoder.net