Урок №34. Знакомство с отладчиком:
виртуальные адреса, опкоды, ассемблерные мнемоники, комментарии
Возьму за правило перед каждым уроком напоминать о том, что мы изучили в прошлых уроках. Итак, нам известно, что исполняемые файлы бывают 32- и 64-битными. Мы можем проанализировать их код и определить язык программирования, на котором он написан.
В этом уроке мы поглубже изучим информацию, которую предоставляет отладчик Ollydbg. Для начала откроем в отладчике FaNt0m's Crackme #1 из урока №2 (ссылка на crackme)
Четыре колонки, выделенные красным цветом по периметру, это (слева направо):
1) виртуальный адрес - место в памяти компьютера, куда загружается запущенная вами программа.
2) опкоды (operation code) или машинные коды - инструкции, которые последовательно выполняются после запуска программы. Т.е. в этих цифрах зашифрованы операции сложения, вычитания, деления и умножения, а также указание на адрес в памяти, где содержится информация для обработки. Если необходимо изменить порядок выполнения инструкций, тогда используются условные (выполняются при определённом условии) и безусловные (выполняются в любом случае) переходы.
3) ассемблерные мнемоники - те же самые опкоды, которые отладчик показывает в удобочитаемом виде.
4) комментарии - дополнительная информация, которой соизволил поделиться с нами отладчик.
Обратите внимание на то, что ассемблерные мнемоники и комментарии в разных отладчиках могут незначительно отличаться. На снимке ниже представлено сравнение двух отладчиков - OllyDbg и x64dbg.
Давайте проведём сравнение первых десяти строчек ассемблерных мнемоник, исключив несущественную разницу между строчными и прописными буквами. Отличия будут выделены жирным шрифтом.
В этом уроке мы встретились с нагромождением пока ещё непонятных слов, букв и цифр. Убедились, что ассемблерные мнемоники разных отладчиков могут незначительно отличаться. И самое важное - научились отличать машинные коды от ассемблерных мнемоник.
Страница обновлена 24 апреля 2022 года.