Основные понятия.
Чтобы идти дальше, нам необходимо получить ключевую информацию об определённых понятиях, научиться использовать в работе отладчики и дизассемблеры — программы, которые помогут нам изучать и анализировать наш код.
- Шестнадцатеричная система счисления.
- Данные.
- Регистры.
- Указатель.
- Команды ассемблера.
- Процедура (подпрограмма, функция).
- Стек.
Каждая программа содержит ошибки. Выявление и исправление ошибок обычно занимает около 90% всего времени, затрачиваемого на написание программы, и только 10% времени тратится на написание кода.
Для «копания» в своём или чужом коде существуют отладчики и дизассемблеры.
Отладчики и дизассемблеры.
Сразу скажем, что скачать отладчики и дизассемблеры, необходимые для дальнейшей работы можно с нашего сайта, они находятся в архиве с остальными программами для изучения ассемблера для DOS (DOS-1.rar).
Отладчик даёт возможность проследить выполнение запущенной программы пошагово в режиме непосредственной её работы.
Встроенные в среду программирования любого языка отладчики позволяют отслеживать выполнение кода именно того языка, с помощью которого вы создаёте программу. Однако, есть «стандартные» отладчики, которые позволяют распотрошить любой исполняемый файл, показав пошаговое выполнение инструкций. Там балом правит исключительно ассемблер!
Дизассемблер — это программа, позволяющая преобразовать исполняемый файл в код на языке ассемблера.
Пока мы с вами изучаем программирование на ассемблере в системе MS-DOS, воспользуемся отладчиком Turbo Debugger, дизассемблерами Sourcer и IDA. Рассмотрим краткие характеристики и особенности указанных программ. Более подробно отладчики и дизассемблеры мы рассмотрим попозже.
Turbo Debugger.
Отладчик машинного уровня от фирмы Borland, предназначенный для отладки исполняемых файлов MS-DOS. Входит в пакеты Turbo Assembler (TASM), Turbo Pascal (TP) и Turbo C (TC).
Позволяет просматривать отладочную информацию, добавленную при создании программ в качестве комментариев и исходного кода.
Отладчик классического вида, работает спокойно и правильно, как в чистом DOS, так и в эмуляторе DOSBox.
Sourcer.
Перечисляя отладчики и дизассемблеры прошлого, нельзя не обратить вынимание на Sourcer — в своё время очень известный и популярный дизассемблер DOS программ. Славится очень корректным нахождением так называемых перекрёстных ссылок, что облегчает жизнь хакеру, специализирующемуся на реверс-инженеринге и просто программисту, отлаживающему код.
IDA — Interactive DisAssembler.
IDA — любимый дизассемблер известного хакера Криса Касперского. Многие отладчики и дизассемблеры позавидовали бы глобальности этой программы. Из особенностей можно отметить возможность написания достаточно сложных программ-макросов на встроенном Си-подобном языке, содержащих алгоритмы анализа и отладки приложений.
Получил своё развитие в среде Windows, причем понимает 64 битный код. Генерирует логическую схему программы. При помощи декомпилятора Hex-Ray из дизассемблерного кода создаёт достаточно живой код на Си.
Наряду со своими внушительными возможностями обладает одним недостатком — сложностью изучения в полном объёме. Необходимо запомнить кучу горячих клавиш, особенностей и фишек. IDA требует такого же изучения, как отдельный язык программирования в приложении к конкретной среде разработки.
Мы рассмотрели только наиболее удобные и функциональные отладчики и дизассемблеры программ операционной системы MS-DOS, которые будем использовать при дальнейшем изучении ассемблера.