Как изменить код программы без исходника. Как изменить код программы, если потерян исходник. Бывают ситуации, когда под рукой нет исходника, а Вам срочно требуется внести изменения в коде, написанной ранее Вами программы. Например, дано приложение «Text. Edit. exe» — текстовый редактор, написанный на языке c#, который имеет простой пользовательский интерфейс, состоящий из двух кнопок и текстового поля.
- Все параметры программы Ildasm.exe не учитывают регистр и распознаются по первым трем буквам. Например, команда /quo эквивалентна команде.
- Окей, закрываем Reflector и вспоминаем про ildasm.exe.
- Окей, закрываем Reflector и вспоминаем про ildasm.exe целях, и не является призывом или инструкцией к взлому платных программ.
- Задача была в том, что бы написать программу на C# и dll на том же языке, Нужно декомпилировать библиотеку при помощи ILDASM.
- Ildasm.exe принимает входной исполняемый файл (PE), содержащий код. Дополнительные инструкции по загрузке файла в программу Ildasm.exe и.
- Эти программы включены в любую Visual Studio. Они позволяют работать с. NET ассемблером.
Данная программа бесплатная, в лицензии вроде бы ничего не Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в.il.
Данная программа бесплатная, в лицензии вроде бы ничего не. Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в.il . Эти программы включены в любую Visual Studio. Они позволяют работать с.NET ассемблером. Появиться главное окно программы. Переместим файл сборку TextEdit.exe в окно дизассемблера ILASM, .
При нажатии на кнопку “Чтение” из файла 1. Box, а при нажатии на кнопку “Запись” данные из текстового поля сохраняются в файле 2. Для хранения путей в программе используются две текстовых переменных: file. Path. In и file. Path. Out. Прошёл год, как программа была написана и отдана заказчику, но вдруг ему потребовалось изменить имя папки, в которой должны храниться оба файла, c 1.
Text. Задача простая, но прошло уже много времени, и исходник был потерян, что делать в такой ситуации? Для начала вспомним, как образуется . NET сборка. Полученный в результате компиляции файл (сборка) содержит внутри себя метаданные, манифест, код на языке IL (MSIL).
Метаданные & #8. Манифест описывают саму сборку. MSIL код, полученный в результате компиляции файла исходного кода.
То есть перед вами тот же исходник, только в другом формате. И для того, чтобы поработать с ним, Вам понадобиться специальный инструмент, который позволяет просматривать и редактировать данные внутри сборки. Дизассемблер ILDASMДанный инструмент входит состав пакета . Net Framework SDK, который является бесплатным и устанавливается вместе с Visual Studio (включая Express версию). С помощью него вы можете, как просматривать внутреннее содержимое сборки, так и изменять его. Для удобства работы создадим отдельную папку, например: ”c: \newasm” и поместим в неё файл Text. Edit. exe. Затем в меню “Пуск” открываем папку: «Visual Studio Tools»Запускаем командную строку разработчика.
Откроется консоль, вводим первую команду: ildasm. Для выполнения команды нажмите клавишу Enter.
Появиться главное окно программы. Переместим файл сборку Text. Edit. exe в окно дизассемблера ILASM, в результате отобразиться её внутреннее содержимое.
Убедимся, что в ней содержатся нужные нам данные (пути к файлам). Два поля на месте, теперь взглянем на метаданные. Для доступа к метаданным Вы так же можно использовать сочетание горячих клавиш: Ctrl+M. Затем с помощью кнопки Find, найдём имя одного из файлов. Как видно присутствуют оба. Пути найдены, и теперь их нужно изменить, но все данные, в текущий момент, доступны только для просмотра, и изменить их в самой дизассемблере нельзя, поэтому воспользуемся второй возможностью данной программы и выгрузим содержимое сборки в файл. Выгрузка данных. Выберите пункт меню File - > Dump.
Появиться меню. В данном примере, все пункты меню оставим без изменений и просто нажмём кнопку OK. Появиться диалоговое окно.
Выберем ранее созданную папку “newasm”, затем укажем имя и тип файла и нажмём на кнопку “Сохранить”В результате в папке “newasm” должно появиться несколько новых файлов. Закрываем окно ildasm, а так же удаляем файл Textedit. Теперь нас интересует полученный файл texted. Снова воспользуемся поиском (Ctrl+F)Так же видим найденные строки, которые содержат пути к файлам. Изменим текущее имя папки 1. Text, для обоих файлов. Сохраняем внесённые изменения и закрываем блокнот.
Ассемблер ILASMИзменения внесены и теперь нужно преобразовать файл txted. Для этого нам понабиться второй инструмент ILASM, ассемблер, который так же входит в состав пакета SDK и не требует отдельной установки. Затем указываем файл, который содержит MSIL- код. С помощью второго параметра /output & #8. Если компиляции прошла успешно, то в окне консоли вы должны увидеть сообщение, которое выделено на картинке, а внутри папке “newasm” должен появиться новый файл Text. Edit. exe, который теперь уже содержит новые пути к файлам.
Вот таким не сложным способом можно выйти из данной ситуации, при этом не имея исходника под рукой.