Журнал Системный Администратор, Октябрь 2005

Журнал Системный Администратор

Октябрь 2005

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


Антиотладка: старые приемы на новый лад

Крис Касперски

Новое, как говорится, – это хорошо забытое старое. Антиотладочные приемы времен MS-DOS и debug.com возвращаются, чтобы снова работать в Windows 2000/XP/2003. Статья не только вызовет у вас ритуально-ностальгический интерес, но и послужит практическим пособием по борьбе с хакерами и отладчиками.

Отладчики (а отладчик, как известно, – основной инструмент хакера) прошли долгий эволюционный путь – от debug.com до soft-ice. За это время было найдено множество способов борьбы с ними, однако не все они оказались удачны. В последнее время наблюдается острый дефицит хороших антиотладочных приемов. Так не пора ли вернуться к истокам – древним приемам, проверенным годами? Технический прогресс развивается по спирали, и методы защиты, разработанные для MS-DOS и утратившие актуальность к концу ее существования, оказывают убийственное воздействие на Windows-отладчики, которые просто не предусматривали такого поворота событий и капитулируют сразу, даже не пытаясь бороться.

Разумеется, непосредственный перенос антиотладочных методик из MSDOS в Windows невозможен хотя бы уже потому, что в Windows нет «прерываний» в том смысле, который в них вкладывает MS-DOS. В ней нет портов ввода/вывода, физической памяти и множества других привычных для MS-DOS-программистов концепций и вещей. То есть они, разумеется, есть (куда же без прерываний?!), но техника работы с ними радикально отличается. Так что определенная адаптация все-таки необходима.

Основной упор мы сделаем на прикладной уровень и программистов средней квалификации, которые, возможно, имеют представление о драйверах, но разрабатывать их самостоятельно не собираются. Некоторые из описанных методик практически полностью системно независимы и работают под любой 32-разрядной операционной системой семейства Windows, частично поддерживая Windows 3.x и Windows XP 64-bit edition. Некоторые требуют только NT или производную от нее систему, причем никаких гарантий сохранения работоспособности в последующих версиях Windows у нас нет. Даже если использовать только документированные функции, Microsoft в любой момент может их изменить, как это она уже делала неоднократно, причем, в последнее время все чаще и чаще. Лучше вообще не использовать никаких системно зависимых функций и писать все на ANSI Си/С++ или DELPHI (фактически DELPHI представляет собой самостоятельную «операционную систему», натянутую поверх Windows и абстрагирующую программиста от прихотей Microsoft – вы просто перекомпилируете код и все! Разумеется, речь идет только о прикладных задачах и на антиотладочные приемы указанное преимущество DELHPI не распространяется). Тем не менее, бояться антиотладочных приемов не нужно. Их использование вполне допустимо, если не сказать – желательно.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке


DzheiKa
2007-11-06 06:03:52

Одна вода...
статья ацтой
я уже молчу про то, что хакеры вообще не опасны, и никогда ничего не взламывают, в отличие от крэкеров... это к "(а отладчик, как известно, – основной инструмент хакера)"