Истории о вирусах

Вызов Windows 95 API


Обычные приложения вызывают Windows 95 API (Application Program

Interface) используя таблицу импортируемых имен. Когда приложение

загружено, данные, необходимые для вызова API, заносятся в эту табли-

цу. В Windows 95, благодаря предусмотрительности фирмы-производите-

ля Microsoft, модифицировать таблицу импортируемых имен невозможно.

Эта проблема решается непосредственным вызовом KERNEL32. То есть

необходимо полностью игнорировать структуру вызова и перейти не-

посредственно на точку входа DLL.

Чтобы получить описатель (Handle) DLL/EXE, можно использовать

вызов API GetModuleHandle или другие функции для получения точек

входа модуля, включая функцию получения адреса API GetProcAddress.

Как вызывать API, имея возможность вызывать его и в то же время та-

кой возможности не имея? Ответ: вызывать API, расположение которо-

го в памяти известно - это API в файле KERNEL32.DLL, он находится

по постоянному адресу.

Вызов API приложениями выглядит приблизительно так:

call APLFUNCTIONJMAME



Содержание раздела