Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Крутой протектор – не беда

Ms-Rem (Ms-Rem@yandex.ru)

Спецвыпуск: Хакер, номер #057, стр. 057-056-9


Пара слов на прощание

Забавно, но во взломе сложных защит практически нет ничего действительно сложного – нужен лишь подход ко всему с умом. Надеюсь, после прочтения этой статьи ты уже не будешь тормозить всякий раз, встретив что-то посложнее аспака, а спокойно и хладнокровно возьмешься ломать. Пробуй, тренируйся, если что – пиши.

Удачного крэка!

Native API

Функции Native API являются базовыми для системы, на них построена работа более высокоуровневого слоя функций kernel32. Они доступны из пользовательского режима через ntdll.dll, но на самом деле функции ntdll являются только переходниками, которые через интерфейс системных вызовов обращаются к соответствующим функциям ядра. При программировании драйверов мы можем использовать те же Native API функции, что и в приложениях третьего кольца, но API более высокого уровня тут недоступен. Также на этом уровне в наши руки попадают многие функции, экспортируемые ядром и предназначенные для использования только в драйверах (прослойка Kernel API). В Native API пользовательского уровня есть пары аналогичных функций, отличающихся только префиксами Zw и Nt. Там они имеют разные названия, но одну и ту же точку входа. На уровне ядра также существуют аналогичные пары функций, но между ними имеется одно различие: функции с префиксом Zw производят перед выполнением действия проверки системы безопасности (прав пользователя), а функции с префиксом Nt - нет.

SMM

SMM (System Managment Mode) - режим работы процессора, появившийся еще в x86-процессорах. Особенности этого режима не документированы и зависят в основном не от процессора, а от чипсета материнской платы. Процессор может войти в этот режим только аппаратно, по сигналу от чипсета, при этом обработчик SMM недоступен даже программам нулевого кольца. По уровню привилегированности этот режим самый высокий из всех, которые вообще возможны на x86-процессорах.

Одна из возможностей SMM, обеспеченных чипсетами - это вызов обработчика при обращении к портам ввода/вывода. Эта возможность предназначена именно для программной эмуляции оборудования, и ее можно использовать для эмуляции аппаратных ключей. Но, к сожалению, на различных чипсетах эта возможность реализована по-своему, а на каких-то просто отсутствует. На некоторых чипсетах (например nForce фирмы Nvidia) вся информация про SMM засекречена и никому не выдается. По умолчанию обработчик SMM устанавливается BIOS'ом и управляет работой кнопки Power на системном блоке. К сожалению, некоторые BIOS'ы блокируют возможность установки своего обработчика SMM, поэтому для работы эмулятора на таких компьютерах потребуется модификация BIOS (о ней читай в июньском "Хакере").

Назад на стр. 057-056-8  Содержание