|
16.10.2012, 13:41 | #1 |
Модератор
Регистрация: 25.09.2011
Сообщений: 236
|
Как работает отладчик
Качество программного обеспечения сейчас является низким как никогда, несмотря на обилие научных и практических исследований по теории оптимизации и контроля софта. Видимо, эти книги просто некому читать, потому что в условиях рынка ценится только скорость кодирования. Кроме того, из IT сферы постепенно исчезает академический подход в алгоритмизации, а программы создаются вчерашними школьниками.
Для пользователей это означает то, что, заплатив деньги за программу, они часто сталкиваются с тем, что те не работают должным образом, ведут себя некорректно и «падают» в результате странных ошибок. Все эти ошибки должны были быть исправлены в ходе тестирования, но на него тратится слишком много сил и денег. Если программа действительно важна, поправить ситуацию можно с помощью отладчика. Отладчик – это программа системного типа, которая позволяет рассматривать любую программу с целью поиска в ней ошибок или для определения алгоритма работы. Подразумевается, что эта деятельность не должна нарушать существующих норм законодательства. Так как исследуемая программа поставляется без исходного кода, отладчик оперирует лишь ее представлением в машинном коде, но может «сообразить», как удобнее представить некоторые типовые конструкции. К примеру, отладчик для Windows- программ определяет идентификаторы вызываемых функций Windows, а в системах типа MS-DOS выводит подсказки по использованию программных прерываний, обращений к портам и ячейкам памяти. Обычно отладчик загружает исследуемую программу точно так же, как это делается при запуске программы системой, но иногда отладчик может использовать для программы виртуальную среду исполнения, которую можно организовать даже в файле, имитирующем память. Во время работы отладчика можно наблюдать и изменять значение регистров процессора, переключаться между участками памяти, вносить «заплатки» в код и устанавливать точки останова программы. Типичный инструмент отладчика – возможность трассировки, то есть установка специального T-флага в слове состояния процессора. Это приведет к тому, что процессор будет выполнять одну команду, после чего останавливаться, передавая управление отладчику. Иначе говоря, будет происходить пошаговая отладка, и программист будет иметь контроль над каждым регистром. Заметим, что никакие системы защиты программы не могут устоять перед отладчиком, даже если они очень мощные: при желании и наличии времени вскрывается любая программа, чем пользуются, к примеру, хакеры и «реверсеры» для выяснения работы коммерческих алгоритмов и поиска секретных данных в программе. Проще всего вникнуть в отладку программ MS-DOS с помощью программы debug, а для современного ПО чаще используются пакеты IDA, OllyDbg, SoftICE и другие. Наиболее мощные отладчики могут включать в себя и аппаратную поддержку на базе специальных плат, но чаще всего отладка производится лишь программными методами. |
Метки |
ollydbg, softice, отладчик, анализ |
Опции темы | |
Опции просмотра | |
|
|
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как работает фишинг | AntonXxX | Новости | 0 | 07.05.2012 18:54 |