Сергей Ноздрин
Мастер
(1582)
11 лет назад
как ты знаешь каждую программу пишут програмисты.
на разных языках програмирования, которые даже не похожи между собой.
общее между ними всеми то, что конечный результат (exe - файл, сама программа) это набор машинных команд "говорящий" процессору и памяти и всем устройствам компьютера что и как надо делать (выводит красивые окошки, делать вычисления.... )
назад в код для программистов программу переделать невозможно (для того что бы внести изменения) , но возможно переделать в код, называемый языком "ассемблер"
это язык, который работает непосредственно с машинными командами
но работать на нем очень сложно для многих современных програмистов
вот этот перевод и есть дизассемблирование.
обычно применяется для того что бы сломать программу что бы она не просила ключ регистрации и что нибудь в этом роде
Анастасия Лыжина
Мастер
(1788)
11 лет назад
Дизассе́мблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера.
По режиму работы с пользователем делятся на
Автоматические
Интерактивные
Примером автоматических дизассемблеров может служить Sourcer. Такие дизассемблеры генерируют готовый листинг, который можно затем править в текстовом редакторе. Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ.
Дизассемблеры бывают однопроходные и многопроходные. Основная трудность при работе дизассемблера — отличить данные от машинного кода, поэтому на первых проходах автоматически или интерактивно собирается информация о границах процедур и функций, а на последнем проходе формируется итоговый листинг. Интерактивность позволяет улучшить этот процесс, так как просматривая дамп дизассемблируемой области памяти, программист может сразу выделить строковые константы, дать содержательные имена известным точкам входа, прокомментировать разобранные им фрагменты программы.
Чаще всего дизассемблер используют для анализа программы (или ее части) , исходный текст которой неизвестен — с целью модификации, копирования или взлома. Реже — для поиска ошибок (багов) в программах и компиляторах, а также для анализа и оптимизации создаваемого компилятором машинного кода.
Источник: понятно?
Сергей Шапавалoв
Ученик
(177)
7 лет назад
Дизассе́мблер — транслятор, преобразующий машинный код, объектный файл или библиотечные модули в текст программы на языке ассемблера.
По режиму работы с пользователем делятся на
-Автоматические
-Интерактивные
Примером автоматических дизассемблеров может служить Sourcer[1]. Такие дизассемблеры генерируют готовый листинг, который можно затем править в текстовом редакторе. Пример интерактивного — IDA. Он позволяет изменять правила дизассемблирования и является весьма удобным инструментом для исследования программ.
Дизассемблеры бывают однопроходные и многопроходные. Основная трудность при работе дизассемблера — отличить данные от машинного кода, поэтому на первых проходах автоматически или интерактивно собирается информация о границах процедур и функций, а на последнем проходе формируется итоговый листинг. Интерактивность позволяет улучшить этот процесс, так как просматривая дамп дизассемблируемой области памяти, программист может сразу выделить строковые константы, дать содержательные имена известным точкам входа, прокомментировать разобранные им фрагменты программы.
Чаще всего дизассемблер используют для анализа программы (или её части), исходный текст которой неизвестен — с целью модификации, копирования или взлома. Реже — для поиска ошибок (багов) в программах и компиляторах, а также для анализа и оптимизации создаваемого компилятором машинного кода.
Обычно однопроходный дизассемблер (как и построчный ассемблер) является составной частью отладчика.
При работе с исполняемым кодом или байт-кодом, созданным на некоторых языках высокого уровня (например, java) имеется возможность восстановить не только текст на языке ассемблера, но даже и структуру классов программы, а если при компиляции исполняемого файла не была отключена отладочная информация - то и исходный текст программы. Для исключения таких возможностей используется обфускация.