PDA

Просмотр полной версии : kernell32.dll



egik
28.04.2005, 18:00
у меня на днях в процеесах висело сразу около 4 процессов kernell32, нормально ли это?
и вообще может расскажите об этой библиотеке, что это за зверь?

ALEX(XX)
28.04.2005, 18:12
Если я не ошибаюсь, то это ядро винды.

HATTIFNATTOR
28.04.2005, 18:41
http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=TROJ_DESTINY.A&VSect=Sn

ALEX(XX)
28.04.2005, 18:44
Тьфу, лажанулся. Не обратил внимание на второе L. :(

egik
28.04.2005, 22:17
:'( я не знаю английский :'(
я так понял есть kernel32 и kernel32 и кто это и чем они отличаются?

drongo
28.04.2005, 23:01
:'( я не знаю английский :'(
я так понял есть kernel32 и kernel32 и кто это и чем они отличаются?

в названии темы , ты написал слово "kernell" то есть с двумя L , значит из этого следует что это зверь , который под kernel косит :) ссылку дал HATTIFNATTOR на описание удаления данного зверя .
сдаёться мне , что ты случайно 2 L написал .

egik
29.04.2005, 06:45
да, ты прав я описался, что-то у меня в последние месяцы с грамматикой проблемы, надо витамины попить ;D

egik
01.06.2005, 13:40
вот нарыл

Библиотека kernel32.dll
Теперь поговорим о kernel32.dll. Это библиотека динамической компоновки(DinamicLinkLibrary) которая содержит основные системные подпрограммы(routines) для поддержки подсистемы Win32. Процедуры, которые мы используем в своих программах для Windows, так или иначе содержаться в kernel32.dll. Например, мы завершили выполнение своего кода и хотим корректно завершиться. Надо использовать функцию ExitProcess. Она содержится в kernel32.dll. Если мы хотим использовать функции из других DLL, то в kernel32.dllесть функция GetProcAddress, которая возвращает нам указатель на требуемую функцию. Функции GetProcAddressнадо указать описатель(handle) модуля и указатель на строку с именем функции. Описатель модуля можно получить с помощью функции GetModuleHandle, которой передается указатель на строку с именем функции. Вы спросите: «А зачем получать адреса функций, если я и так могу их вызывать из своих программ?». Дело в том, что проблем с адресами API-функций нет, если у Вас есть самостоятельный исполняемый модуль. При загрузке exe-файла ОС сама находит нужные адреса с помощью функции LoadLibrary. Обычно программисты об этом и не задумываются. Но представьте, что Вы пишете вирус, а он часто не является отдельным exe-файлом, а живет внутри файла-жертвы. Ему, для своего существования приходиться ;) вызывать разные API-функции, но их адреса он не знает. В одной и той же ОС, например WindowsXP, база kernel32.dll, т.е. ее (библиотеки) начало, может быть фиксирована и иметь, например, значение 7с800000h. Но в зависимости от ситуации или операционной системы этот базовый адрес может изменяться. Наша задача писать вирусы, которые могут функционировать на, как можно, большем числе платформ. Для этого нам надо сначала найти базу kernel32.dll, а потом получить адреса нужных нам API-функций из этой библиотеки. Вообще сначала нам нужна всего одна функция – GetProcAddress. Если мы используем функции из библиотек отличных от kernel32.dll, то также GetModuleHandle. Мы предполагаем, что процесс-жертва использует функции kernel32.dll. Если нужной нам библиотеки может не оказаться в адресном пространстве процесса-жертвы, то нам понадобиться и функция LoadLibrary.

Если мы используем процедуры из этой библиотеки kernel32.dll, то она должна быть спроецирована в адресное пространство процесса. Проецирование делается при создании объекта ядра «проекция файла». Точно также, при загрузке exe-файла или его запуске, загрузчик создает его проекцию в адресном пространстве созданного процесса. Потом он просматривает таблицу импорта и проецирует все dllили exeнужные приложению. База kernel32.dll- это адрес в памяти, где начинается спроецированная в память библиотека.

оригинал
http://www.wasm.ru/article.php?article=green2red01