Virus Development Kit | Intro |
Искусство ревниво: оно требует, чтобы человек отдавался ему всецело. Микеланджело Соглашения1. Процедуры(функции) представленные в VDK используют STDCALL-соглашение о передаче параметров. Это означает, что параметры кладутся в стек. И кладутся они справа налево(последний параметр кладется в стек первым и т.д.). Также STDCALL-соглашение означает, что вызываемая функция сама выравнивает стек. Если Вы вызвали функцию из VDK, то Вы можете быть уверены, что регистры EBP, ESI, EDI, EBX, а также регистр флагов, будут такими же, какими были до вызова. Это соглашение действует, если в заголовке(о заголовке позже) функции не указано обратное. Результат выполнения функции будет помещен в регистр EAX. Т.о. функции в VDK не отличаются от большинства API-функций ОС Windows по способу вызова. Пример: Пусть дана функция IsInfect, которая проверяет заражен ли данный PE-файл. Ей на вход передается один параметр - это адрес спроецированного в память PE-файла. Пусть этот адрес находиться в регистре EAX, тогда вызов функции будет таким
Если файл уже заражен, то функция возвратит 1. Значит в регистр EAX будет помещена единица. 2. Теперь поговорим об описаниях функций в VDK. У каждой функции есть заголовок. Заголовок - это краткое описание функции и перечень параметров, которые ей передаются. Общий вид заголовка будет выглядить так:
Пример:
Ничего удивительного или страшного в заголовке нет - это просто соглашение об описании функций в заголовочных файлах masm'a(*.inc). Но если Вы хотите добавить свою функцию в VDK, Вы должны следовать этим соглашениям. Так VDK станет понятен всем вирмейкерам мира. 3. Макросы masm'а описываются также, как и функции. 4. Все функции и макросы в VDK делятся на разделы по темам их действий. Например, API functions, Networks, PE-files, Base и т.д. 5. Вы можете отправить свою функцию или макрос в VDK. Для этого Вам надо отправить мне электронное сообщение на адрес bill_tpoc@mail.ru. Функция или макрос должны удовлетворять всем приведенным соглашениям. Если Ваша функция работает, то я немедленно добавлю эту функцию в VDK с указанием автора. Прошу Вас обратить внимание на то, что соглашения нужны для того, чтобы Вы могли пользоваться чужими функциями без проблем. Я призываю всех вирмейкеров перейти на эти соглашения. 6. Если функции нужно дельта-смещение, то оно передается в последнем параметре функции и далее - в функции, храниться в регистре EBX. Как VDK может помочь при создании или защиты от вирусов?Если Вам нужно расширить функциональность Вашей программы, то Вы можете это сделать не вникая в тонкости реализации нужной операции. Вам просто нужно взять готовую функцию из VDK. А перед этим посмотреть для чего нужна та или иная функция. Вы можете использовать функции для защиты. Для этого Вам нужно исследовать их работу и понять как они работают. С уважением, Bill Prisoner / TPOC | VDK Programmer ReferenceОписание функций и макросов ExamplesПримеры использования функций и макросов VDK "От зеленого к красному"Книга о написании вирусов для Windows от автора VDK DocumentsДокументы необходимые для создания вирусов для Windows ToolsПрограммы, которые Вам помогут AboutО Virus Development Kit
|