Не найдена точка входа в процедуру в библиотеке kernel32.dll. решаем самостоятельно!

Как исправить ошибки Kernel32.dll

1. Перезагрузите компьютер. Возможно ошибка kernel32.dll была случайностью.

2. Если сообщение об «ошибке неверной страницы в модуле Kernel32.dll» появляется только при запуске определённой программы, переустановите её, в нашем случае, это программа Skype.

Скорее всего, проблема заключается именно в этом приложении. Так что его удаление или переустановка должны исправить ситуацию.

Убедитесь, что установили все пакеты обновлений или патчи доступные для программы. Один из них может решить проблему с kernel32.dll, вызываемую приложением. При необходимости, вы можете перестать пользоваться программой, которая вызывает ошибку.

3. Восстановите потенциально повреждённый файл списка паролей. Прибегайте к этому варианту решения, только если у вас установлен Windows 95 или Windows 98, а ошибка kernel32.dll вызывается приложениями «Explorer», «Commgr32», «Mprexe», «Msgsrv32» или «Iexplore».

4. Восстановите повреждённые файлы thumbs.db. Часто причиной появления сообщения «Explorer вызвал ошибку неверной страницы в модуле Kernel32.dll» становится повреждённый файл thumbs.dll в директории или папке, к который вы пытаетесь получить доступ.

5. Ваши DLL файлы сохранены на рабочем столе? Если так, то удалите их. Это иногда может вызывать ошибки kernel32.dll.

6. Проведите проверку на вирусы. Некоторые из вирусов, помимо другого ущерба вашему компьютеру, могут вызывать ошибки kernel32.dll. Лечение вируса может полностью решить проблему.

7. Обновите драйверы всех устройств, которые могут быть связаны с ошибкой kernel32.dll. Например, если сообщение об ошибке появляется, когда вы пытаетесь напечатать документ, обновите драйверы принтера.

Если вы подозреваете, что нужно обновить драйверы, но не знаете с чего начать, обновите драйверы видеокарты. Устаревшие драйверы видеокарты иногда могут стать причиной ошибок kernel32.dll.

8. Снизьте аппаратное ускорение в настройках видеокарты. Хотя это случается нечасто, на некоторых компьютерах источником проблем являются стандартные параметры аппаратного ускорения, установленные на максимум.

9. Вы разгоняли свой компьютер? Если да, попробуйте сбросить настройки аппаратного обеспечения на рекомендованные производителем. Разгон является известной причиной возникновения проблем с kernel32.dll.

10. Протестируйте память на наличие повреждений. Сообщения об ошибке kernel32.dll, появляющиеся при запуске случайных программ и других действиях в Windows, могут быть признаком неполадок памяти компьютера. Одна из этих программ точно определит, имеются ли у вас проблемы с памятью.

Замените память, если она не пройдёт один из ваших тестов.

11. Восстановите Windows. Если переустановка отдельных приложений и тестирование аппаратного обеспечения не помогли решить проблему, восстановление Windows должно заменить все повреждённые файлы, которые вызывают ошибку kernel32.dll.

12. Установите чистую версию Windows. В процессе этого вы полностью удалите Windows с вашего компьютера и установите его заново.

Важно: Я не рекомендую пользоваться этим решением, если вы не уверены в том, что ошибку kernel32.dll не вызывает отдельная программа (шаг №2). Если проблема заключается в каком-то приложении, переустановка Windows и последующая установка этой программы вернут вас в исходное положение

14. Если никакие способы, включая полную переустановку системы, не помогли, скорее всего, проблема заключается в жёстком диске или другом оборудовании.

Если причина в жёстком диске, замените его и установите Windows заново.

Где встречается

В зависимости от текста ошибки kernel32.dll, она может касаться любого числа программ и любой операционной системы компании Microsoft: Windows 95, Windows 7, Windows Vista, Windows XP или Windows 8.

Вас всё ещё беспокоят ошибки Kernel32.dll?

Свяжитесь со мной через социальные сети, технические форумы или другие средства. Расскажите о том, какая конкретно проблема возникла у вас и какие шаги вы уже предприняли для её решения.

Устранение

Ошибки возникают на всех операционных системах семейства Windows. Чаще всего, ошибка вызвана одним конкретным приложением, реже — возникает при запуске нескольких программ.

Важно! Искать в интернете информацию о том, где скачать KERNEL32.dll, не имеет смысла, так как вы можете загрузить совершенно другую библиотеку или вирусный файл. Кроме того, если возникает такая ошибка, это не значит что искомая библиотека повреждена.. Рассмотрим варианты решения данной проблемы:

Рассмотрим варианты решения данной проблемы:

Если упомянутая ошибка появилась всего один раз, просто перезагрузите ваш ПК. Возможно произошел системный сбой, который устранится после перезапуска компьютера.
Переустановите программу, с которой возникли проблемы. Если есть возможность, устанавливайте программы только с официальных источников. Возможно недавно установленные обновления запускаемой программы спровоцировали конфликт.
Проведите проверку вашего компьютера на вредоносное ПО. Некоторые вирусы провоцируют вызов подобных ошибок. В этом помогут бесплатные сканеры Dr.Web CureIt! и Kaspersky Virus Removal Tool.

Если ошибка возникает при подключении или активации какого-либо устройства (например запуск веб-камеры в Skype) — обновите или переустановите драйвер на это оборудование. Все манипуляции поможет выполнить «Диспетчер устройств».

Если вы занимались разгоном процессора или видеокарты, это могло послужить причиной ошибки. Верните частоты процессора и другие настройки в исходное состояние.
Ошибка может указывать на проблему в аппаратной части компьютера. В этом случае сканируйте оперативную память на наличие ошибок с помощью memtest86 или другими аналогами. В случае ошибок или указание на неисправность RAM-модуля, замените его на рабочий.

Если указанные способы не помогли — переустановит Windows. Скачать образ Windows 10 можно здесь, Windows 8.1 — здесь, а Windows 7 — здесь. Записать образ на флешку поможет эта статья.
Если же после переустановки ОС проблема осталась, вероятно что какая-либо аппаратная вышла из строя

Обратите внимание на жесткий диск — бэды и битые сектора могут послужить причиной упомянутых выше ошибок.

Надеюсь материал статьи поможет устранить ошибку, связанную с библиотекой KERNEL32.dll. Если необходима помощь — используйте средство обратной связи чтобы задать свой вопрос.

Варианты решения ошибки Kernel32.dll

Единичный системный сбой. По счастливой случайности ошибка kernel32.dll может быть единичным случаем, можно выполнить перезагрузку компьютера. После перезапуска windows возможно проблема уйдет сама собой.

Переустановить программу, с которой возникла ошибка. Если вы заметили появление ошибки при использовании одной программы, а в работе другого софта такого не замечено, самым правильным решением в данном случае будет скачать софт с официального сайта и установить. Только предварительно удалить с компьютера старую версию ПО. Возможно ошибка была связана с обновлением ПО, некачественным софтом, или коряво ломаным. А еще как вариант, можно обновить ПО до актуальной версии, или установить патчи которые доступны для программы.

Возможно вирусное заражение. Для начала нужно убедиться, что в папке с системными файлами присутствует файл KERNEL32.DLL а не kernel32.exe.

Если увидите нечто подобное в папке System32, значит, на компьютере имеются вирусы.

Следует проверить компьютер на наличие вирусов бесплатными утилитами, такими как Dr.Web Cureit! и Kaspersky Virus Removal Tool.

Ошибка при подключении любого оборудования. Бывают ситуации, когда ошибка выскакивает при подключении или активации оборудования. К примеру, при включении веб-камеры в Skype. То следует переустановить или обновить драйвер оборудования, в нашем случае веб-камера, до актуальной версии, также можно попробовать установить на одну версию ниже от актуальной. Обновление драйвера можно выполнить через «Диспетчер устройств». На фирменное оборудование драйвера можно скачать с сайта производителя.

Разгон процессора, видеокарты или изменили тайминги на оперативной памяти. Если проводили настройки по разгону процессора или видеокарты, памяти, это также может послужить причиной ошибки. Для решения необходимо вернуть все настройки в исходное состояние.

Произвести проверку системных файлов.  Нужно запустить проверку системных файлов windows средствами ОС. Для этого запустите командную строку с правами администратора, наберите в строке sfc /scannow и нажмите Enter. Система выполнит проверку поврежденных файлов и по возможности восстановит их.

Возможны проблемы с оперативной памятью. Так как библиотека kernel32.dll отвечает за управление оперативной памятью в плане записи и чтения, проблема так же может скрываться за оперативкой. Для исключения проблем с оперативкой, ее нужно просканировать на наличие ошибок с помощью утилиты memtest86 или подобными аналогами, которых значительное количество. В случае обнаружения ошибок, необходимо заменить планку ОЗУ на заведомо рабочую.

Переустановите Windows. Если перечисленные способы не помогли, нужно переустановить ОС windows. Которые Вы всегда можете скачать с официального сайта Microsoft. Или перейти на более новую операционную систему. Скачать с официального сайта:

Возможны проблемы с жестким диском. Друзья, если после переустановки виндовс проблема не исчезла, следует проверить жесткий диск на наличие ошибок и битых секторов, которые так же могут послужить в возникновении ошибок с кернел32.

Для этого запустите командную строку с правами администратора, введите следующее. К примеру: chkdsk C: /f /r (где C: системный диск (по умолчанию) , f – проверка на наличие ошибок и их автоматическое восстановление, r – проверка поврежденных секторов и их восстановление)

Я показал на примере другой диск. В вашем случае пишите букву системного диска, на котором установлена ОС.

Вы всегда можете воспользоваться другими утилитами для проверки состояния вашего жесткого диска, такими как Victoria 4.47 или MHDDTest.

P.S. Подводя итоги, хотелось бы добавить от себя, что ошибка «не найдена точка входа в процедуру в библиотеке dll kernel32.dll» может быть связана с устаревшей версией Windows XP, на более современных ОС ошибка возникает крайне редко, но и не исключены случаи ее появления. Если вы до сих пор используете windows xp sp1, sp2, задумайтесь об обновлении до sp3 или о переходе на более современные операционные системы, такие как windows 7, windows 8 или windows 10.

Так как Билл Гейтс делает все, чтобы пользователи спрыгнули с Windows XP. Даже все те кого устраивает ОС.

По требованиям к ресурсам компьютера виндовс 10 не прожорлива и не требовательна, работает и на слабом железе. А стабильность и комфортность в работе на хорошем уровне.

Надеюсь статья поможет Вам в борьбе с ошибкой kernel32.dll. Будет великолепно, если Вы отпишитесь о том, какой способ подошел именно Вам, или Вы решили проблему другими способами. Поделитесь с другими людьми, которые ищут решение.

Что значит ошибка и причины её возникновения

В большинстве случаев появление ошибок с упоминанием kernel32.dll напрямую коррелирует с проблемами в работе системной памяти. При запуске Виндовс система загружает библиотеку kernel32.dll в защищённую область памяти, дабы другие программы не использовали указанную область для своих задач.

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

В нашем же случае появление указанного сообщения «Точка входа в процедуру SetDefaultDllDirectories не найдена в библиотеке DLL kernel32.dll» сигнализирует об отсутствии у системы данных о запрашиваемой программой функции. Обычно это вызвано использованием устаревшей версии ОС, или отсутствием в системе ряда важных системных обновлений (в частности, обновления KB2533623, предназначенного для обеспечения корректной и безопасной загрузки внешних библиотек).

При этом указанная проблема может возникнуть в любой момент работы ОС – при её запуске или завершении, во время просмотра фильма или времяпровождения за компьютерной игрой. А программами, вызывающими появление ошибки, обычно являются «Discord», «Xperia Companion», некоторые антивирусы и другие аналоги.

Способ 2: Переустановка или удаление проблемной программы

Программу можно и переустановить — если ошибка появляется только при ее запуске, вероятно, проблемы заключаются в ее работоспособности, и тогда советы по поиску проблем в ОС будут бессмысленны. Чаще всего различные неполадки с DLL происходят у пользователей пиратских копий, модифицированных версий софта из-за кривой части кода, отвечающей за взлом. Поэтому крайне желательно пользоваться лицензионными программами или хотя бы максимально «чистыми» сборками, чьи авторы вносят минимум изменений.

Для некоторых игр свойственны узконаправленные решения, связанные с изменением значений параметров конфигурационных файлов, чего невозможно рассмотреть в рамках этой статьи. Поэтому, если никакие другие наши советы не помогут, попробуйте обратиться на игровой или профильный форум либо к разработчику напрямую.

kernel32.dll Dosya Özellikleri

Versiyon Bit Boyut Açıklama İşletim Sistemi Dosya
6.2.9200.16859 32 Bit 251 KB Windows NT BASE API Client DLL Windows 10, 8.1, 8, 7, Vista, XP İndir
10.0.10586.0 32 Bit 251 KB Windows NT BASE API Client DLL Windows 10, 8.1, 8, 7, Vista, XP İndir

İşletim sistemi 32 bit olan kullanıcılar indirme sırasında indirdikleri DLL dosyasının 32 bit, 64 bit kullanıcılar ise 64 bit olarak indirdiklerine emin olması gerekmektedir. Bilgisayarınızdaki Windows sürümü 32 bit mi, yoksa 64 bit mi? bilmiyorsanız Windows Sürümüm 32 Bit mi, Yoksa 64 Bit mi? sayfasına girerek öğrenebilirsiniz.

sırasında anlatılan yöntemleri sırası ile paragraf, paragraf okuyunuz ve bilgisayarınızda anlatılan şekilde uygulayınız.

DLL uyarısını kaldıramayan kullanıcıların sıklıkla yapmış olduğu eksiklik, işlemleri okumamalarından kaynaklandığı gözlemlenmiştir. Sayfa içerisinde bulunan yöntemleri dikkatli olarak okumanızı, anlamadığınız işlemleri alanından sormanızı tavsiye ediyoruz.

Что это такое

Впервые столкнувшись с этой проблемой, многих пользователей закономерно интересует, что это такое, и как решить проблему с DLL kernel32.dll.

В основе любого компьютера лежит операционная система. Именно на ней всё работает, функционирует и запускается. Сердцем самой ОС выступает папка System32. Логично предположить, что всё её содержимое также играет ключевую роль. К числу содержимого относится и рассматриваемая библиотека.

Но это всё равно не даёт до конца понять, что означает библиотека DLL kernel32.dll. Если перевести название файла с английского, то получится ядро. Уже из этого можно сделать вывод, что файл крайне важен. Без него операционная система, как и весь компьютер, не смогут работать эффективно и стабильно. Возникнет множество сбоев и неполадок.

Рассматриваемый файл входит в число важнейших системных библиотек. Когда запускается любой софт на компьютере, операционная система отправляет запрос на подгрузку тех или иных библиотек, необходимых для работы конкретного программного обеспечения. Если хотя бы одна из используемых библиотек не будет обнаружена, возникнет соответствующая ошибка.

Сам файл kernel32.dll выступает в роли обработчика содержимого оперативной памяти. Без него ряд игр и программ попросту не будут работать.

Всё это заставляет решать вопрос о том, как устранить возникающую ошибку kernel32.dll, и что нужно делать в той или иной ситуации.

Есть несколько популярных вопросов, связанных с ошибкой kernel32.dll, на которые пользователи активно ищут ответы. Потому будет логично их рассмотреть.

Прежде всего, надо знать, в каких версиях ОС Windows может появляться ошибка kernel32.dll. Вопросами о том, как исправить подобную проблему, задаются юзеры всех актуальных версий ОС Windows. Потому столкнуться с ней могут пользователи ПК и ноутбуков, где установлена Windows XP, Windows Vista, ОС от Microsoft 7,8 и самого последнего 10 поколения.

Если произошла ошибка с файлом kernel32.dll, тогда надо заменить его. Для этого достаточно загрузить новый системный файл, причём желательно с официального сайта разработчика, и вставить его вместо старого.

Также важно знать о том, куда кидать новый файл kernel32.dll в случае замены библиотеки. Он находится непосредственно в папке system32

Можно пролистать папку и найти его либо воспользоваться встроенным инструментом поиска. Это также и ответ на вопрос о том, где находится искомая библиотека динамической компоновки в лице kernel32.dll.

Dll файлы — что это на моем ПК ?

Формат DLL — это динамическая библиотека, которая отвечает за получение доступа различными программными системами к общедоступным системным функциям. Довольно часто DLL-файл является частью основных элементов операционной системы Windows. Формат файла, такой как библиотека ссылок, также может быть частью прикладных программ. Многие из динамических библиотек способствуют реализации программных функций, которые отвечают за подключение к внешним устройствам или работу с жесткими дисками. Применение файла DLL также встречается в кроссплатформенных приложениях для Mac, однако основное распространение Dynamic Link наблюдается в операционной системе Windows, которая не может обойтись без DLL. Аналогичный тип файла можно найти в системе IBM OS / 2. Поскольку файл .dll может содержать системные файлы, его изменение или полное удаление может привести к ошибкам и сбоям не только в производительности определенного программного обеспечения, но и во всей ОС. Эксперты не рекомендуют неопытным пользователям открывать или редактировать файл .dll без необходимости.

Методы разрешения этой проблемы

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

Метод 1: Решение проблемы с помощью DLL Suite

Данное приложение содержит в себе всевозможные инструменты, к которым относится и утилита, способная установить DLL. Помимо выполнения стандартного функционала, эта программа сможет скачать необходимую и нужную библиотеку в определенную папку на вашем персональном компьютере. Такой «подарок» может позволить вам спокойно скачать DLL лишь на один персональный компьютер, а затем спокойно переместить эту библиотеку на другой ПК.

Разберемся в том, что потребуется для «разрешения этой ситуации», используя приложение DLL Suite:

  1. Вы должны нажать на раздел «Загрузить DLL», который находится в меню, расположенному в левой части программы.
  2. В поисковую строку, которая расположена в центре странички, вам нужно будет вбить имя искомого файла, в нашем случае.
  3. Теперь вы должны нажать на кнопку «Поиск», которая находится по правую сторону от поисковой строки, в которую до этого вы вбивали имя файла.
  4. Как только закончится поиск, программа выдаст результаты, и вы сможете нажать на имя библиотеки, на которую вы и перейдете.
  5. Вам нужно будет использовать файл, адрес которого имеет следующие значение — C:\Windows\System32. Для этого вам нужно будет нажать на «Прочие файлы».
  6. Теперь вам просто нужно нажать на кнопку «Загрузить», которая находится в правой стороне от этого файла.
  7. В выплывшем окошке вам нужно будет выбрать путь копирования. Как только вы укажите этот путь, вы можете нажимать на кнопку «Ок».

Теперь установленная вами библиотека kernel32.dll находится в системе вашего персонального компьютера. В данной программе вы теперь можете кликать на кнопку «Открыть папку», что обозначает наличие ее на вашем ПК.

Метод 2: Скачивание библиотеки kernel32.dll

Реализация данного метода происходит без каких-либо программ, вы сами должны будите установить DLL, скачав ее с определенного ресурса, который может дать вам такую возможность. Как только загрузка закончится, скаченная библиотека попадет в папку загрузок. Далее вам нужно будет переместить установленную библиотеку по определенному пути: C:\Windows\System32.

Порядок действий достаточно прост, вам нужно будет, зажав правую кнопку мышки, выбрать файл и выбрать действия в появившемся меню «Копировать». Затем перейти в нужную папку (путь — C:\Windows\System32) и, опять же нажав на правую кнопку мышки, выбрать в появившемся меню «Вставить». Или вы можете сразу открыть обе папки, которые вам потребуются, и «перетащить» библиотеку из «Загрузок» в нужную директорию.

Возможна такая ситуация, что система будет отказываться перезаписывать новую версию скаченной библиотеки. В таком случае вам потребуется перезагрузить ваш компьютер, используя безопасный режим, и повторить все «действия». В случае, если и это не поможет, вам придется загружать все с «реанимационного» диска.

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

Методы исправления ошибки

В дальнейшем будут перечислены способы решения проблемы, которые подходят для разных случаев.

Как и говорилось ранее, для начала необходимо попробовать перезапустить устройство, это поможет устранить ошибку, в случае, если виноват небольшой лаг в системе.

В случае если такое сообщение выскакивает только при запуске или работе определенного приложения, нужно его переустановить. Вполне возможно, что в ходе работы утилита нахватала ошибок или была повреждена. В этом случае, установка чистой и лицензионной программы может помочь.

Также следует проверить компьютер на вирусы. Сбой может возникать из-за них, и полное и глубокое сканирование с последующим удалением или излечением зараженных файлов спасет ситуацию. Некоторые вредоносные программы любят подменять файл dll на файл ехе. Если антивирус слабый или бесплатный, можно загрузить с сайта Касперского их утилиту, записать ее на флэшку и загрузиться с нее. Такая проверка, проведенная не из системы, поможет найти все вирусы.

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

Разгон процессора, видеокарты или изменение тайминга на оперативной памяти. Пользователи делают такие вещи для ускорения работы компьютера, чтобы он не тормозил, чтобы запускались и не лагали игры, однако, это может стать причиной множества проблем. Стоит сбросить настройки до стандартных.

Сбой может происходить из-за повреждения системных файлов. Это следует проверить при помощи встроенных средств. Стоит зайти в меню пуск и найти командную строку, которую потребуется запустить от имени администратора. В ней следует ввести оператор sfc /scannow.

Эта команда проверит данные, и восстановит поврежденные файлы, если есть такая возможность.

Данная библиотека напрямую связана с оперативной памятью, так что проблемы могут быть и в ней. Стоит скачать одну из множества утилит, которые занимаются ее проверкой. Делать они это должны не из системы, а при запуске с отдельного носителя. Например, memtest86, является хорошей утилитой, которая поможет обнаружить сбои. Если они нашлись, то может потребоваться замена планки памяти.

Также пользователю можно провести полную проверку жесткого диска. Это можно сделать в командной строке при помощи оператора chkdsk C: /f /r. А можно воспользоваться одной из утилит, которые работают из-под dos, например, victoria. Эта программа может работать и в виндовс, однако сканирование происходит дольше и будет менее точным. В случае большого количества ошибок и битых секторов стоит задуматься о смене винчестера.

Если с памятью все в порядке, то остается самый глобальный метод решения – переустановка системы. Следует загрузить лицензионный образ, в крайнем случае, чистый образ, без всяких сборок и дополнительных программ, и установит систему с него. Все дополнительные утилиты пользователь сможет поставить и сам, при этом, если ОС начнет сбоить, он узнает какая из них послужила причиной для этого.

Таблица импорта

Этот
способ отличается от приведенных выше. При загрузке PE-файла в память
загрузчик заполняет адреса соответствующих функций из соответствующих DLL, которые нужны
программе. Т.е. эти адреса хранятся внутри PE-файла, когда он загружен. Нам необходимо
получить адрес любой функции из kernel32.dll

В
таблице импорта есть два массива адресов. Один не изменяется. В нем содержаться
сразу адреса импортируемых функций. Это применимо, в частности, для системных DLL. Второй массив
заполняется при загрузке PE-файла. Чтобы найти базу kernel32.dllнадо найти таблицу импорта. В таблице импорта найти второй массив
адресов. Массивы называются IMAGE_THUNK_DATA
и описаны в WINNT.H. Первый
массив называется OriginalFirstFunk, второй FirstThunk. Точнее так называются указатели на них, определенные в WINNT.H. Вам надо хорошо
разбираться в импорте PE-файлов, чтобы понять это. Сначала мы должны найти начало зараженного
файла. Потом переходим к PEзаголовку. Далее проходим до IMAGE_DATA_DIRECTORY. Переходим к элементу с индексом 1. Элемент с индексом 1 соответствует
таблице импорта PE-файла. Сохраняем RVAи складываем его с базой нашего EXE. По найденному адресу находятся структуры IMAGE_IMPORT_DESCRIPTOR. В этой
структуре есть элемент – указатель на имя импортируемой DLL. Проверяем не kernel32.dllли это, если нет, то
идет к следующей структуре IMAGE_IMPORT_DESCRIPTOR. Если это kernel32.dll, то идем по указателю FirstThunk. Он указывает на таблицу адресов импорта или по-другому IMAGE_THUNK_DATA. Эта таблица
переписывается загрузчиком PE-файла при загрузке. Вы можете подумать, что можно из таблицы импорта
сразу взять адрес функции GetProcAddress. Но не факт что она будет там, так как сам EXE-файл может не
импортировать функцию. Вот код который выуживает адрес одной из функций
библиотеки kernel32.dll:

Код (Text):

  1. ;#########################################################################
  2. ;Процедура GetKernelImport
  3. ;Поиск адреса внутри kernel32.dll
  4. ;Вход: ничего
  5. ;Выход:В eax — адрес внутри kernel32.dll
  6. ;#########################################################################
  7. GetKernelImport proc
  8.     push esi
  9.     push ebx
  10.     push edi
  11.     call x
  12. x:
  13.     mov esi,dword ptr ;в esi — смещение данной команды
  14.     add esp,4;выравниваем стек
  15.     and esi,0FFFF0000h;используем гранулярность
  16. y:
  17.     call ValidPE;начало EXE-файла?
  18.     .IF eax==0;если нет, то ищем дальше
  19.         sub esi,010000h
  20.         jmp y
  21.     .ENDIF
  22.     mov ebx,esi;в ebx теперь будем хранить базу
  23.     assume esi:ptr IMAGE_DOS_HEADER
  24.     add esi,.e_lfanew;в esi — заголовок PE
  25.     assume esi:ptr IMAGE_NT_HEADERS
  26.     lea esi,.OptionalHeader;в esi — адрес опционального заголовка
  27.     assume esi:ptr IMAGE_OPTIONAL_HEADER
  28.     lea esi,.DataDirectory;в esi — адрес DataDirectory
  29.     add esi,8;в esi — элемент 1 в DataDirectory
  30.     mov eax,ebx
  31.     add eax,dword ptr ;в eax — смещение таблицы импорта
  32.     mov esi,eax
  33.     assume esi:ptr IMAGE_IMPORT_DESCRIPTOR
  34. NextDLL:
  35.     mov edi,.Name1
  36.     add edi,ebx
  37.     .IF DWORD PTR ==»NREK»;черт, мы могли бы написать так:
  38.     .IF TBYTE PTR ==»LLD.LENREK», но нас сдерживает формат машинной
  39.               ; команды Intel в которой константа может быть не более 4 байт
  40.         ;нашли запись о kernel32!!!
  41.         mov edi,.FirstThunk
  42.         add edi,ebx;в edi — VA массива IMAGE_THUNK_DATA    
  43.         mov eax,dword ptr ;в eax адрес какой-то из функций kernel32.dll
  44.         pop edi
  45.         pop ebx
  46.         pop esi
  47.         ret
  48.     .ENDIF
  49.     add esi,sizeof IMAGE_IMPORT_DESCRIPTOR
  50.     jmp NextDLL
  51. GetKernelImport endp
  52. ;#########################################################################
  53. ;Конец процедуры GetKernelImport
  54. ;#########################################################################

Здесь были
рассмотрены наиболее популярные и известные способы. Если у Вас есть мысли по
этому поводу, то присылайте их мне на электронную почту, обсудим вместе.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий