понедельник, 18 февраля 2013 г.

защита подмены id диалога

call dword ptr [__imp__MessageBeep@4 (004404cc)]

Код вызова процедуры из другого модуля выглядит примерно так:

находится в его таблице импорта.

С другой стороны, список API, необходимый для нормальной работы опять-таки, любого модуля,

Весь API, доступный из какого-либо модуля, описан в так называемой таблице экспорта этого модуля.

Модификация таблиц импорта/экспорта

используют процедуры другого.

Это вполне реально. Давайте поближе рассмотрим, как под windows процедуры одного модуля

Иными словами, заставить уже откомпилированный код вызвать нашу функцию вместо стандартной.

изменить работу чужой библиотеки, пересобрать которую нет никакой возможности?

Но что если хочется добавить немного своей логики в уже откомпилированный код,

заменит ее на нашу MyMessageBeep. Очень просто.

Теперь если в коде программы встретится MessageBeep препроцессор

#define MessageBeep MyMessageBeep

WINUSERAPI BOOL WINAPI MyMessageBeep(IN UINT uType)

Переопределение с помощью препроцессора

Требует наличия WinSockets 1.0.

Требует наличия звуковой карты. Методы 3, 4 и 5 не будут работать под windows9x/ME.

Как подменить функцию API?Автор: Версия текста: 1.2.1

Как подменить функцию API? P PP PP P PP PP PPPОценить P

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

Отправить комментарий