суббота, 23 мая 2009 г.

Goodbye debugger :)

В результате экспериментов с сегментами, программа "Hello World", мутировала в программу "Goodbye debugger" :)
Вывел два штамма, далее было лень, так как надо изучать ассемблер. А то получилось, что язык еще не изучил, а сносить крышу отладчикам уже научился. В общем, случайным образом, «открыл» пару антиотладочных приемов.
Итак первого мутанта в студию :)

Эта программа, если ее запустить на исполнение, ведет себя совершенно нормально и выводит наше супер сообщение, а вот когда она начинается исполнятся под отладчиком, то в окне кода отладчика, команды изменяются динамически, и появляются такие, которых в исходном тексте нет. Довольно забавно смотреть на это дело в отладчике.

Этот скриншот еще до выполнения первой команды:

А вот что получаем по ходу выполнения:

А это то, что выводит програ вместо сообщения Hello World, под отладчиком:

Забавненько, да?!

Теперь посмотрим на второго монстрика. Эта штучка напрочь выносит отладчик, завешивая его:


Исполнение третье команды приводит вот к такому результату:

После чего отладчик вываливается в командную строку :)

Вот так и свернули голову отладчику, даже не научившись еще программировать :)

Причем, обе программы, без отладчика, работают вполне корректно, выводя наше супер сообщение миру.

Комментариев нет: