Код ошибки 0301 c000007b lineage 2

  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  

Рекомендуемые сообщения

  • Жалоба

при запуске клиента после загрузки gameguard, новый патч, на старом патче клиент запускался без проблем
-чек файлов аптейтером результатов не дает.
— антивируса нет.
— система чиста (последние обновления)
— direct (обновлено)
— с++ и прочие библиотеки обновлено
— защитник виндовс отключен
— в свойствах файлов запрет/права на доступ не ограничены
— гугл толкового не подсказал кроме команды:

get-childitem “местоположение папки” | unblock-file
и
bcdedit /set TESTSIGNING OFF 
через PowerShell и СMD соответственно
клиент был скачан чист, с 2 разных источников, 
Help :ph34r:
657567.jpg

в просмотре событий…

12312312.jpg
12312312-2.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

26 минут назад, SereZa сказал:

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

это все уже проделано и дело лишь в Smart-Guard проверил это обычным способом, l2.bin — переименовал в l2.exe а l2.exe в l2.bin — клиент запускается на ура, дальше логина не пропускает. 

Smart-Guard суппорт не отвечает, ничего толкового пока по решениям не нашел .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?


  • Sad


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

16 часов назад, SereZa сказал:

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?

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

@Shell — сейчас скачаю тобой выложенный клиент, еще этот вариант посмотрю.
@Admin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

657567.jpg
 

такая же ошибка, проблема остается не решенной 
 . ,спасибо всем кто пытался помочь, точнее 1му ) @SereZa


  • Like


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

28 минут назад, Shell сказал:

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

да, скорее всего
Win 10 pro x64 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Скавер, дружище, решай проблему и ждём тебя на сервере, я уже заждался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

по факту:
проблема была решена переустановкой OS, была установлена последняя редакция с офф сайта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  


Гость

Эта тема закрыта для публикации ответов.

  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  

Рекомендуемые сообщения

  • Жалоба

при запуске клиента после загрузки gameguard, новый патч, на старом патче клиент запускался без проблем
-чек файлов аптейтером результатов не дает.
— антивируса нет.
— система чиста (последние обновления)
— direct (обновлено)
— с++ и прочие библиотеки обновлено
— защитник виндовс отключен
— в свойствах файлов запрет/права на доступ не ограничены
— гугл толкового не подсказал кроме команды:

get-childitem “местоположение папки” | unblock-file
и
bcdedit /set TESTSIGNING OFF 
через PowerShell и СMD соответственно
клиент был скачан чист, с 2 разных источников, 
Help :ph34r:
657567.jpg

в просмотре событий…

12312312.jpg
12312312-2.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

26 минут назад, SereZa сказал:

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

это все уже проделано и дело лишь в Smart-Guard проверил это обычным способом, l2.bin — переименовал в l2.exe а l2.exe в l2.bin — клиент запускается на ура, дальше логина не пропускает. 

Smart-Guard суппорт не отвечает, ничего толкового пока по решениям не нашел .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?


  • Sad


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

16 часов назад, SereZa сказал:

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?

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

@Shell — сейчас скачаю тобой выложенный клиент, еще этот вариант посмотрю.
@Admin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

657567.jpg
 

такая же ошибка, проблема остается не решенной 
 . ,спасибо всем кто пытался помочь, точнее 1му ) @SereZa


  • Like


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

28 минут назад, Shell сказал:

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

да, скорее всего
Win 10 pro x64 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Скавер, дружище, решай проблему и ждём тебя на сервере, я уже заждался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

по факту:
проблема была решена переустановкой OS, была установлена последняя редакция с офф сайта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  


Гость

Эта тема закрыта для публикации ответов.

Рекомендованные сообщения

    • Рассказать

Третий день не могу зайти на обт так как клиент zapuskaetsa

1539511989598.png.63658ad94dfc1f70445bf3fdb6474596.png

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Win 10.

Переписал все с++ и .нет

Переустановил видео драйвера

Переустановил dx

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Проверял через клин боот и с нового пользователя акаунта виндовс

Отключал все программы, сервисы

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

что то у вас слишком медленная реакция на проблемы сервера

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Trolya

    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

Благодаря гоогле транслате, да. То Есть я не русский но по русски понимаю и могу говорит

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

TheDominator

    • Рассказать

503c6b9c5625a04862dc6480e8f4731a0476a9d4?url=https%3A%2F%2Fthequestion.s3.eu-central-1.amazonaws.com%2F361%2F724281-b9e559ed.png

Добавьте возможность отправлять ГОЛОСОВЫЕ СООБЩЕНИЯ на форуме.

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Статус темы:

Закрыта.
  1. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Скачала игровой клиент с сайта, запускаю установку на диск С (памяти на нем предостаточно), но как только нажимаю установить, выскакивает ошибка 0xc000007b.
    Другие игры Фогейма устанавливаются нормально.
    1) Папка темп чиста.
    2) Диагностику процессов провела, ничего криминального.
    3) На вирусы проверила, ничего не обнаружено.
    4) Галка на папке для чтения снята.
    5) Хосты чисты.
    6) Перезагрузку сделала.

    [​IMG]

    Диагностика процессов:
    check4game ver=2.2.7, uptime=15m, ra
    Процессор: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
    Видео: Intel(R) HD Graphics 520 / 21.20.16.4534 / 20161007
    Видео: NVIDIA GeForce GTX 950M / 22.21.13.8199 / 20170426
    DeviceName: DISPLAY1, BPP: 32, P:True, 1920×1080
    OS(x64) Microsoft Windows NT 6.3.17763.379
    OS Name: Windows 10 Home Single Language 1809/ 19.03.2019
    .NET 4.7.2 (461814) / MEMORY: 8065 MB (4901 MB)
    report Date: 20.03.2019 23-20-10 +03:00 GMT
    игра: bns, env: bns_live, cfg: default, x32
    путь: D:GamesBlade and Soul

    Скачиваем список LSP файлов
    https://www.check4game.com/proc/lsp.txt => OK
    WinSock2 NameSpace_Catalog
    %SystemRoot%system32napinsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%System32mswsock.dll (10.0.17763.346)
    %SystemRoot%System32winrnr.dll (10.0.17763.1)
    %SystemRoot%system32NLAapi.dll (10.0.17763.134)
    %SystemRoot%system32wshbth.dll (10.0.17763.1)
    WinSock2 Protocol_Catalog
    %SystemRoot%system32mswsock.dll (10.0.17763.346)
    Скачиваем список несовместимых процессов
    https://www.check4game.com/proc/proc.txt => OK
    Список процессов
    AdminService.exe : Windows Setup API (6.1.7600.16385)
    ApplicationFrameHost.exe : Application Frame Host (10.0.17763.1)
    audiodg.exe : Изоляция графов аудиоустройств Windows (10.0.17763.346)
    browser.exe*32 (17) : Yandex (19.3.0.3022)
    browsercore32.exe*32 (3) : BrowserCore Chromium Native Process (64.0.3282.24)
    check4game.exe : check4game (2.2.7.0)
    csrss.exe (2) : csrss.exe
    ctfmon.exe : CTF-загрузчик (10.0.17763.346)
    dllhost.exe : COM Surrogate (10.0.17763.1)
    dwm.exe : Диспетчер окон рабочего стола (10.0.17763.346)
    explorer.exe : Проводник (10.0.17763.346)
    fontdrvhost.exe (2) : Usermode Font Driver Host (10.0.17763.1)
    igfxCUIService.exe : igfxCUIService Module (6.15.10.4534)
    igfxEM.exe : igfxEM Module (6.15.10.4534)
    Innova.Launcher.exe*32 : 4game (1.0.0.131)
    lsass.exe : Local Security Authority Process (10.0.17763.1)
    Memory Compression : Memory Compression
    MsMpEng.exe : MsMpEng.exe
    NisSrv.exe : NisSrv.exe
    notepad.exe : Блокнот (10.0.17763.346)
    NVDisplay.Container.exe (2) : C:Program FilesNVIDIA CorporationDisplay.NvContainerNVDisplay.Container.exe
    nvtray.exe : NVIDIA Settings (7.17.13.8199)
    PrtScr.exe*32 : PrtScr (1.5.0.0)
    Registry : Registry
    RuntimeBroker.exe (6) : Runtime Broker (10.0.17763.1)
    SearchFilterHost.exe : Microsoft Windows Search Filter Host (7.0.17763.168)
    SearchIndexer.exe : Индексатор службы Microsoft Windows Search (7.0.17763.346)
    SearchProtocolHost.exe : Microsoft Windows Search Protocol Host (7.0.17763.168)
    SearchUI.exe : Search and Cortana application (10.0.17763.348)
    SecurityHealthService.exe : SecurityHealthService.exe
    SecurityHealthSystray.exe : Windows Security notification icon (10.0.17763.1)
    service_update.exe*32 (2) : Yandex (19.3.0.3022)
    services.exe : services.exe
    SgrmBroker.exe : SgrmBroker.exe
    ShellExperienceHost.exe : Windows Shell Experience Host (10.0.17763.1)
    sihost.exe : Shell Infrastructure Host (10.0.17763.1)
    SkypeApp.exe : SkypeApp (8.41.0.54)
    SkypeBackgroundHost.exe : Microsoft Skype (8.41.0.54)
    smartscreen.exe : SmartScreen Защитника Windows (10.0.17763.346)
    smss.exe : smss.exe
    spoolsv.exe : Диспетчер очереди печати (10.0.17763.346)
    svchost.exe (2) : svchost.exe
    svchost.exe (65) : Хост-процесс для служб Windows (10.0.17763.346)
    SystemSettings.exe : Параметры (10.0.17763.346)
    taskhostw.exe : Хост-процесс для задач Windows (10.0.17763.346)
    TiWorker.exe : Windows Modules Installer Worker (10.0.17763.1)
    TrustedInstaller.exe : Установщик модулей Windows (10.0.17763.346)
    Wacom_Tablet.exe : Tablet Service for professional driver (6.3.33-3)
    Wacom_TabletUser.exe : Tablet user module for professional driver (6.3.33-3)
    Wacom_TouchUser.exe : Touch User Mode Driver (6.3.33-3)
    WacomHost.exe*32 : Wacom Load Agent (1.0.0.2)
    WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe : WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe (10.0.17763.292)
    wininit.exe : wininit.exe
    winlogon.exe : Программа входа в систему Windows (10.0.17763.346)
    WinStore.App.exe : Store (11811.1001.18.0)
    WmiPrvSE.exe (2) : WMI Provider Host (10.0.17763.1)
    WTabletServicePro.exe : Tablet Service (6.3.33-3)
    YourPhone.exe : YourPhone.exe (1.0.190228004-19031)
    Список служб
    AtherosSvc : AtherosSvc
    Audiosrv : Windows Audio
    DiagTrack : Функциональные возможности для подключенных пользователей и телеметрия
    DusmSvc : Использование данных
    igfxCUIService2.0.0.0 : Intel(R) HD Graphics Control Panel Service
    NVDisplay.ContainerLocalSystem : NVIDIA Display Container LS
    SecurityHealthService : Служба «Безопасность Windows»
    SEMgrSvc : Диспетчер платежей и NFC/защищенных элементов
    SgrmBroker : Брокер мониторинга среды выполнения System Guard
    Spooler : Диспетчер печати
    TrustedInstaller : Установщик модулей Windows
    Wcmsvc : Диспетчер подключений Windows
    WdNisSvc : Служба проверки сети Windows Defender Antivirus
    WinDefend : Антивирусная программа «Защитника Windows»
    WlanSvc : Служба автонастройки WLAN
    WSearch : Windows Search
    WTabletServicePro : Wacom Professional Service
    YandexBrowserService : Yandex.Browser Update Service
    cbdhsvc_2e7f8 : Пользовательская служба буфера обмена_2e7f8
    CDPUserSvc_2e7f8 : Служба пользователя платформы подключенных устройств_2e7f8
    OneSyncSvc_2e7f8 : Синхронизация узла_2e7f8
    WpnUserService_2e7f8 : Пользовательская служба push-уведомлений Windows_2e7f8

  2. Примените один из reg файлов отсюда http://cdn.inn.ru/support/files/4game_uninstalled.rar в соответствии с разрядностью системы. Удалите все, что удаляется в папках C:WindowsTemp и по пути %USERPROFILE%AppDataLocalTemp. После этого перезагрузите ПК и попробуйте установить ещё раз. Если не получится, сделайте скрин ошибки.

  3. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0
  4. Cкопируйте файл cmd.exe из папки CWindowsSystem32 и поместите его в CWindowsSysWOW64
    И выполните починку клиента с помощью утилиты check4game.

  5. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Это невероятно, но началась загрузка! Спасибо!
    Но ошибка 0xc000007b все равно появилась вначале, когда я нажала на кнопку «Установить». Надеюсь, это не повлияет на работу игры…

  6. Обращение тогда пока не закрываем, если возникнут новые проблемы напишите.

  7. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0
  8. По стрелочке не выбирается устройство воспроизведения звука?

  9. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    По стрелочке пустой список

  10. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Все заработало! Вы — мой спаситель!

  11. Рада была помочь! Приятной игры!

Статус темы:

Закрыта.
  • 10 Entries
  • 15 Entries
  • 20 Entries
  • 25 Entries
  • Latest Replies
  • GamezAION
  • GamezBD
  • Aion Market
  • Top Threads
  1. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    How to fix?
    Help please

    Attached Files:

    • report.png

  2. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    I have that error too. I tried the ‘force check’ function of the launcher with no success.
    The error pops up once the anti-cheat window opens, just before the game itself would launch.

  3. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    Did you find the solution?

  4. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    No. I re-added the game folder to my anti-virus, no success.

    Edit: Might have something to do with the latest Windows 10 update.

  5. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
  6. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Downloaded another update to Windows 10, updated video drivers, no change.

  7. Reignover
    New Member

    Joined:
    May 29, 2018
    Messages:
    2
    Likes Received:
    1
    Trophy Points:
    118

    I have the same problem, Windows 10 fully updated, using windows defender, already put the game folder and all the executables as exceptions, whitelisted the exe’s at the firewall and turned firewall off too, all drivers up to date, no GeForce Experience or any overlay bullshit, everything running as admin, still get the error everytime i start the game.
    @edit: its a smartguard problem, i used the windows event viewer and found out that the error is that the smartguard fail to initiate with the message: Service failed to start due to internal error: 0xc000007b
    I knew smartguard was trouble in windows 10 because i’ve played lineage 2 servers who used it and they always had to provide the windows 10 users some patch to play, hope the devs read this.

    Last edited: Sep 14, 2018

  8. AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    same issue here but run win7 and no issues with any other game. Tried adding to exceptions on Avira and get a new error about missing files

  9. GFrost
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    I hadt he same problem the my 1rst issue was the 0301 code but I solved it when I installed new C++ runtime (2017)now I have message with this:
    https://imgur.com/a/FyYkCZa

    I did the same trouble shooting and I use win7,too

  10. AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    that is the message i got too. made sure everything is up to date and going to install full client and maybe that will work. I wish someone had a real solution to thiswin7 here and getting same issues.

    Last edited by a moderator: Sep 15, 2018

  11. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    [​IMG]

  12. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    >Tried uninstalling/reinstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit)
    >Tried uninstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit) and installing Microsoft Visual Studio C++ 2015 (32 and 64 bit). (Both can not be present at the same time, it seems)
    >Ensured .Net Framework was latest version available
    >Tried «Run as administrator» for both .exe files present in the C:/ProgramData/SmartGuard/bdo/smrt3d/beta/data/(bunch of letters and numbers) folders.
    >Added above folders to antivirus exceptions
    >Added both .exe files in above folders to firewall exceptions

    No results.

  13. mark123
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    26
  14. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Also checked out the website for SmartGuard (https://smart-guard.eu/en). Unfortunately I can’t access their forums unless I buy the product first.

  15. Kolka
    <Prison Officer>
    Staff Member
    Super Moderator

    disable UAC in windows, make sure u have SYSTEM use in list of users in Security Tab in properties of bin64/BlackDesert64.bin file. Also make sure u not set default programm to bin64/BlackDesert64.bin file.

  16. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Not sure what you mean by this.

    Update:

    I attempted to roll back my windows 10 updates, and ended up bricking my OS. So, I started fresh with a clean install.
    This fixed the error I was having, but introduced the ‘Failed to init security’ error. To fix this, I attempted everything I could think of. Nothing worked until I tried the solution in post number 2 in this thread:
    http://forum.gameznetwork.com/threads/i-dont-understand-why.220737/#post-2128862

    Specifically the program you can download here: https://www.computerbase.de/downloads/systemtools/all-in-one-runtimes/

    Now I’m chopping trees like it’s 1999.

    Hope this helps!

    Last edited by a moderator: Jan 17, 2019

  17. alexutzu1011
    New Member

    Joined:
    Dec 8, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    can you be more explicit please? maybe more details or some screenshots would be awesome. ty

Share This Page

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название «Ошибка при запуске приложения (0xc000007b)» и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться вообще, либо всё же запускаются, но далеко не всегда. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей аж со времен Windows 98, просто формулировались иначе. Начиная с версии Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики по причинам, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

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

Данная статья представляет собой всего-лишь теоретические выкладки по исследованию загрузчика образов операционной системы Windows. Изучение проводилось с целью создать базис для предполагаемого дальнейшего изучения особенностей кода загрузчика. На данный момент рекомендаций по исправлению ошибки c000007b в данной статье не предоставлено, поскольку практика показала неоднозначность популярных решений с использованием утилит Dependency Walker и Process Monitor.

Формат исполняемых файлов

Приступим. Для начала давайте посмотрим, что же нам сообщают разработчики об ошибке со статусом c000007b на официальной странице значений NTSTATUS? Ошибка носит символическое имя STATUS_INVALID_IMAGE_FORMAT (НЕКОРРЕКТНЫЙ ФОРМАТ ОБРАЗА), а в описании к ней присутствует следующая формулировка: «Образ либо не предназначен для выполнения в Windows или содержит ошибку..», ну и далее даются общие рекомендации. Как всегда, довольно пространное определение, не содержащее в себе значимых подробностей, однако уже позволяющее нам сделать как минимум два предположения:

  1. ошибка может содержаться в служебных структурах заголовка основного запускаемого модуля (exe-файл);
  2. ошибка может содержаться в подключаемых образах (dll-библиотеках);

Ну хорошо, а что же в себе таит утверждение о некорректном формате? Возможно, подразумевается некое повреждение структуры PE-образа? Но ведь близких по природе ошибок в PE-образе, чисто теоретически, может быть великое множество, и скорее всего так оно и есть. Одним словом, это утверждение о повреждении структуры исполняемого образа требует проверки и аргументации!! В свою очередь, для проверки следовало бы отследить, какой именно код ядра и на каком этапе выводит данное сообщение. Вероятно, если мы наблюдаем подобную ошибку до запуска приложения, то от момента щелчка правой кнопкой мыши по бинарному исполняемому файлу (например: exe-файл) в проводнике Windows (explorer.exe) и до непосредственного начала выполнения кода приложения, проходит некая скрытая от глаз пользователя работа на уровне ядра операционной системы и вот как раз эта самая работа иногда завершается с ошибкой. Одни вопросы порождают другие. Думаю, для лучшего понимания того, какая именно логика скрывается за безмолвием загрузки, надо сперва задаться вопросом «что же вообще такое представляет из себя исполняемый файл в среде Windows и как он загружается»? Всякий бинарный исполняемый файл в Windows построен на основе формата под названием PE (Portable Executable, переносимый исполняемый), который содержит в себе великое множество разнообразных секций, предназначенные для подготовки участков файла (они же блоки кода и данных), критичных для непосредственного выполнения приложения.

Portable Executable (PE) — формат исполняемых файлов и динамических библиотек, используемый в операционных системах Microsoft Windows. Фактически это довольно сложная структура данных, в которой содержится информация, необходимая системному загрузчику исполняемых образов, то есть коду ядра, который производит всю необходимую работу по подготовке исполняемого файла к непосредственному запуску (создание адресного пространства процесса, отображение файла в память, создание всех необходимых для функционирования системных конструкций и прч). В операционных системах Windows описываемый формат PE применяется при создания таких исполняемых файлов как: .exe, .dll, .sys и некоторых других.

Выходит, в системе имеется некий загрузчик образов (PE-загрузчик), естественно, ведь кто-то должен подготавливать код и данные к непосредственному исполнению. Это отлично укладывается в логику функционирования операционной системы, к тому же я про него время от времени краем уха слышал. Но это, извините, закопано где-то системе, с чего нам начать? Давайте начнем с малого, с формирования тестовой среды:

  • Операционная система: Windows 7 Профессиональная (Русская), 32-разрядная (6.1.7601) (32-битную среду я выбрал для простоты, дабы WOW64 не вносил свои коррективы);
  • Простой исполняемый модуль lasterr.exe из комплекта примеров FASM (EXAMPLESDLL) с минимумом подключаемых библиотек. Опять же, для простоты;
  • Отладчик WinDbg (версия 10.0.14321.1024) из комплекта Debugging Tools for Windows (x86);
  • Утилита Process Monitor;

Процесс загрузки образа

В моем случае, при отсутствии необходимых знаний, придется двигаться с самого начала, при этом интуитивно выискивая направления по косвенным признакам. Все те данные, которыми мы обладаем на текущий момент, подводят нас к мысли, что надо каким-то образом зацепиться за этот пресловутый загрузчик образов, но как? Единственное, что приходит в голову, так это использовать всеми нами любимую утилиту Process Monitor. Зная специфику программы, можно заранее предположить, что это будут лишь поверхностные сведения, поскольку утилита не покажет нам подробности многих этапов загрузки образа на выполнение. Но ведь что-то она нам все же даст, ведь пока мы идем в темноте и пытаемся нащупать хотя бы какие-то ориентиры для дальнейшего продвижения. Просто будем надеяться, что информация, предоставляемая нам утилитой Procmon поможет нам двинуться дальше, найти зацепку в виде каких-нибудь малозаметных деталей. Тут стратегия у нас будет достаточно простая, ничего необычного.

  1. Из-под учетной записи с правами локального администратора запускаем утилиту Procmon;
  2. В разделе Filter создаем фильтр на наше приложение lasterr.exe;
  3. Останавливаем захват событий (Ctrl+E или иконка лупы на панели);
  4. Очищаем лог (Ctrl+X или значок ластика на панели);
  5. Снова включаем захват (Ctrl+E) событий;
  6. Стартуем наблюдаемое приложение lasterr.exe, как обычно двойным щелчком из проводника;

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

  1. Образ приложения lasterr.exe загружается в адресное пространство собственного процесса по адресу 0x400000. То есть мы наблюдаем какой-то из этапов уже работающего загрузчика образов;
  2. Образ системной библиотеки ntdll.dll загружается в адресное пространство процесса по адресу 0x77c30000. Эта библиотека всегда загружается первой?
  3. Активизируется ускоритель prefetcher. В системной директории C:WindowsPrefetch проверяется .pf-файл(ы) для запускаемого приложения;
  4. Чуть ниже мы можем увидеть группу событий по операциям (CreateFile, SetBasicInformationFile, QueryAttributeTagFile, CreateFileMapping, QueryStandardInformationFile) с библиотеками ntdll.dll, kernel32.dll, apisetschema.dll, kernelbase.dll, locale.nls, errormsg.dll, user32.dll и прочими. Судя по всему это не проецирование образов, а события, генерируемые prefetcher’ом;
  5. Ниже по списку мы наблюдаем первые события с операцией Load Image, которые знаменуют собой загрузку необходимых приложению DLL библиотек в адресное пространство процесса;
  6. Еще ниже по списку событий мы наблюдаем чтение ветки HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options. Имеется в виду механизм, которых позволяет запускать образы под отладчиком;
  7. Далее мы видим считывание ключа реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVrsionWindowsLoadAppInit_DLLs. Ключ ответственен за механизм AppInit_DLLs, который позволяет определить списки DLL, загружаемые в адресное пространство «каждого» процесса;
  8. Далее идет работа с различными языковыми опциями и MUI;

Это все, что предоставляет нам Procmon. Но на самом деле в приведенном выше списке мы видим очень малую часть логики, так сказать её вершину. Обусловлено это тем, что Process Monitor показывает лишь то, до чего может сам дотянуться, и не отображает всего многообразия операций по подготовке приложения к запуску. (прим.: хотя, возможно я забыл отключить какие-то встроенные фильтры). Но даже малое порой представляет собой большое, все дело в точке зрения :) Давайте посмотрим, о чем на могут рассказать захваченные Process Monitor’ом события? Например, событие Load Image применительно к образу lasterr.exe по загрузке себя же самого по базовому адресу 0x400000 в адресное пространство процесса, определенно будет нам интересно. Щелкнем по нему пару раз и перейдем во вкладку Stack. Стек вызовов начинается с функции RtlUserThreadStart, которая является частью системной библиотеки ntdll.dll. Библиотека ntdll.dll предоставляет собой «родной» интерфейс (Native API) пользовательского режима для функций ядра, это своеобразный «мост» между функциями библиотек пользовательского режима и кодом, который реализует соответствующий функционал в ядре. Функция RtlUserThreadStart именуется подобным образом не спроста, название говорит само за себя, намекая нам на назначение данной функции. Предположительно она предназначена для старта потока внутри процесса, при содержит функционал части пользовательского режима.

RtlUserThreadStart — общая стартовая функция для всех потоков в Windows.

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

Load Image Stack

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

LdrInitializeThunk — функция обратного вызова (режим ядра -> режим пользователя) в составе библиотеки ntdll.dll, которая не столько обратный вызов, сколько точка входа, с которой все потоки пользовательского режима начинают свое выполнение. Другими словами, создание любого потока пользовательского режима всегда происходит посредством данной функции. В некоторых источниках фигурирует как процедура инициализация загрузчика, начальный его этап, отвечает за инициализацию непосредственно загрузчика, менеджера кучи, таблиц FLS, NLS, TLS, структур критической секции. Судя по всему они с RtlUserThreadStart работают в связке, но как именно, пока не ясно.

Мы получили имена двух функций, которые, судя по всему, имеют отношение к созданию потока и подготовке его к выполнению. Теперь можно переходить непосредственно к практической части исследования. Надеюсь, перед началом экспериментов у Вас уже готова тестовая среда и установлены Debugging Tools for Windows из комплекта Windows SDK и в системную переменную Path добавлен путь к необходимой версии каталога с отладчиками. Теперь задача перед нами стоит не совсем тривиальная, поскольку нам необходимо поймать момент запуска приложения, до его непосредственного выполнения и даже до момента подготовки адресного пространства процесса. К превеликой нашей радости, основными отладчиками от Microsoft поддерживаются фильтры событий, которые включают отладочный сценарий начальной стадии загрузки приложения. Насколько я понял, он может быть активирован двумя путями:

  • Настройка отладчика через GUI: через меню DebugEvent Filters. На фильтре события Create process указываем опцию Execution: Enabled. После перезапуска процесса отладчик остановится до функции LdrInitializeThunk.
  • Запуском отладчика со специальными опциями командной строки.

Например, следующая команда позволяет изучить процесс и установить точку останова до того, как код пользовательского режима запустится:

windbg.exe -xe ld:ntdll.dll lasterr.exe

опция xe подразумевает останов после того, как библиотека ntdll.dll будет загружена в адресное пространство процесса. И не спроста, потому как в самом отладчике, в командной строке, мы должны поставить точку останова:

bp ntdll!LdrInitializeThunk

а затем продолжить выполнение командой «g». Для чего это все? А для того, чтобы пропустить некоторое количество кода, которое выполняется до функции LdrInitializeThunk. Мы бы в любом случае вышли на неё, однако потратили бы дополнительное время.
Отладчик останавливается на точке остановка в самом начале функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

ntdll!LdrInitializeThunk:

77c934a6 8bff            mov     edi,edi

77c934a8 55              push    ebp

77c934a9 8bec            mov     ebp,esp

77c934ab ff750c          push    dword ptr [ebp+0Ch]  ss:0023:0006fd1c={ntdll!`string  (ntdll+0x0) (77c30000)}

77c934ae ff7508          push    dword ptr [ebp+8]

77c934b1 e816000000      call    ntdll!LdrpInitialize (77c934cc)

77c934b6 6a01            push    1

77c934b8 ff7508          push    dword ptr [ebp+8]

77c934bb e8101cfeff      call    ntdll!ZwContinue (77c750d0)

77c934c0 50              push    eax

77c934c1 e87f37feff      call    ntdll!RtlRaiseStatus (77c76c45)

77c934c6 cc              int     3

77c934c7 90              nop

77c934c8 90              nop

77c934c9 90              nop

77c934ca 90              nop

77c934cb 90              nop

Ну, судя по всему, функция LdrInitializeThunk содержит (на верхнем уровне) вызовы всего трех функций: LdrpInitialize, ZwContinue, RtlRaiseStatus, причем, я так понимаю, две последних функции являются для нас не значимыми. Выполнив отладчиком по клавише F10 команду call ntdll!LdrpInitialize я убедился, что приложение запустилось. Получается, вся работа происходит в глубинах функции Ldrpinitialize, надо идти внутрь. Первым параметром в функцию LdrpInitialize передается адрес дампа PE-файла в адресном пространстве процесса, а вторым адрес какой-то неизвестной структуры (?). Судя по всему, когда я впервые остановился на точке останове в начале функции, в первом параметре я увидел адрес подмапленной в память библиотеки ntdll.dll, поскольку она загружается самой первой. С этого момента я опускаю ряд подробностей нахождения мест кода, которые могли быть ответственны за генерацию ошибки c000007b, поскольку описание всего процесса отладки превратило бы повествование в бесконечное. Скажу лишь, что всю работу по анализу кода я проводил при помощи отладчика WinDbg и дизассемблера IDA.

Первая причина

Первая удача сопутствовала мне при обработке функции LdrpSnapIAT. Очередной раз анализируя код я поставил точку останова на данную функцию, и при выполнении отладчик остановился на следующем коде:

ntdll!LdrpSnapIAT:

77c94ca1 6a24            push    24h

77c94ca3 68f808c877      push    offset ntdll! ?? ::FNODOBFM::`string‘+0x542 (77c808f8)

77c94ca8 e847dbfeff      call    ntdll!_SEH_prolog4 (77c827f4)

77c94cad 8d45d8          lea     eax,[ebp28h]

77c94cb0 50              push    eax

77c94cb1 6a00            push    0

77c94cb3 6a01            push    1

77c94cb5 8b7508          mov     esi,dword ptr [ebp+8]

77c94cb8 ff7618          push    dword ptr [esi+18h]

77c94cbb e8caa7ffff      call    ntdll!RtlImageDirectoryEntryToData (77c8f48a)

77c94cc0 8945d4          mov     dword ptr [ebp2Ch],eax

77c94cc3 85c0            test    eax,eax

77c94cc5 0f843dc50100    je      ntdll!LdrpSnapIAT+0x26 (77cb1208)

Самое последнее условие je ntdll!LdrpSnapIAT должно уводить нас на следующую ветку кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

77cb1208 a17473c877      mov     eax,dword ptr [ntdll!LdrpLogLevelStateTable (77c87374)]

77cb120d 83c801          or      eax,1

77cb1210 8505c0f9d077    test    dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)],eax

77cb1216 7422            je      ntdll!LdrpSnapIAT+0x58 (77cb123a)

77cb1218 83c624          add     esi,24h

77cb121b 56              push    esi

77cb121c 688491c777      push    offset ntdll! ?? ::FNODOBFM::`string‘ (77c79184)

77cb1221 6a00            push    0

77cb1223 687891c777      push    offset ntdll! ?? ::FNODOBFM::`string’ (77c79178)

77cb1228 6877080000      push    877h

77cb122d 688c8ec777      push    offset ntdll! ?? ::FNODOBFM::`string (77c78e8c)

77cb1232 e813e10100      call    ntdll!LdrpLogDbgPrint (77ccf34a)

77cb1237 83c418          add     esp,18h

77cb123a a1c0f9d077      mov     eax,dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)]

77cb123f 85057873c877    test    dword ptr [ntdll!LdrpLogLevelStateTable+0x4 (77c87378)],eax

77cb1245 7401            je      ntdll!LdrpSnapIAT+0x66 (77cb1248)

77cb1247 cc              int     3

77cb1248 b87b0000c0      mov     eax,0C000007Bh

77cb124d e9f93afeff      jmp     ntdll!LdrpSnapIAT+0x129 (77c94d4b)

Понятное дело, что в штатном режиме управление туда не передается, поэтому я просто взвел флаг zero, чтобы принудительно инициировать переход. Ну и в самом конце фрагмента кода мы видим долгожданную команду mov eax, 0C000007Bh, после чего я запускаю выполнение командой g и.. вот оно:

c000007b

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

Судя по описанию с MSDN, данная функция ищет запись внутри PE-заголовка и возвращает адрес данных для этой записи (при наличии возвращает заголовок секции (IMAGE_SECTION_HEADER)) и длину, а случае ошибки возвращает ноль. Используется для поиска различных таблиц в PE-файлах.

Получается эта функция предназначена для получения секций подключаемых библиотек? Ничего не понятно, необходимо как то понять все происходящее в целом, так сказать откатиться назад, а для этого нам надо посмотреть стек вызовов:

ntdll!LdrpSnapIAT+0x2b

ntdll!LdrpHandleOneOldFormatImportDescriptor+0x120

ntdll!LdrpHandleOldFormatImportDescriptors+0x1f

ntdll!LdrpProcessStaticImports+0x25c

ntdll!LdrpLoadDll+0x33d

ntdll!LdrLoadDll+0xaf

ntdll!LdrpInitializeProcess+0xfe7

ntdll!_LdrpInitialize+0x78

ntdll!LdrInitializeThunk+0x10

Похоже что за инициализацию процесса отвечает функция LdrpInitializeProcess, которая, на определенном этапе своей работы начинает загружать библиотеки, необходимые для работы основного приложения, при помощи функции LdrLoadDll, а та, в свою очередь, начинает просматривать таблицу импорта и заполнять Import Address Table (IAT) через функцию LdrpSnapIAT. Однако стек не всегда остается подобным, при прогоне программы по команде g и остановке на точке останова, стек вызовов иногда меняется, показывая, что код загружает модули, присутствующие в таблице импорта.

Функция LdrpSnapIAT «связывает» таблицу адресов импорта с импортируемыми DLL библиотеками, перезаписывает каждую запись в таблице адресов импорта актуальным адресом импортируемой функции.

В коде функции LdrpSnapIAT имеется вызов функции RtlImageDirectoryEntryToData, которая, в свою очередь, использует RtlImageDirectoryEntryToDataEx, а та вызывает функцию RtlpImageDirectoryEntryToData32, которая уже проверяет следующие условия:

  1. Если значение входного параметра DirectoryEntry (Порядковый номер требуемой записи каталога) больше или равно (>=) значения PeHeader.OptionalHeader.NumberOfRvaAndSizes (число записей в массиве DataDirectory. обычно имеет значение 16); Поскольку DirectoryEntry может иметь только определенные значения: IMAGE_DIRECTORY_ENTRY_ARCHITECTURE (7), IMAGE_DIRECTORY_ENTRY_BASERELOC (5), IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11), IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR (14), IMAGE_DIRECTORY_ENTRY_DEBUG (6), IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT (13), IMAGE_DIRECTORY_ENTRY_EXCEPTION (3), IMAGE_DIRECTORY_ENTRY_EXPORT (0), IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8), IMAGE_DIRECTORY_ENTRY_IAT (12), IMAGE_DIRECTORY_ENTRY_IMPORT (1), IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10), IMAGE_DIRECTORY_ENTRY_RESOURCE (2), IMAGE_DIRECTORY_ENTRY_SECURITY (4), IMAGE_DIRECTORY_ENTRY_TLS (9), он действительно не должен быть >=16!
  2. Если значение поля PeHeader.DataDirectory.Export библиотеки = 0. В коде функции для поиска местоположения структуры Object Table используется yнивеpсальная формула: pe_header_offset + rva_entries_number*8 + 78h; здесь: pe_header_offset — смещение от начала файла до PE-заголовка (смещение 3Ch), rva_entries_number — количество записей в таблице объектов. После вычисления мы попадаем на первую запись структуры IMAGE_DATA_DIRECTORY, которая содержит относительный адрес (RVA) таблицы экспорта. Предположение: в уже загруженной в адресное пространство процесса DLL, которая должна предоставлять экспортируемые функции нашей основной программе (иначе бы она не была загружена), отсутствует таблица экспорта? Подобная ситуация не допустима и явно ошибочна.

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

Когда после запуска исследуемого приложения под отладчиком, при первом останове на функции LdrpSnapIAT пытаешься принудительно выйти на данную ветку кода, то ошибка не появляется! Могу предположить, что при первом вызове функции анализируется какая-то важная системная библиотека, поскольку из данных Procmon было видно, что первой загружается ntdll.dll, то можно предположить что так оно и есть. Соответственно, отказ в загрузке её самой (вероятно) не может быть завершен ошибкой, и загрузка приложения lasterr.exe в этом случае просто «тихо» завершается не выводя никаких сообщений, иными словами приложение не запускается без каких-либо ошибок, просто ничего не происходит. Поэтому, я несколько раз выполнил команду g и начал анализировать функцию со второго и последующих её вызовов, что дало видимые результаты.

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

Наименование функции Предполагаемая причина
LdrpResGetMappingSize Проверка кода NTSTATUS при возврате из функции RtlImageNtHeaderEx. Если он не нулевой (ошибочный), то проверяются первые два байта опционального заголовка на значение 10Bh (32-битный заголовок) и 20Bh (64-битный заголовок), если не соответствует ни одной из них — ошибка.
LdrpResGetResourceDirectory Код функции уходит на ошибку после нулевого результата выполнения вложенной функции LdrpSectionTableFromVirtualAddress, которая возвращает 0 в случае нулевого смещения PE-заголовка (в нормальной ситуации должно быть 00400080) и нулевого значения слова по смещению в заголовке = начало PE заголовка (00400080) + SizeOfOptionalHeaders + 18h, то есть первое слово Таблицы Секций (Section Table). Опять же, если мы получили Section Table, далее выполняется еще несколько проверок уже непосредственно над полями самой секции, и c000007b генерируется если некоторые поля (SizeOfRawData и прочие) в Section Table некорректны.
LdrpResCompareResourceNames Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
LdrpResSearchResourceInsideDirectory Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
RtlImageNtHeaderEx Ошибка генерируется внутри функции по нескольким условиям, скорее всего сюда же попадает попытка загрузки библиотеки «иной» (нежели основной модуль) разрядности. Предположение: при попытке запуска 64-битного приложения, у которого в импорте оказывается функция из 32-битной библиотеки или наоборот?

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

Общее решение

Можно встретить две основные рекомендации по устранению ошибки c000007b:

  1. В некоторых случаях для решения подобной проблемы предлагается использовать утилиту Dependency Walker, которая позволяет просматривать импортируемые и экспортируемые сбойным модулем библиотеки, и, соответственно, выявить библиотеки, которые по тем или иным причинами не смогли подгрузиться. Но средство позволяет выявить лишь часть причин возникновения ошибки c000007b, поскольку:

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

    ..к тому же, DW грешит еще и тем, что иногда не обнаруживает всех импортируемых модулем библиотек.

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

Тем не менее, описанные инструменты позволяют обнаруживать большинство причин возникновения ошибки c000007b, они могут быть использованы в качестве стартового инструментария, и уже при невозможности решить проблему с их помощью, единственным средством остается отладчик. Лишний раз хочется кинуть камень в огород разработчиков, поскольку они могли бы значительно облегчить определение причины ошибки c000007b путем расширения статусных кодов и введения подробного описания, однако это потребовало бы доработки загрузчика образов. Но поскольку подобная глобализация множества разнородных ошибок под одним статусным кодом в программах под Windows характерна еще со времен Windows 2000, думаю, что ситуация в ближайшее столетие не поменяется :)

В этой статье вы узнаете, почему происходит ошибка 0xc000007b, и пошаговые способы решения для ее устранения. Во время использования компьютера могут появляться, такие ошибки как 0x80070057, 0x80004005, 0x80070005 и 0x80070002, они все довольно часто встречаются в Windows. Конечно все они являются поправимыми, но думаю многих раздражает то, из-за чего они появляются, поскольку поиск решений время.

Рекомендуем прочитать стать о том, как переустановить Windows на ноутбуке.

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

Структура статьи

  • 1 Что означает ошибка 0xc000007b?
  • 2 Ошибка 0xc000007b
  • 3 Как исправить ошибку 0xc000007b
  • 4 Способ 1. Переустановите приложение, которое вы пытаетесь запустить.
  • 5 Способ 2. Запуск программного обеспечения с правами администратора.
  • 6 Способ 3. Установка или исправление последней версии .NET Framework
  • 7 Способ 4. Обновление DLL
  • 8 Способ 5. Обновление DirectX
  • 9 Способ 6. Переустановите все пакеты времени выполнения Microsoft Visual C ++.
  • 10 Способ 7. Исправление проблемы совместимости между системой и приложением
  • 11 Способ 8. Выполнение чистой загрузки
  • 12 Восстановление утерянных данных, вызванных кодом ошибки 0xc000007b

Как исправить ошибку 0xc000007b

Windows является удбной и простой в использовании системой, с каждым годом он становится все наиболее широко используемым, и используется пользователями во всем мире на своих устройствах. В настоящее время многие пользователи обновили свой компьютер до Windows 10, который является не просто операционной системой для ПК, Он также работает на телефонах Windows — и на небольших планшетах. Разумеется, стоит понимать, что Windows не идеальна и на ней могут появляться периодически ошибки. Например, как мы отметили выше, многим пользователям приходится сталкиваться с ошибкой 0xc000007b при доступе к программному обеспечению, которое очень популярно у людей;

Сообщение об ошибке: «Приложению не удалось запустить корректно (0xc000007b). Нажмите «ОК», чтобы закрыть приложение».

Ошибка 0xc000007b

В основе кода ошибки Windows 0xc000007b лежит много причин, и в этой части перечислены наиболее распространенные.

Код ошибки означает недопустимый формат разрядности. В частности, например, вы пытаетесь запустить приложение, которое предназначено для работы в 64-разрядной операционной системе. Но на вашем компьютере установлена ​​32-разрядная версия Windows. 32-разрядное приложение не может загрузить 64-разрядную DLL, поэтому смешивание 32-разрядного кода с 64-разрядной средой вызывает проблемы.

Ошибка 0xc000007b также связана с программами, установленными на вашем компьютере, такими как .NET Framework, Direct X и Microsoft Visual C ++. Это проявляется, когда вы пытаетесь запустить высоконагруженные графические игры, без обновления .net Framework. Когда .NET framework отсутствует на вашем компьютере, вы не сможете запускать приложения на нем.

Также возможно получить эту ошибку при установке Windows 10, 8, 8.1 или 7.

Есть вероятность получить эту ошибку 0xc000007b, когда вы не используете программное обеспечение в качестве администратора.

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

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

Как исправить ошибку 0xc000007b

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

Способ 1. Переустановите приложение, которое вы пытаетесь запустить.

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

Во-первых, вам необходимо удалить его и удалить с компьютера все, что связано с программным обеспечением. Затем перезагрузите компьютер перед началом переустановки. Во время установки, рекомендуется, выключить «Защитник Windows» или другое защитное программное обеспечение.

Примечание. Перед выключением «Защитника Windows» отсканируйте компьютер.

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

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

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

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

Способ 3. Установка или исправление последней версии .NET Framework

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

  1. Нажмите «Пуск», чтобы выбрать «Панель управления» и «Программы и компоненты».
  2. Нажмите «Включить или отключить функции Windows» на левой панели. Появится окно «Свойства Windows».
  3. В окне «Возможности Windows» найдите и нажмите .NET Framework 3.5 и нажмите «ОК». Затем начнется загрузка и установка.
  4. Перезагрузите компьютер и проверьте, исправлена ​​ли эта ошибка. Если этот метод не может устранить ошибку приложения 0xc000007b, продолжите чтение!

Способ 4. Обновление DLL

Исправить ошибку 0xc000007b моно через обновление библиотек DLL.

Если файл xinput1_3.dll поврежден или переписан другой версией, которая несовместима, появится ошибка 0xc000007b. Немного сложно исправить ошибку, обновив DLL, так как этот метод включает операции, такие как замена 32-разрядной xinput1_3.dll на соответствующую версию внутри диска C. Чтобы обновить DLL с подходящей версией, выполните следующие действия:

  • Загрузите 32-разрядную версию xinput1_3.dll и извлеките файлы с помощью инструмента сжатия. Рекомендуется сделать резервную копию оригинальной xinput1_3.dll перед тем, как попробовать это решение, если вы не смогли завершить ее как отсканированную, и вы можете ее восстановить. Обычно файл xinput1_3.dll находится по адресу: C: Windows SysWOW64.
  • Скопируйте файл, извлеченный из загруженного файла, в папку: C: Windows SysWOW64 и вставьте его там.
  • Выберите «Копировать и заменить», если вы получите приглашение.

Способ 5. Обновление DirectX

Исправить ошибку 0xc000007b, можно через обновление старых файлов DirectX.

Чтобы избежать ошибок, вы всегда должны быть уверены, что ваш компьютер обновился до последней версии DirectX. Если ни одно из предыдущих решений не работает, попробуйте обновить DirectX. Отличным способом проверить, является ли DirectX последней версией, вы можете загрузить DirectX Runtime Web Installer с официального сайта Microsoft. Загрузите установочный файл и запустите его. Затем вы можете следовать инструкциям на экране, чтобы переустановить его. По завершении установки необходимо перезагрузить компьютер.

Способ 6. Переустановите все пакеты времени выполнения Microsoft Visual C ++.

Пакеты среды выполнения Microsoft Visual C ++ имеют большое значение для приложения Windows. Если они плохо установлены, программы не могут нормально работать и сообщать о различных ошибках, включая ошибку приложения 0xc000007b. Пакеты среды выполнения Microsoft Visual C ++ выпускаются как в 32-разрядной, так и в 64-разрядной версиях.

Поскольку операции в этом методе относятся к важной части операционной системы. Предлагается создать резервную копию системы на случай, если что-то пойдет не так. Вы можете легко восстановить компьютер до текущего состояния. Если вы не знаете, как это сделать, вы можете использовать Eassos System Restore для резервного копирования Windows, так как это программное обеспечение является простым в использовании и быстрым. Следующие шаги объясняют, как переустановить пакеты Microsoft Visual C ++:

  • Нажмите кнопку «Пуск» и выберите «Панель управления». Затем вы можете найти «Удалить программу» на панели управления, щелкнуть по ней.
  • Найдите все пакеты Microsoft Visual runtime и удалите их со своего ПК. После этого перезагрузите компьютер.
  • Перейдите на официальный сайт Microsoft, чтобы загрузить визуальные пакеты и установить каждый из них. Процесс установки требует перезагрузки ПК несколько раз.

Способ 7. Исправление проблемы совместимости между системой и приложением

Исправить ошибку 0xc000007b, возможно через исправление совместимости программы с операционной системой. Этот вариант также очень часто помогает в этом вопросе.

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

  1. Щелкните правой кнопкой мыши приложение, которое не может запускаться правильно, и выберите «Свойства».
  2. Перейдите на вкладку «Совместимость» в окне «Свойства» и нажмите кнопку «Запустить средство устранения неполадок совместимости».
  3. Выберите «Попробовать рекомендованные настройки», и вы можете протестировать приложение или просто нажать «Далее».
  4. Если предыдущий шаг не работает, вы можете выбрать режим совместимости вручную из раскрывающегося меню. Выберите более раннюю версию Windows и нажмите «Применить» и «ОК».

Способ 8. Выполнение чистой загрузки

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

  1. Нажмите кнопку «Пуск» и найдите файл msconfig. Нажмите «Конфигурация системы» из результатов поиска.
  2. В диалоговом окне выберите вкладку «Сервис». Выберите «Скрыть все службы Microsoft» и нажмите кнопку «Отключить все».
  3. Нажмите вкладку «Автозагрузка», чтобы открыть «Открыть диспетчер задач». Для элемента автозагрузки здесь выберите каждый и нажмите «Отключить».
  4. Закройте диспетчер задач и нажмите «ОК» в окне «Конфигурация системы». Перезапустить компьютер.

Восстановление утерянных данных, вызванных кодом ошибки 0xc000007b

Eassos Recovery free — это бесплатное ПО для восстановления данных, которое спасает файлы, которые теряются из-за ошибок Windows, удаления, форматирования, сбоя системы, потери или повреждения разделов, неожиданного выключения, заражения вирусом. Он совместим со всеми устройствами хранения данных, такими как жесткий диск, USB-накопитель, карта памяти, сотовый телефон и т. Д. Если ваши файлы потеряны, вы можете быстро их восстановить, с помощью этой утилиты.

Если у вас остались какие-то вопросы по теме «Как исправить ошибку 0xc000007b» то можете писать их в форму комментариев на нашем сайте.

Так же вы можете приобрести у нас лицензии Microsoft со скидкой до 90% , которые будет работать официальном сайте Microsoft

Всем доброго времени суток, долго думал какое изображение подобрать к данной заметке. Решил вас порадовать фотографией красивой девушки, которая знает, что это за ошибка 0xc000007b при запуске игры и как исправить ее. Видите какая она довольная? – наверняка запустила своих распрекрасных Симс и будет наслаждаться виртуальной жизнью. Если вы еще не знаете каким образом решить данную проблему – предлагаю ознакомиться с данной заметкой, вы в нужном месте…

0xc000007b при запуске игры как исправить

Как правило, ошибка 0xc000007b проявляется при повреждении файлов операционной системы. Такое может произойти при некорректном завершении работы компьютера, перезагрузки во время важного обновления и еще многих случаях. Некоторые игры могут выдать такую ошибку с нарушением работы такого ПО как DirectX (или недостачей одного из его компонентов), отсутствием NET Framework или Visual C++ (не так давно я писал о том, что делать если в системе отсутствует файл msvcr100.dll). Очень часто к таким проблемам приводят устаревшие драйвера видеокарты, особенно часто мне попадались платы Nvidia с подобной проблемой.

Содержание:

  • 1 0xc000007b при запуске игры – как исправить ошибку?
    • 1.1 Семь бед – один CTRL + ALT + DELETE
    • 1.2 0xc000007b и NetFramework – есть ли связь?
    • 1.3 Обновляем и переустанавливаем распространяемый пакет Visual C++
    • 1.4 Пробуем запустить проблемное приложение от имени Администратора
    • 1.5 0xc000007b? – переустанови игру или приложение
    • 1.6 Проверяем жесткий диск
    • 1.7 Переустановка DirectX при ошибке 0xc000007b
    • 1.8 Сканируем систему на наличие ошибок и исправляем 0xc000007b
  • 2 Выводы о том, как исправить ошибку 0xc000007b

0xc000007b при запуске игры – как исправить ошибку?

Согласитесь, досадно качать игру GTA 5 на компьютер несколько часов, столько же прождать наблюдая за ее установкой на компьютер и в итоге столкнуться с ошибкой 0xc000007b. Поэтому нам просто жизненно важно разобраться что это за ошибка и каким образом ее исправить. Всем торопыгам, которым лень читать, пишу в самом начале заметки – да, ошибка 0xc000007b может проявляться из-за кривого репака игры скачанного с торрентов. В большинстве случаев виноваты антивирусные программы, которые рубят на корню активаторы для игр – переходите на легальный контент или проверяйте карантин и настраивайте исключения в вашей защите компьютера.

Ошибка 0xc000007b при запуске игры

Я изучил данный вопрос и подготовил 8 рекомендаций о том, как исправить ошибку 0xc000007b при запуске игры. Список может быть не полным и не включает в себя аппаратные причины неисправности ввиду сложности диагностирования простым пользователям.

Семь бед – один CTRL + ALT + DELETE

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

Перезагружаем компьютер

В Windows 10 перезагрузку желательно сделать с зажатой клавишей SHIFT на клавиатуре, так как обычная перезагрузка тут выглядит немного иначе, чем на Windows 7 или древней XP.

0xc000007b и NetFramework – есть ли связь?

Для достаточно большого количества различных приложений и игр требуется установленный в системе Net Framework – без него некоторые программы не запустятся и напишут что этот компонент отсутствует в системе, а некоторые игры могут просто выпасть в ошибку 0xc000007b, а вы будете искать как ее исправить.

NET Framework

Чтобы установить данный компонент, то нам ничего скачивать не нужно. Там же, где находится “Установка и удаление программ”, есть пункт “Компоненты Windows”. Просто ставим галочку, как на изображении выше, и ждем пока .NET Framework скачается и установится на компьютер. После его инсталляции рекомендую выполнить перезагрузку системы.

Обновляем и переустанавливаем распространяемый пакет Visual C++

Я не так давно писал про отсутствие файла msvcr100.dll – что это за ошибка как ее исправить мы разобрались. В данной заметке как раз и описывались проблемы с распространяемым пакетом Visual C++ для Windows. Иногда эта гадость может просто ругаться на отсутствие файлов, а в некоторых случаях ничего внятного не пишут и вы идете гуглить “0xc000007b при запуске игры как исправить”.

Распространяемый пакет Visual C++

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

Пробуем запустить проблемное приложение от имени Администратора

Может быть и такое, что ошибка 0xc000007b может происходить из-за недостаточных прав пользователя. Просто попробуйте запустить неработающее приложение или игру от имени Администратора. Чтобы это сделать – кликните правой кнопкой мыши по ярлыку игры, и в выпадающем меню выберите пункт “Запуск от имени Администратора”.

Запуск от имени Администратора

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

0xc000007b? – переустанови игру или приложение

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

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

Очень часто виноват ваш антивирус, если вы скачали пиратскую игру (я не буду говорить сейчас хорошо это или плохо, у нас задача разобраться с ошибкой 0xc000007b при запуске игры), то высока вероятность что так называемый кряк, который отучил игру от жадности разработчиков просто мог оказаться в карантине вашей антивирусной программы. Игра, не обнаружив недостающий файл может выдавать вообще любую ошибку, а не только 0xc000007b.

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

Проверяем жесткий диск

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

chkdsk c: /f /r – эта команда просканирует ваш диск с (обычно он системный) и по возможности исправит все найденные ошибки.

Чекдиск

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

Переустановка DirectX при ошибке 0xc000007b

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

https://www.microsoft.com/ru-ru/Download/confirmation.aspx?id=35

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

Установка DirectX

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

Сканируем систему на наличие ошибок и исправляем 0xc000007b

В системе Windows есть очень полезная команда, которая запускает сканирование системы на ошибки и целостность всех DLL файлов. Вполне возможно, что данный способ поможет вам разрешить вопрос с ошибкой 0xc000007b при запуске игры. Для этого откройте “Командную строку” и введите “sfc /scannow” без ковычек и дождитесь окончание выполнения операции.

Сканирование системы на ошибки

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

Выводы о том, как исправить ошибку 0xc000007b

Друзья, если копнуть глубже, то можно найти еще минимум 10 способов исправить ошибку 0xc000007b при запуске игры, нам просто не хватит ни сил ни времени чтобы подробно описать все вариации – нужно знать почему это происходит. Схема должна быть такая:

  1. Все работает нормально и проблема с одной, конкретной игрой? – копаем в торону самой игры (все остальное же работает)
  2. Ошибка 0xc000007b проявляется во многих приложениях и играх? – смотрим в сторону проблем с системой, пробуем запустить от имени администратора, используем режим совместимости, переустанавливаем драйвера для видеокарты

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

Как исправить ошибку 0xc000007b при запуске игры

P.S. Ну вот мы и ответили на ваш вопрос о том, что за ошибка 0xc000007b при запуске игры и как исправить ее? – как видите проблема довольно распространенная и есть много вариантов решения. Но не забывайте, что данная неприятность может произойти и по причинам неисправности железа, но это уже совсем другой разговор…

Содержание

  1. Описание проблемы
  2. Решение
  3. Проблемы с файлами dll в DirectX или C++
  4. Проблема с патчем или пиратской программой
  5. Исключение декомпрессии
  6. Неправильный exe-файл был изменен вирусом
  7. Несовместимость игры с текущей системой
  8. Режим отладки программного обеспечения
  9. Ошибка 0xc000007b на синем экране
  10. Решение
  11. Ошибка 0x0000007b появляется на синем экране
  12. Драйвер видеокарты обновлен?
  13. Вы импортировали информацию реестра?
  14. Англоязычная директория
  15. Решение
  16. Включено ли прямое ускорение?
  17. Вы установили PhyX?
  18. Режим совместимости
  19. Ваша игра для Windows Live установлена?
  20. Установлен ли ваш Microsoft .NET Framework?
  21. Замена операционной системы
  22. Аппаратное обеспечение
  23. Часто задаваемые вопросы

Операционная система Windows — это сложный, взаимодополняющий и связанный с другим ПО комплекс эффективного распределения вычислительных ресурсов и управления устройствами. Однако не редки случаи, когда происходят проблемы. Ошибка 0xc000007b появляется у многих пользователей ПК. На этой странице мы узнаем, в чем заключается сложность её устранения, и найдем несколько способов решения.

0xc000007b означает, что код ошибки возникает из-за ненормального вызова файла dll. Часто игры или программы, которые мы планируем запустить, используют библиотеки и компоненты распространенных ПО — DirectX (часто версии 9.0) и распространяемый пакет Visual C++.

Описание проблемы

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

Ошибка 0xc000007b в Windows

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку «ОК».

Решение

Часто для решения проблемы 0xc000007b, нужно установить последнюю версию компонентов DirectX и C++. Это правда, что обновление файлов один за другим поможет устранить уведомления ошибки, пользователи, которые уже искали Visual C в Интернете, наверняка знают, что их существует много версий.

Переходите по ссылке для скачивания DirectX и C++ или испробуйте все способы решения данной проблемы. Выберите необходимые вам и устанавливайте на свой ПК.

Переустановка новых версий не помогла?

Проблемы с файлами dll в DirectX или C++

Эта ситуация является наиболее распространенной. Dll-файлы компонентов DirectX или компонентов C++ в вашей системе все еще имеют аномалии. Скорее всего, версия утилиты была не полная или не последняя. Новый билд обычно обновляет пакет данных и улучшает возможность исправления 0xc000007b. Если какие-то файлы постоянно не восстанавливаются, то, скорее всего, причина в том, что файлы заняты. Рекомендуется перезагрузить компьютер и закрыть все бесполезные программы (включая антивирус, QQ, браузер и завершить процесс QQProtect.exe в диспетчере задач и т. д.).

Проблема с патчем или пиратской программой

Причина в том, что пиратское ПО для взлома изменяет некоторую информацию в исходном файле exe/dll. Игра или программное обеспечение имеют большой размер, а патч для взлома относительно невелик. Обычно, заменив exe или steam_api.dll и другие файлы, злоумышленники производят нарушения, изменив несколько МБ. Так что если причина в этом, то рекомендуется повторно скачать ваш патч, проверив контрольные суммы для исключения сторонних встроек. Если dll другой, то перейдите по ссылке, чтобы загрузить любой необходимый.

Исключение декомпрессии

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

Решение

  • Найдите дистрибутив с приложением.
  • Распакуйте его через правую кнопку мыши в любую папку.
  • Пропустите ошибки, возникающие при работе архиватора.

Распаковка приложения или игры из архива в Windows

Неправильный exe-файл был изменен вирусом

Эта ситуация имеет определенную вероятность возникновения, и некоторые пользователи также сталкивались с этой проблемой. В похожем случае в системе есть вирус, который заражает exe-файл. Поэтому он не может запуститься. Этот тип вируса может изменять только исполняемые файлы без цифровой подписи. Поэтому средство восстановления DirectX на вашем компьютере и некоторые небольшие программы в Интернете могут не работать. Однако собственные программы Windows и некоторые с цифровыми подписями от крупных компаний все еще могут нормально функционировать. Если ошибка 0xc000007b возникает во многих программах на вашем компьютере, скорее всего, это так.

Решение

Чтобы исправить, включите сначала стандартный защитник Windows, а потом сторонний антивирус, чтобы проверить ОС на наличие вредоносных файлов, и исправьте их или внесите в карантин.

  • Наберите в строке поиска «Защита от вирусов и угроз».
  • Откройте это окно безопасности Windows кликнув по найденному параметру левой кнопкой мыши.
  • Включите все параметры подсвеченные как выключенные таким образом, чтобы они стали выводить галочку в зеленом кружке.

Защита от вирусов и угроз в Windows

Несовместимость игры с текущей системой

Пользователи Windows 7 получают ошибки 0xc000007b при запуске некоторых последних игр (особенно игр 2020 года и более поздних версий).

Решение

  • Пожалуйста, зайдите на официальный сайт игры (или steam).
  • Посмотрите, что написано в графе операционная система в минимальной конфигурации, необходимой для игры.
    • Сравните с той которая у вас. Если Необходимо обновить ОС, установите необходимую, например Windows 11 последней конфигурации с нашего ресурса.
  • Кроме версии системы, также советуем проверить требования к оборудованию.
    • Кроме покупки нового качественного «железа» выхода нет.

Режим отладки программного обеспечения

Если вы используете Visual Studio и другое программное обеспечение для разработки программ, особенно в режиме отладки, появится ошибка 0xc000007b. Её уже не решишь простым обновлением Компонентов Диеркс и C++.

  1. Попробуйте найти параметр «SATA Mode Selection» в интерфейсе BIOS и измените режим «AHCI» на режим «iDE».
  2. Для этого при включении ПК нажмите на клавишу «del, F2,F9,F12 (в зависимости от того, какой клавишей запускается загрузчик — BIOS именно у вас. Это будет на секунду написано на экране)».
  3. Перейдите в раздел «Advaced».
  4. Затем найдите «SATA Configuration». Иногда этого пункта нет, в сразу можно увидеть «SATA Mode Selection».
  5. Поменяйте значение на «iDE». Как показано на скриншотах из разных загрузчиков в галерее ниже.
  6. В командной строке орт имени администратора, введите команду «sfc /scannow». Подождите сканирования и восстановления. Это действие будет выглядеть как на скриншоте ниже галереи.

SATA Configuration в BIOS 1 SATA Configuration в BIOS 2 SATA Configuration в BIOS 3 SATA Configuration в BIOS 6 SATA Configuration в BIOS 5 SATA Configuration в BIOS 4 sfc /scannow в командной строке Wndows

Ошибка 0xc000007b на синем экране

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

Решение

  • Предлагается переустановить систему напрямую, чтобы решить эту проблему.

Ошибка 0x0000007b появляется на синем экране

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

  • Например, если у вас изначально была IDE, а вы зашли в биос и изменили его на AHCI, то перезапуск обязательно приведет к синему экрану 0x0000007b.
  • Также возможно, когда вы не проявляли инициативу по изменению режима жесткого диска, а обновили BIOS и изменили режим ЖД по умолчанию.

Решение

  • При включении ПК нажмите на клавишу «del, F2,F9,F12 (в зависимости от того, какой клавишей запускается загрузчик — BIOS именно у вас. Это будет на секунду написано на экране)»
  • Перейдите в раздел «Advaced».
  • Затем найдите «SATA Configuration». Иногда этого пункта нет, в сразу можно увидеть «SATA Mode Selection».
  • Поменяйте значение на «iDE». Как показано на скриншотах из разных загрузчиков в галерее ниже.

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

SATA Configuration в BIOS 1 SATA Configuration в BIOS 2 SATA Configuration в BIOS 3 SATA Configuration в BIOS 6 SATA Configuration в BIOS 5 SATA Configuration в BIOS 4

Драйвер видеокарты обновлен?

Если это не последняя версия драйвера или вы не знаете, является ли она крайней.

Решение

  • Перейдите на официальный веб-сайт вашей видеокарты, чтобы загрузить и установить ее.
  • Либо наберите в поисковике Windows «Диспетчер устройств».
  • В открывшемся окне, выберите «Видеоадаптеры».
  • Кликните ПКМ и в выпадающем меню отройте «Свойства».
  • Внутри щелкните по вкладке «Драйвер».
  • Нажмите «Обновить».

Обновление драйвера видеокарты в Windows

Вы импортировали информацию реестра?

Вообще говоря, версия игры имеют один или несколько файлов информации реестра с расширением *.reg. Эти документы необходимо показать для правильной работы приложений. Особенно после переустановки компьютера.

Решение

Запустите его, чтобы импортировать информацию. В противном случае может быть невозможно запустить игру.

Часто все очень просто и достаточно кликнуть два раза левой кнопкой мыши и дать разрешение на изменение реестра.

Англоязычная директория

Иногда игра должна быть помещена в каталог полностью на английском языке, прежде чем она сможет нормально работать.

Решение

  • Например, измените название пути на «C:/game/…».
  • Вы должны убедиться, что пользователь Windows, которого вы используете в настоящее время, именован английскими символами.
    • Иначе рекомендуется создать нового пользователя.

Кириллица в пути Windows

Включено ли прямое ускорение?

Часто прямое ускорение компьютера отключается по необъяснимым причинам, что приводит к сбою многих игр. Подсказка в это время может быть такой, как «Пожалуйста, установите DirectX 8.0 или выше» или «Ускорение DirectX недоступно». В настоящее время для запуска игры необходимо вручную включить прямое ускорение.

Решение

  • Зажимаем «Win+R».
  • Вводим «dxdiag».
  • Переходим в вкладку «Дисплей».
  • Находим поле «Возможности DirectX».
  • Все должно быть включено так, как на картинке ниже.

Если что то выключено, то проблема скрывается в в следующем:

  • Битые драйвера;
    • Проверьте в «Диспетчере устройств» и обновите все драйвера через меню «Свойства».
  • Не новый Дирекс;
    • Обновите до версии указанной в системных требованиях.
  • Ускорение железа;
  • Сторонние программы для ускорения;
  • Электронные компоненты перестали работать или не соответствуют требованиям.

Средство диагностики DirectX в Windows

Вы установили PhyX?

Многие игры теперь поддерживают PhyX, хотя только NVIDIA могут его включать.

Ошибка PhyX в Windows

Решение

Для пользователей видеокарт ATI для запуска игры необходимо всего лишь установить драйверы PhyX. Сам physxloader.dll подставится автоматически при установке драйвера.

  • Иногда physxloader.dll нужно скопировать в корень с игрой, заменив уже существующий и в системную папку «C:WindowsSystem32».
  • После чего это «*.dll» необходимо зарегистрировать, для этого:
    • Нажмите «Win+R».
    • Введите «regsvr32.exe physxloader.dll».

Выполнение команды regsvr32.exe physxloader.dll в Windows

Режим совместимости

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

Решение

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

Режим совместимости в Windows

Ваша игра для Windows Live установлена?

Сейчас многим старым играм нужна поддержка Game For Windows Live, и их надо установить (не запускать через ОЗУ, как раньше), чтобы играть. Иначе в некоторых системах будет указано, что файл xlive.dll отсутствует, в то время как в других системах будет указано 0xc000007b. Так что Game For Windows Live нельзя игнорировать.

Установлен ли ваш Microsoft .NET Framework?

В оригинальные Vista, и в Windows 7 встроен .NET Framework, а вот о пиратской версии сказать сложно. Взломки часто кастрируют некоторый контент, и никто не может узнать, как это повлияет на структуру системы. Так что если ваша система не официальная, то вы можете попробовать установить Фреймворк самостоятельно.

Решение

Кликните на ссылку и скачивайте .NET Framework с нашего сайта или испробуйте все способы из приведенной инструкции и перейдите на страницу загрузки платформы внизу инструкции.

Net Framework для Windows

Замена операционной системы

По запросам заметно, что эта проблема очень распространена на 64-битных компьютерах, и в редких случаях она встречается и на системах x32. Поэтому рассмотрите возможность перехода на 32-битную ОС. Вероятность этой проблемы будет значительно снижена.

Аппаратное обеспечение

Если эта проблема все еще возникает даже после смены операционной системы, она может быть вызвана оборудованием.

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

Часто задаваемые вопросы

Игры, которые я запускаю, имеют спецэффекты DirectX 11, будет ли это иметь какое-то отношение к Дирекс 9?

На самом деле, ради совместимости приложений компании часто разрабатывают игрушки на основе 9-ой версии, а затем добавляют специальные эффекты от 10-ки и 11-ой.

Есть ли проблема с DirectX, которая влияет на последние игры?

Да, дело в том, что Windows старых версий поддерживают самые основные компоненты Дирекс, а игре часто нужны более продвинутые (такие как d3dx9_42.dll, xinput1_3.dll…). В системе отсутствуют эти ключевые файлы, из-за чего игра не запустится или появится ошибка 0xc000007b.

Некоторые люди могут спросить: я уже установил DirectX 9.0 и C++, но они все равно не работают?

Здесь кроется важная вещь: 32-битные системы должны устанавливать 32-битные файлы библиотек DirectX и C++, а 64-битные системы должны устанавливать файлы библиотек с типом разрядности данных как x32-а, так и x64-е бита, что является ключом к решению этой проблемы.

Рекомендованные сообщения

nanemo

    • Рассказать

Третий день не могу зайти на обт так как клиент zapuskaetsa

1539511989598.png.63658ad94dfc1f70445bf3fdb6474596.png

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

nanemo

  • Автор
    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Win 10.

Переписал все с++ и .нет

Переустановил видео драйвера

Переустановил dx

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

nanemo

  • Автор
    • Рассказать

Проверял через клин боот и с нового пользователя акаунта виндовс

Отключал все программы, сервисы

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

nanemo

  • Автор
    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

что то у вас слишком медленная реакция на проблемы сервера

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

Trolya

    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

nanemo

  • Автор
    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

Благодаря гоогле транслате, да. То Есть я не русский но по русски понимаю и могу говорит

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

TheDominator

    • Рассказать

503c6b9c5625a04862dc6480e8f4731a0476a9d4?url=https%3A%2F%2Fthequestion.s3.eu-central-1.amazonaws.com%2F361%2F724281-b9e559ed.png

Добавьте возможность отправлять ГОЛОСОВЫЕ СООБЩЕНИЯ на форуме.

  • Цитата

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

  • 10 Entries
  • 15 Entries
  • 20 Entries
  • 25 Entries
  • Latest Replies
  • GamezAION
  • GamezBD
  • Aion Market
  • Top Threads

  1. cberkayyy1

    cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    How to fix?
    Help please

    Attached Files:

    • report.png


  2. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    I have that error too. I tried the ‘force check’ function of the launcher with no success.
    The error pops up once the anti-cheat window opens, just before the game itself would launch.


  3. cberkayyy1

    cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    Did you find the solution?


  4. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    No. I re-added the game folder to my anti-virus, no success.

    Edit: Might have something to do with the latest Windows 10 update.


  5. cberkayyy1

    cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1


  6. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Downloaded another update to Windows 10, updated video drivers, no change.


  7. Reignover

    Reignover
    New Member

    Joined:
    May 29, 2018
    Messages:
    2
    Likes Received:
    1
    Trophy Points:
    118

    I have the same problem, Windows 10 fully updated, using windows defender, already put the game folder and all the executables as exceptions, whitelisted the exe’s at the firewall and turned firewall off too, all drivers up to date, no GeForce Experience or any overlay bullshit, everything running as admin, still get the error everytime i start the game.
    @edit: its a smartguard problem, i used the windows event viewer and found out that the error is that the smartguard fail to initiate with the message: Service failed to start due to internal error: 0xc000007b
    I knew smartguard was trouble in windows 10 because i’ve played lineage 2 servers who used it and they always had to provide the windows 10 users some patch to play, hope the devs read this.

    Last edited: Sep 14, 2018


  8. AmberSynn

    AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    same issue here but run win7 and no issues with any other game. Tried adding to exceptions on Avira and get a new error about missing files


  9. GFrost

    GFrost
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    I hadt he same problem the my 1rst issue was the 0301 code but I solved it when I installed new C++ runtime (2017)now I have message with this:
    https://imgur.com/a/FyYkCZa

    I did the same trouble shooting and I use win7,too


  10. AmberSynn

    AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    that is the message i got too. made sure everything is up to date and going to install full client and maybe that will work. I wish someone had a real solution to thiswin7 here and getting same issues.

    Last edited by a moderator: Sep 15, 2018


  11. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    [​IMG]


  12. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    >Tried uninstalling/reinstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit)
    >Tried uninstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit) and installing Microsoft Visual Studio C++ 2015 (32 and 64 bit). (Both can not be present at the same time, it seems)
    >Ensured .Net Framework was latest version available
    >Tried «Run as administrator» for both .exe files present in the C:/ProgramData/SmartGuard/bdo/smrt3d/beta/data/(bunch of letters and numbers) folders.
    >Added above folders to antivirus exceptions
    >Added both .exe files in above folders to firewall exceptions

    No results.


  13. mark123

    mark123
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    26


  14. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Also checked out the website for SmartGuard (https://smart-guard.eu/en). Unfortunately I can’t access their forums unless I buy the product first.


  15. Kolka

    Kolka
    <Prison Officer>
    Staff Member
    Super Moderator

    disable UAC in windows, make sure u have SYSTEM use in list of users in Security Tab in properties of bin64/BlackDesert64.bin file. Also make sure u not set default programm to bin64/BlackDesert64.bin file.


  16. Rerei

    Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Not sure what you mean by this.

    Update:

    I attempted to roll back my windows 10 updates, and ended up bricking my OS. So, I started fresh with a clean install.
    This fixed the error I was having, but introduced the ‘Failed to init security’ error. To fix this, I attempted everything I could think of. Nothing worked until I tried the solution in post number 2 in this thread:
    http://forum.gameznetwork.com/threads/i-dont-understand-why.220737/#post-2128862

    Specifically the program you can download here: https://www.computerbase.de/downloads/systemtools/all-in-one-runtimes/

    Now I’m chopping trees like it’s 1999.

    Hope this helps!

    Last edited by a moderator: Jan 17, 2019


  17. alexutzu1011

    alexutzu1011
    New Member

    Joined:
    Dec 8, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    can you be more explicit please? maybe more details or some screenshots would be awesome. ty


  18. tingting21

    tingting21
    New Member

    Joined:
    Sep 29, 2018
    Messages:
    4
    Likes Received:
    1
    Trophy Points:
    233

Share This Page


Gamez Network Community Forum

Статус темы:

Закрыта.

  1. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Скачала игровой клиент с сайта, запускаю установку на диск С (памяти на нем предостаточно), но как только нажимаю установить, выскакивает ошибка 0xc000007b.
    Другие игры Фогейма устанавливаются нормально.
    1) Папка темп чиста.
    2) Диагностику процессов провела, ничего криминального.
    3) На вирусы проверила, ничего не обнаружено.
    4) Галка на папке для чтения снята.
    5) Хосты чисты.
    6) Перезагрузку сделала.

    [​IMG]

    Диагностика процессов:
    check4game ver=2.2.7, uptime=15m, ra
    Процессор: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
    Видео: Intel(R) HD Graphics 520 / 21.20.16.4534 / 20161007
    Видео: NVIDIA GeForce GTX 950M / 22.21.13.8199 / 20170426
    DeviceName: DISPLAY1, BPP: 32, P:True, 1920×1080
    OS(x64) Microsoft Windows NT 6.3.17763.379
    OS Name: Windows 10 Home Single Language 1809/ 19.03.2019
    .NET 4.7.2 (461814) / MEMORY: 8065 MB (4901 MB)
    report Date: 20.03.2019 23-20-10 +03:00 GMT
    игра: bns, env: bns_live, cfg: default, x32
    путь: D:GamesBlade and Soul

    Скачиваем список LSP файлов
    https://www.check4game.com/proc/lsp.txt => OK
    WinSock2 NameSpace_Catalog
    %SystemRoot%system32napinsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%System32mswsock.dll (10.0.17763.346)
    %SystemRoot%System32winrnr.dll (10.0.17763.1)
    %SystemRoot%system32NLAapi.dll (10.0.17763.134)
    %SystemRoot%system32wshbth.dll (10.0.17763.1)
    WinSock2 Protocol_Catalog
    %SystemRoot%system32mswsock.dll (10.0.17763.346)
    Скачиваем список несовместимых процессов
    https://www.check4game.com/proc/proc.txt => OK
    Список процессов
    AdminService.exe : Windows Setup API (6.1.7600.16385)
    ApplicationFrameHost.exe : Application Frame Host (10.0.17763.1)
    audiodg.exe : Изоляция графов аудиоустройств Windows (10.0.17763.346)
    browser.exe*32 (17) : Yandex (19.3.0.3022)
    browsercore32.exe*32 (3) : BrowserCore Chromium Native Process (64.0.3282.24)
    check4game.exe : check4game (2.2.7.0)
    csrss.exe (2) : csrss.exe
    ctfmon.exe : CTF-загрузчик (10.0.17763.346)
    dllhost.exe : COM Surrogate (10.0.17763.1)
    dwm.exe : Диспетчер окон рабочего стола (10.0.17763.346)
    explorer.exe : Проводник (10.0.17763.346)
    fontdrvhost.exe (2) : Usermode Font Driver Host (10.0.17763.1)
    igfxCUIService.exe : igfxCUIService Module (6.15.10.4534)
    igfxEM.exe : igfxEM Module (6.15.10.4534)
    Innova.Launcher.exe*32 : 4game (1.0.0.131)
    lsass.exe : Local Security Authority Process (10.0.17763.1)
    Memory Compression : Memory Compression
    MsMpEng.exe : MsMpEng.exe
    NisSrv.exe : NisSrv.exe
    notepad.exe : Блокнот (10.0.17763.346)
    NVDisplay.Container.exe (2) : C:Program FilesNVIDIA CorporationDisplay.NvContainerNVDisplay.Container.exe
    nvtray.exe : NVIDIA Settings (7.17.13.8199)
    PrtScr.exe*32 : PrtScr (1.5.0.0)
    Registry : Registry
    RuntimeBroker.exe (6) : Runtime Broker (10.0.17763.1)
    SearchFilterHost.exe : Microsoft Windows Search Filter Host (7.0.17763.168)
    SearchIndexer.exe : Индексатор службы Microsoft Windows Search (7.0.17763.346)
    SearchProtocolHost.exe : Microsoft Windows Search Protocol Host (7.0.17763.168)
    SearchUI.exe : Search and Cortana application (10.0.17763.348)
    SecurityHealthService.exe : SecurityHealthService.exe
    SecurityHealthSystray.exe : Windows Security notification icon (10.0.17763.1)
    service_update.exe*32 (2) : Yandex (19.3.0.3022)
    services.exe : services.exe
    SgrmBroker.exe : SgrmBroker.exe
    ShellExperienceHost.exe : Windows Shell Experience Host (10.0.17763.1)
    sihost.exe : Shell Infrastructure Host (10.0.17763.1)
    SkypeApp.exe : SkypeApp (8.41.0.54)
    SkypeBackgroundHost.exe : Microsoft Skype (8.41.0.54)
    smartscreen.exe : SmartScreen Защитника Windows (10.0.17763.346)
    smss.exe : smss.exe
    spoolsv.exe : Диспетчер очереди печати (10.0.17763.346)
    svchost.exe (2) : svchost.exe
    svchost.exe (65) : Хост-процесс для служб Windows (10.0.17763.346)
    SystemSettings.exe : Параметры (10.0.17763.346)
    taskhostw.exe : Хост-процесс для задач Windows (10.0.17763.346)
    TiWorker.exe : Windows Modules Installer Worker (10.0.17763.1)
    TrustedInstaller.exe : Установщик модулей Windows (10.0.17763.346)
    Wacom_Tablet.exe : Tablet Service for professional driver (6.3.33-3)
    Wacom_TabletUser.exe : Tablet user module for professional driver (6.3.33-3)
    Wacom_TouchUser.exe : Touch User Mode Driver (6.3.33-3)
    WacomHost.exe*32 : Wacom Load Agent (1.0.0.2)
    WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe : WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe (10.0.17763.292)
    wininit.exe : wininit.exe
    winlogon.exe : Программа входа в систему Windows (10.0.17763.346)
    WinStore.App.exe : Store (11811.1001.18.0)
    WmiPrvSE.exe (2) : WMI Provider Host (10.0.17763.1)
    WTabletServicePro.exe : Tablet Service (6.3.33-3)
    YourPhone.exe : YourPhone.exe (1.0.190228004-19031)
    Список служб
    AtherosSvc : AtherosSvc
    Audiosrv : Windows Audio
    DiagTrack : Функциональные возможности для подключенных пользователей и телеметрия
    DusmSvc : Использование данных
    igfxCUIService2.0.0.0 : Intel(R) HD Graphics Control Panel Service
    NVDisplay.ContainerLocalSystem : NVIDIA Display Container LS
    SecurityHealthService : Служба «Безопасность Windows»
    SEMgrSvc : Диспетчер платежей и NFC/защищенных элементов
    SgrmBroker : Брокер мониторинга среды выполнения System Guard
    Spooler : Диспетчер печати
    TrustedInstaller : Установщик модулей Windows
    Wcmsvc : Диспетчер подключений Windows
    WdNisSvc : Служба проверки сети Windows Defender Antivirus
    WinDefend : Антивирусная программа «Защитника Windows»
    WlanSvc : Служба автонастройки WLAN
    WSearch : Windows Search
    WTabletServicePro : Wacom Professional Service
    YandexBrowserService : Yandex.Browser Update Service
    cbdhsvc_2e7f8 : Пользовательская служба буфера обмена_2e7f8
    CDPUserSvc_2e7f8 : Служба пользователя платформы подключенных устройств_2e7f8
    OneSyncSvc_2e7f8 : Синхронизация узла_2e7f8
    WpnUserService_2e7f8 : Пользовательская служба push-уведомлений Windows_2e7f8

  2. Примените один из reg файлов отсюда http://cdn.inn.ru/support/files/4game_uninstalled.rar в соответствии с разрядностью системы. Удалите все, что удаляется в папках C:WindowsTemp и по пути %USERPROFILE%AppDataLocalTemp. После этого перезагрузите ПК и попробуйте установить ещё раз. Если не получится, сделайте скрин ошибки.


  3. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

  4. Cкопируйте файл cmd.exe из папки CWindowsSystem32 и поместите его в CWindowsSysWOW64
    И выполните починку клиента с помощью утилиты check4game.


  5. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Это невероятно, но началась загрузка! Спасибо!
    Но ошибка 0xc000007b все равно появилась вначале, когда я нажала на кнопку «Установить». Надеюсь, это не повлияет на работу игры…

  6. Обращение тогда пока не закрываем, если возникнут новые проблемы напишите.


  7. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

  8. По стрелочке не выбирается устройство воспроизведения звука?


  9. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    По стрелочке пустой список


  10. waishie

    waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Все заработало! Вы — мой спаситель!

  11. Рада была помочь! Приятной игры!

Статус темы:

Закрыта.
  • Печать

Страницы: [1]   Вниз


Автор
Тема: Error code: 0301 C000007B — Please Help  (Прочитано 1373 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Sorry I don’t know russian language, only spanish (native) and english. I’m having this error:

Error ocurred while starting the program:
Error code: 0301 C000007B

Somebody know’s how to solve this problem?

Thanks in advance.


Записан


I think it’s a library error so I am restarting my OS to default settings.


Записан


  • Печать

Страницы: [1]   Вверх

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название «Ошибка при запуске приложения (0xc000007b)» и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться вообще, либо всё же запускаются, но далеко не всегда. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей аж со времен Windows 98, просто формулировались иначе. Начиная с версии Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики по причинам, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

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

Данная статья представляет собой всего-лишь теоретические выкладки по исследованию загрузчика образов операционной системы Windows. Изучение проводилось с целью создать базис для предполагаемого дальнейшего изучения особенностей кода загрузчика. На данный момент рекомендаций по исправлению ошибки c000007b в данной статье не предоставлено, поскольку практика показала неоднозначность популярных решений с использованием утилит Dependency Walker и Process Monitor.

Формат исполняемых файлов

Приступим. Для начала давайте посмотрим, что же нам сообщают разработчики об ошибке со статусом c000007b на официальной странице значений NTSTATUS? Ошибка носит символическое имя STATUS_INVALID_IMAGE_FORMAT (НЕКОРРЕКТНЫЙ ФОРМАТ ОБРАЗА), а в описании к ней присутствует следующая формулировка: «Образ либо не предназначен для выполнения в Windows или содержит ошибку..», ну и далее даются общие рекомендации. Как всегда, довольно пространное определение, не содержащее в себе значимых подробностей, однако уже позволяющее нам сделать как минимум два предположения:

  1. ошибка может содержаться в служебных структурах заголовка основного запускаемого модуля (exe-файл);
  2. ошибка может содержаться в подключаемых образах (dll-библиотеках);

Ну хорошо, а что же в себе таит утверждение о некорректном формате? Возможно, подразумевается некое повреждение структуры PE-образа? Но ведь близких по природе ошибок в PE-образе, чисто теоретически, может быть великое множество, и скорее всего так оно и есть. Одним словом, это утверждение о повреждении структуры исполняемого образа требует проверки и аргументации!! В свою очередь, для проверки следовало бы отследить, какой именно код ядра и на каком этапе выводит данное сообщение. Вероятно, если мы наблюдаем подобную ошибку до запуска приложения, то от момента щелчка правой кнопкой мыши по бинарному исполняемому файлу (например: exe-файл) в проводнике Windows (explorer.exe) и до непосредственного начала выполнения кода приложения, проходит некая скрытая от глаз пользователя работа на уровне ядра операционной системы и вот как раз эта самая работа иногда завершается с ошибкой. Одни вопросы порождают другие. Думаю, для лучшего понимания того, какая именно логика скрывается за безмолвием загрузки, надо сперва задаться вопросом «что же вообще такое представляет из себя исполняемый файл в среде Windows и как он загружается»? Всякий бинарный исполняемый файл в Windows построен на основе формата под названием PE (Portable Executable, переносимый исполняемый), который содержит в себе великое множество разнообразных секций, предназначенные для подготовки участков файла (они же блоки кода и данных), критичных для непосредственного выполнения приложения.

Portable Executable (PE) — формат исполняемых файлов и динамических библиотек, используемый в операционных системах Microsoft Windows. Фактически это довольно сложная структура данных, в которой содержится информация, необходимая системному загрузчику исполняемых образов, то есть коду ядра, который производит всю необходимую работу по подготовке исполняемого файла к непосредственному запуску (создание адресного пространства процесса, отображение файла в память, создание всех необходимых для функционирования системных конструкций и прч). В операционных системах Windows описываемый формат PE применяется при создания таких исполняемых файлов как: .exe, .dll, .sys и некоторых других.

Выходит, в системе имеется некий загрузчик образов (PE-загрузчик), естественно, ведь кто-то должен подготавливать код и данные к непосредственному исполнению. Это отлично укладывается в логику функционирования операционной системы, к тому же я про него время от времени краем уха слышал. Но это, извините, закопано где-то системе, с чего нам начать? Давайте начнем с малого, с формирования тестовой среды:

  • Операционная система: Windows 7 Профессиональная (Русская), 32-разрядная (6.1.7601) (32-битную среду я выбрал для простоты, дабы WOW64 не вносил свои коррективы);
  • Простой исполняемый модуль lasterr.exe из комплекта примеров FASM (EXAMPLESDLL) с минимумом подключаемых библиотек. Опять же, для простоты;
  • Отладчик WinDbg (версия 10.0.14321.1024) из комплекта Debugging Tools for Windows (x86);
  • Утилита Process Monitor;

Процесс загрузки образа

В моем случае, при отсутствии необходимых знаний, придется двигаться с самого начала, при этом интуитивно выискивая направления по косвенным признакам. Все те данные, которыми мы обладаем на текущий момент, подводят нас к мысли, что надо каким-то образом зацепиться за этот пресловутый загрузчик образов, но как? Единственное, что приходит в голову, так это использовать всеми нами любимую утилиту Process Monitor. Зная специфику программы, можно заранее предположить, что это будут лишь поверхностные сведения, поскольку утилита не покажет нам подробности многих этапов загрузки образа на выполнение. Но ведь что-то она нам все же даст, ведь пока мы идем в темноте и пытаемся нащупать хотя бы какие-то ориентиры для дальнейшего продвижения. Просто будем надеяться, что информация, предоставляемая нам утилитой Procmon поможет нам двинуться дальше, найти зацепку в виде каких-нибудь малозаметных деталей. Тут стратегия у нас будет достаточно простая, ничего необычного.

  1. Из-под учетной записи с правами локального администратора запускаем утилиту Procmon;
  2. В разделе Filter создаем фильтр на наше приложение lasterr.exe;
  3. Останавливаем захват событий (Ctrl+E или иконка лупы на панели);
  4. Очищаем лог (Ctrl+X или значок ластика на панели);
  5. Снова включаем захват (Ctrl+E) событий;
  6. Стартуем наблюдаемое приложение lasterr.exe, как обычно двойным щелчком из проводника;

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

  1. Образ приложения lasterr.exe загружается в адресное пространство собственного процесса по адресу 0x400000. То есть мы наблюдаем какой-то из этапов уже работающего загрузчика образов;
  2. Образ системной библиотеки ntdll.dll загружается в адресное пространство процесса по адресу 0x77c30000. Эта библиотека всегда загружается первой?
  3. Активизируется ускоритель prefetcher. В системной директории C:WindowsPrefetch проверяется .pf-файл(ы) для запускаемого приложения;
  4. Чуть ниже мы можем увидеть группу событий по операциям (CreateFile, SetBasicInformationFile, QueryAttributeTagFile, CreateFileMapping, QueryStandardInformationFile) с библиотеками ntdll.dll, kernel32.dll, apisetschema.dll, kernelbase.dll, locale.nls, errormsg.dll, user32.dll и прочими. Судя по всему это не проецирование образов, а события, генерируемые prefetcher’ом;
  5. Ниже по списку мы наблюдаем первые события с операцией Load Image, которые знаменуют собой загрузку необходимых приложению DLL библиотек в адресное пространство процесса;
  6. Еще ниже по списку событий мы наблюдаем чтение ветки HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options. Имеется в виду механизм, которых позволяет запускать образы под отладчиком;
  7. Далее мы видим считывание ключа реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVrsionWindowsLoadAppInit_DLLs. Ключ ответственен за механизм AppInit_DLLs, который позволяет определить списки DLL, загружаемые в адресное пространство «каждого» процесса;
  8. Далее идет работа с различными языковыми опциями и MUI;

Это все, что предоставляет нам Procmon. Но на самом деле в приведенном выше списке мы видим очень малую часть логики, так сказать её вершину. Обусловлено это тем, что Process Monitor показывает лишь то, до чего может сам дотянуться, и не отображает всего многообразия операций по подготовке приложения к запуску. (прим.: хотя, возможно я забыл отключить какие-то встроенные фильтры). Но даже малое порой представляет собой большое, все дело в точке зрения :) Давайте посмотрим, о чем на могут рассказать захваченные Process Monitor’ом события? Например, событие Load Image применительно к образу lasterr.exe по загрузке себя же самого по базовому адресу 0x400000 в адресное пространство процесса, определенно будет нам интересно. Щелкнем по нему пару раз и перейдем во вкладку Stack. Стек вызовов начинается с функции RtlUserThreadStart, которая является частью системной библиотеки ntdll.dll. Библиотека ntdll.dll предоставляет собой «родной» интерфейс (Native API) пользовательского режима для функций ядра, это своеобразный «мост» между функциями библиотек пользовательского режима и кодом, который реализует соответствующий функционал в ядре. Функция RtlUserThreadStart именуется подобным образом не спроста, название говорит само за себя, намекая нам на назначение данной функции. Предположительно она предназначена для старта потока внутри процесса, при содержит функционал части пользовательского режима.

RtlUserThreadStart — общая стартовая функция для всех потоков в Windows.

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

Load Image Stack

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

LdrInitializeThunk — функция обратного вызова (режим ядра -> режим пользователя) в составе библиотеки ntdll.dll, которая не столько обратный вызов, сколько точка входа, с которой все потоки пользовательского режима начинают свое выполнение. Другими словами, создание любого потока пользовательского режима всегда происходит посредством данной функции. В некоторых источниках фигурирует как процедура инициализация загрузчика, начальный его этап, отвечает за инициализацию непосредственно загрузчика, менеджера кучи, таблиц FLS, NLS, TLS, структур критической секции. Судя по всему они с RtlUserThreadStart работают в связке, но как именно, пока не ясно.

Мы получили имена двух функций, которые, судя по всему, имеют отношение к созданию потока и подготовке его к выполнению. Теперь можно переходить непосредственно к практической части исследования. Надеюсь, перед началом экспериментов у Вас уже готова тестовая среда и установлены Debugging Tools for Windows из комплекта Windows SDK и в системную переменную Path добавлен путь к необходимой версии каталога с отладчиками. Теперь задача перед нами стоит не совсем тривиальная, поскольку нам необходимо поймать момент запуска приложения, до его непосредственного выполнения и даже до момента подготовки адресного пространства процесса. К превеликой нашей радости, основными отладчиками от Microsoft поддерживаются фильтры событий, которые включают отладочный сценарий начальной стадии загрузки приложения. Насколько я понял, он может быть активирован двумя путями:

  • Настройка отладчика через GUI: через меню DebugEvent Filters. На фильтре события Create process указываем опцию Execution: Enabled. После перезапуска процесса отладчик остановится до функции LdrInitializeThunk.
  • Запуском отладчика со специальными опциями командной строки.

Например, следующая команда позволяет изучить процесс и установить точку останова до того, как код пользовательского режима запустится:

windbg.exe -xe ld:ntdll.dll lasterr.exe

опция xe подразумевает останов после того, как библиотека ntdll.dll будет загружена в адресное пространство процесса. И не спроста, потому как в самом отладчике, в командной строке, мы должны поставить точку останова:

bp ntdll!LdrInitializeThunk

а затем продолжить выполнение командой «g». Для чего это все? А для того, чтобы пропустить некоторое количество кода, которое выполняется до функции LdrInitializeThunk. Мы бы в любом случае вышли на неё, однако потратили бы дополнительное время.
Отладчик останавливается на точке остановка в самом начале функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

ntdll!LdrInitializeThunk:

77c934a6 8bff            mov     edi,edi

77c934a8 55              push    ebp

77c934a9 8bec            mov     ebp,esp

77c934ab ff750c          push    dword ptr [ebp+0Ch]  ss:0023:0006fd1c={ntdll!`string  (ntdll+0x0) (77c30000)}

77c934ae ff7508          push    dword ptr [ebp+8]

77c934b1 e816000000      call    ntdll!LdrpInitialize (77c934cc)

77c934b6 6a01            push    1

77c934b8 ff7508          push    dword ptr [ebp+8]

77c934bb e8101cfeff      call    ntdll!ZwContinue (77c750d0)

77c934c0 50              push    eax

77c934c1 e87f37feff      call    ntdll!RtlRaiseStatus (77c76c45)

77c934c6 cc              int     3

77c934c7 90              nop

77c934c8 90              nop

77c934c9 90              nop

77c934ca 90              nop

77c934cb 90              nop

Ну, судя по всему, функция LdrInitializeThunk содержит (на верхнем уровне) вызовы всего трех функций: LdrpInitialize, ZwContinue, RtlRaiseStatus, причем, я так понимаю, две последних функции являются для нас не значимыми. Выполнив отладчиком по клавише F10 команду call ntdll!LdrpInitialize я убедился, что приложение запустилось. Получается, вся работа происходит в глубинах функции Ldrpinitialize, надо идти внутрь. Первым параметром в функцию LdrpInitialize передается адрес дампа PE-файла в адресном пространстве процесса, а вторым адрес какой-то неизвестной структуры (?). Судя по всему, когда я впервые остановился на точке останове в начале функции, в первом параметре я увидел адрес подмапленной в память библиотеки ntdll.dll, поскольку она загружается самой первой. С этого момента я опускаю ряд подробностей нахождения мест кода, которые могли быть ответственны за генерацию ошибки c000007b, поскольку описание всего процесса отладки превратило бы повествование в бесконечное. Скажу лишь, что всю работу по анализу кода я проводил при помощи отладчика WinDbg и дизассемблера IDA.

Первая причина

Первая удача сопутствовала мне при обработке функции LdrpSnapIAT. Очередной раз анализируя код я поставил точку останова на данную функцию, и при выполнении отладчик остановился на следующем коде:

ntdll!LdrpSnapIAT:

77c94ca1 6a24            push    24h

77c94ca3 68f808c877      push    offset ntdll! ?? ::FNODOBFM::`string‘+0x542 (77c808f8)

77c94ca8 e847dbfeff      call    ntdll!_SEH_prolog4 (77c827f4)

77c94cad 8d45d8          lea     eax,[ebp28h]

77c94cb0 50              push    eax

77c94cb1 6a00            push    0

77c94cb3 6a01            push    1

77c94cb5 8b7508          mov     esi,dword ptr [ebp+8]

77c94cb8 ff7618          push    dword ptr [esi+18h]

77c94cbb e8caa7ffff      call    ntdll!RtlImageDirectoryEntryToData (77c8f48a)

77c94cc0 8945d4          mov     dword ptr [ebp2Ch],eax

77c94cc3 85c0            test    eax,eax

77c94cc5 0f843dc50100    je      ntdll!LdrpSnapIAT+0x26 (77cb1208)

Самое последнее условие je ntdll!LdrpSnapIAT должно уводить нас на следующую ветку кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

77cb1208 a17473c877      mov     eax,dword ptr [ntdll!LdrpLogLevelStateTable (77c87374)]

77cb120d 83c801          or      eax,1

77cb1210 8505c0f9d077    test    dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)],eax

77cb1216 7422            je      ntdll!LdrpSnapIAT+0x58 (77cb123a)

77cb1218 83c624          add     esi,24h

77cb121b 56              push    esi

77cb121c 688491c777      push    offset ntdll! ?? ::FNODOBFM::`string‘ (77c79184)

77cb1221 6a00            push    0

77cb1223 687891c777      push    offset ntdll! ?? ::FNODOBFM::`string’ (77c79178)

77cb1228 6877080000      push    877h

77cb122d 688c8ec777      push    offset ntdll! ?? ::FNODOBFM::`string (77c78e8c)

77cb1232 e813e10100      call    ntdll!LdrpLogDbgPrint (77ccf34a)

77cb1237 83c418          add     esp,18h

77cb123a a1c0f9d077      mov     eax,dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)]

77cb123f 85057873c877    test    dword ptr [ntdll!LdrpLogLevelStateTable+0x4 (77c87378)],eax

77cb1245 7401            je      ntdll!LdrpSnapIAT+0x66 (77cb1248)

77cb1247 cc              int     3

77cb1248 b87b0000c0      mov     eax,0C000007Bh

77cb124d e9f93afeff      jmp     ntdll!LdrpSnapIAT+0x129 (77c94d4b)

Понятное дело, что в штатном режиме управление туда не передается, поэтому я просто взвел флаг zero, чтобы принудительно инициировать переход. Ну и в самом конце фрагмента кода мы видим долгожданную команду mov eax, 0C000007Bh, после чего я запускаю выполнение командой g и.. вот оно:

c000007b

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

Судя по описанию с MSDN, данная функция ищет запись внутри PE-заголовка и возвращает адрес данных для этой записи (при наличии возвращает заголовок секции (IMAGE_SECTION_HEADER)) и длину, а случае ошибки возвращает ноль. Используется для поиска различных таблиц в PE-файлах.

Получается эта функция предназначена для получения секций подключаемых библиотек? Ничего не понятно, необходимо как то понять все происходящее в целом, так сказать откатиться назад, а для этого нам надо посмотреть стек вызовов:

ntdll!LdrpSnapIAT+0x2b

ntdll!LdrpHandleOneOldFormatImportDescriptor+0x120

ntdll!LdrpHandleOldFormatImportDescriptors+0x1f

ntdll!LdrpProcessStaticImports+0x25c

ntdll!LdrpLoadDll+0x33d

ntdll!LdrLoadDll+0xaf

ntdll!LdrpInitializeProcess+0xfe7

ntdll!_LdrpInitialize+0x78

ntdll!LdrInitializeThunk+0x10

Похоже что за инициализацию процесса отвечает функция LdrpInitializeProcess, которая, на определенном этапе своей работы начинает загружать библиотеки, необходимые для работы основного приложения, при помощи функции LdrLoadDll, а та, в свою очередь, начинает просматривать таблицу импорта и заполнять Import Address Table (IAT) через функцию LdrpSnapIAT. Однако стек не всегда остается подобным, при прогоне программы по команде g и остановке на точке останова, стек вызовов иногда меняется, показывая, что код загружает модули, присутствующие в таблице импорта.

Функция LdrpSnapIAT «связывает» таблицу адресов импорта с импортируемыми DLL библиотеками, перезаписывает каждую запись в таблице адресов импорта актуальным адресом импортируемой функции.

В коде функции LdrpSnapIAT имеется вызов функции RtlImageDirectoryEntryToData, которая, в свою очередь, использует RtlImageDirectoryEntryToDataEx, а та вызывает функцию RtlpImageDirectoryEntryToData32, которая уже проверяет следующие условия:

  1. Если значение входного параметра DirectoryEntry (Порядковый номер требуемой записи каталога) больше или равно (>=) значения PeHeader.OptionalHeader.NumberOfRvaAndSizes (число записей в массиве DataDirectory. обычно имеет значение 16); Поскольку DirectoryEntry может иметь только определенные значения: IMAGE_DIRECTORY_ENTRY_ARCHITECTURE (7), IMAGE_DIRECTORY_ENTRY_BASERELOC (5), IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11), IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR (14), IMAGE_DIRECTORY_ENTRY_DEBUG (6), IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT (13), IMAGE_DIRECTORY_ENTRY_EXCEPTION (3), IMAGE_DIRECTORY_ENTRY_EXPORT (0), IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8), IMAGE_DIRECTORY_ENTRY_IAT (12), IMAGE_DIRECTORY_ENTRY_IMPORT (1), IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10), IMAGE_DIRECTORY_ENTRY_RESOURCE (2), IMAGE_DIRECTORY_ENTRY_SECURITY (4), IMAGE_DIRECTORY_ENTRY_TLS (9), он действительно не должен быть >=16!
  2. Если значение поля PeHeader.DataDirectory.Export библиотеки = 0. В коде функции для поиска местоположения структуры Object Table используется yнивеpсальная формула: pe_header_offset + rva_entries_number*8 + 78h; здесь: pe_header_offset — смещение от начала файла до PE-заголовка (смещение 3Ch), rva_entries_number — количество записей в таблице объектов. После вычисления мы попадаем на первую запись структуры IMAGE_DATA_DIRECTORY, которая содержит относительный адрес (RVA) таблицы экспорта. Предположение: в уже загруженной в адресное пространство процесса DLL, которая должна предоставлять экспортируемые функции нашей основной программе (иначе бы она не была загружена), отсутствует таблица экспорта? Подобная ситуация не допустима и явно ошибочна.

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

Когда после запуска исследуемого приложения под отладчиком, при первом останове на функции LdrpSnapIAT пытаешься принудительно выйти на данную ветку кода, то ошибка не появляется! Могу предположить, что при первом вызове функции анализируется какая-то важная системная библиотека, поскольку из данных Procmon было видно, что первой загружается ntdll.dll, то можно предположить что так оно и есть. Соответственно, отказ в загрузке её самой (вероятно) не может быть завершен ошибкой, и загрузка приложения lasterr.exe в этом случае просто «тихо» завершается не выводя никаких сообщений, иными словами приложение не запускается без каких-либо ошибок, просто ничего не происходит. Поэтому, я несколько раз выполнил команду g и начал анализировать функцию со второго и последующих её вызовов, что дало видимые результаты.

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

Наименование функции Предполагаемая причина
LdrpResGetMappingSize Проверка кода NTSTATUS при возврате из функции RtlImageNtHeaderEx. Если он не нулевой (ошибочный), то проверяются первые два байта опционального заголовка на значение 10Bh (32-битный заголовок) и 20Bh (64-битный заголовок), если не соответствует ни одной из них — ошибка.
LdrpResGetResourceDirectory Код функции уходит на ошибку после нулевого результата выполнения вложенной функции LdrpSectionTableFromVirtualAddress, которая возвращает 0 в случае нулевого смещения PE-заголовка (в нормальной ситуации должно быть 00400080) и нулевого значения слова по смещению в заголовке = начало PE заголовка (00400080) + SizeOfOptionalHeaders + 18h, то есть первое слово Таблицы Секций (Section Table). Опять же, если мы получили Section Table, далее выполняется еще несколько проверок уже непосредственно над полями самой секции, и c000007b генерируется если некоторые поля (SizeOfRawData и прочие) в Section Table некорректны.
LdrpResCompareResourceNames Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
LdrpResSearchResourceInsideDirectory Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
RtlImageNtHeaderEx Ошибка генерируется внутри функции по нескольким условиям, скорее всего сюда же попадает попытка загрузки библиотеки «иной» (нежели основной модуль) разрядности. Предположение: при попытке запуска 64-битного приложения, у которого в импорте оказывается функция из 32-битной библиотеки или наоборот?

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

Общее решение

Можно встретить две основные рекомендации по устранению ошибки c000007b:

  1. В некоторых случаях для решения подобной проблемы предлагается использовать утилиту Dependency Walker, которая позволяет просматривать импортируемые и экспортируемые сбойным модулем библиотеки, и, соответственно, выявить библиотеки, которые по тем или иным причинами не смогли подгрузиться. Но средство позволяет выявить лишь часть причин возникновения ошибки c000007b, поскольку:

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

    ..к тому же, DW грешит еще и тем, что иногда не обнаруживает всех импортируемых модулем библиотек.

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

Тем не менее, описанные инструменты позволяют обнаруживать большинство причин возникновения ошибки c000007b, они могут быть использованы в качестве стартового инструментария, и уже при невозможности решить проблему с их помощью, единственным средством остается отладчик. Лишний раз хочется кинуть камень в огород разработчиков, поскольку они могли бы значительно облегчить определение причины ошибки c000007b путем расширения статусных кодов и введения подробного описания, однако это потребовало бы доработки загрузчика образов. Но поскольку подобная глобализация множества разнородных ошибок под одним статусным кодом в программах под Windows характерна еще со времен Windows 2000, думаю, что ситуация в ближайшее столетие не поменяется :)

Ошибка 0xc000007b возникает при запуске приложений Windows, программ или игр. Код не сообщает рядовому пользователю ничего о том, что произошло, почему так, и как исправить ситуацию. Если человек не обладает достаточной компетенцией, будет сложно определить, что же пошло не так.

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

Причины возникновения

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

  • Неполадки совместимости;
  • Ограниченный доступ к запуску, приложение требует исключительных полномочий;
  • Повреждения файлов программы или игры при установке, прерванная установка;
  • Ограничения антивируса на запуск приложения;
  • Повреждения файлов библиотек;
  • Повреждения файлов драйверов;

В зависимости от причины, которая приводит к сбою, применяется определенный метод решения проблемы. Часто возникает данная ошибка при запуске приложения. Например, часто мешает запуску itunes .

Как исправить ошибку 0xc000007b при запуске игры или программы? Методы решения

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

Метод 1

Проблемы совместимости приложения вызваны конфликтом между операционной системой пользователя и запускаемым приложением, когда программа или игра создана для одной операционной системы, а устанавливается на другую. Например, игра предназначена для Windows XP, но установка и запуск производится на Виндовс 7. Тогда идет речь о причине, связанной с неполадками совместимости.

Исправить проблему легко: правой кнопкой на исполняемом файле(.exe) приложения — строка “Свойства” — вкладка “Совместимость” — поставить галочку рядом с надписью “Запуск в режиме совместимости” — выбрать из списка нужный вариант. Если не помогает один, то перепробовать все, что имеется в списке.

 Совместимость версий ОС

  Метод 2

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

 Запуск от имени администатора

 Метод 3 (самый распространенный)

Проблема возникает именно при повреждении архивов и файлов библиотек, необходимых для исполнения алгоритма запуска. В данном случае это — неисправности, конфликты, отсутствие файлов Visual C++, DirectX, .net Framework. Указанные библиотеки служат средством запуска большинства приложений, поэтому вероятность, что ошибка вызвана проблемой внутри них, стремится к 100%.

Для решения нужно установить/обновить отсутствующие библиотеки. Хочется отметить, что нужно устанавливать не самую последнюю версию, а все. Например библиотека Visual C++, должна быть установлена от 2005 версии до 2015. (Более подробнее на самой странницы с библиотекой). Также, обратите внимания, что библиотеки могут уже быть установленными, но работают не правильно из-за отсутствующих или поврежденных файлов. В таком случаи, рекомендуем удалить все версии через «Программы и компоненты», и установить всё снова.

 Программы и компоненты

Метод 3 стоит использовать, если возникла ошибка в игре Teamspeak 3, – это рекомендация производителя по исправлению. В этом случае также можно попробовать установить другую версию приложения, например, не 64х-, а 32х-разрядную.

Метод 4

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

Метод 5

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

Метод 6

Повреждения файлов драйверов приводят к подобным ошибкам. Отдельное внимание уделить ПО на видеокарту. Пробуйте обновить драйвера на сайте производителя. Если не помогло, удалите драйвер и установите его “чистым” способом. Для этого нужно предварительно скачать драйвера на Nvidia или ATI Radeon, в зависимости от производителя и модели видеокарты.Обновление драйверов

Заключение

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

Если у Вас остались вопросы, можете задавать их в форме комментариев чуть ниже

Видео: Ошибка при запуске приложения 0xc000007b — как исправить?

Код ошибки P0301 – обнаружены пропуски зажигания в цилиндре 1

Код ошибки P0301 звучит как «обнаружены пропуски зажигания в цилиндре 1». Часто, в программах, работающих со сканером OBD-2, название может иметь английское написание «Cylinder 1 Misfire Detected».

Техническое описание и расшифровка ошибки P0301

Код ошибки OBD-II P0301 является общим, который звучит как «Обнаружены пропуски воспламенения в цилиндре №1». Устанавливается, когда PCM (модуль управления трансмиссией) обнаруживает пропуски зажигания в первом цилиндре.

Код ошибки P0301 – обнаружены пропуски зажигания в цилиндре 1

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

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

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

Симптомы неисправности

Основным симптомом появления ошибки P0301 для водителя является подсветка MIL (индикатор неисправности). Также его называют Check engine или просто «горит чек».

Также они могут проявляться как:

  1. Загорится контрольная лампа «Check engine» на панели управления (код будет записан в память ECM как неисправность).
  2. Двигатель глохнет либо плохо заводится.
  3. Плавающие обороты, а также попытки заглохнуть на холостом ходу.
  4. Дерганье/пропуски зажигания на холостом ходу или под нагрузкой.
  5. Плохой набор скорости.
  6. Повышенный расход топлива.
  7. Снижение мощности двигателя.
  8. Запах топлива из выхлопа.

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

Причины возникновения ошибки

Код P0301 может означать, что произошла одна или несколько следующих проблем:

  • Неисправные или изношенные свечи.
  • Износ или повреждение проводов зажигания.
  • Выход из строя катушки.
  • Кислородный датчик неисправен.
  • Повреждение топливных форсунок.
  • Утечка вакуума.
  • Низкое давление топлива.
  • Неисправен датчик положения распредвала.
  • Неисправность датчика положения коленчатого вала.
  • Засорение трубок или клапана системы рециркуляции отработавших газов.
  • Забиты каталитические нейтрализаторы.
  • Датчика расхода воздуха неисправен.
  • Неисправность датчика положения дроссельной заслонки.
  • Протекающая прокладка головки блока цилиндров.
  • Низкая компрессия двигателя.
  • Некачественное топливо.
  • Иногда причиной является неисправный модуль PCM.

Как устранить или сбросить код неисправности P0301

Некоторые предлагаемые шаги для устранения неполадок и исправления кода ошибки P0301:

  1. Используйте ОБД сканер, чтобы убедиться, что нет других ошибок. Если они присутствуют, рекомендуется их устранить в первую очередь.
  2. Осмотрите надежность крепления разъемов на катушках зажигания или повреждения проводки. Также ищите ослабленные провода массы двигателя. Это может вызвать случайные пропуски зажигания. При необходимости затяните или исправьте.
  3. Проверьте состояние свечей зажигания и их проводов. Изношенные и старые провода свечей зажигания – частые причины случайных пропусков. При необходимости замените свечи и провода.
  4. Необходимо замерить давление топлива. Низкое давление может вызвать периодические пропуски зажигания в нескольких цилиндрах. Когда давление ниже спецификации, двигатель не получает должного количества топлива и начинает обеднять смесь. Топливный насос или регулятор давления могут быть источником низкого давления.
  5. Убедитесь, что топливные форсунки работают правильно и активируются. Случайные пропуски зажигания могут быть признаком неисправности или засорения топливных форсунок, которые необходимо заменить. Также убедитесь, что проводка топливной форсунки не повреждена и правильно подсоединена.
  6. Если система зажигания и топливная система проходят проверку, вы можете выполнить проверку компрессии двигателя и проверку утечки, чтобы увидеть, есть ли какие-либо механические проблемы, вызывающие пропуски зажигания.

Диагностика и решение проблем

Иногда при обнаружении неисправности P0301 не наблюдается никаких симптомов. Самое простое в этом случаи просто сбросить код и посмотреть, вернется ли он.

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

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

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

На каких автомобилях чаще встречается данная проблема

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

  • Audi (Ауди а3, Ауди а4, Ауди А5, Ауди а6, Ауди ТТ)
  • BMW (БМВ Х3, БМВ Х5, E60)
  • Chery
  • Chevrolet (Шевроле Авео, Импала, Каптива, Круз, Лачетти, Орландо, Спарк)
  • Chrysler (Крайслер Таун Кантри, 300c)
  • Citroen
  • Daewoo (Дэу Нексия)
  • Dodge (Додж Караван, Стратус)
  • Fiat
  • Ford (Форд Мондео, Рейнджер, Таурус, Фокус, Эскорт)
  • Geely (Джили Эмгранд)
  • Honda (Хонда Аккорд, Пилот, СРВ, Цивик, Элемент)
  • Hummer H3
  • Hyundai (Хендай Акцент, Гетц, Санта фе, Солярис, Туксон, Элантра)
  • Infiniti
  • Jeep (Джип Гранд Чероки)
  • Kia (Киа Рио, Сид, Спортейдж)
  • Lexus (Лексус rx300, rx350)
  • Mazda (Мазда 3, Мазда 6, Мазда cx7, Мазда cx9)
  • Mercedes (Мерседес w203)
  • Mitsubishi (Митсубиси Аутлендер, Галант, Лансер, Паджеро, L200)
  • Nissan (Ниссан Альмера, Кашкай, Мурано, Тиида, Х-Трейл)
  • Opel (Опель Антара, Астра, Вектра, Зафира, Инсигния, Корса, Мерива)
  • Peugeot (Пежо Боксер)
  • Renault (Рено Дастер, Логан, Сандеро)
  • Saturn (Сатурн SC)
  • Skoda (Шкода Йети, Октавия, Фабия)
  • Ssangyong (Саньенг Кайрон)
  • Subaru (Субару Форестер)
  • Suzuki (Сузуки Гранд Витара, sx4)
  • Toyota (Тойота Авенсис, Камри, Королла, Приус, Рав4, Хайлендер)
  • Volkswagen (Фольксваген Гольф, Пассат, Поло Седан, Туарег, Тигуан)
  • Volvo
  • ВАЗ 2107, 2110, 2112, 2114, 2115
  • Волга Сайбер
  • Газель Бизнес, умз 4216
  • Лада Веста, Гранта, Калина, Ларгус, Нива, Приора
  • Уаз Патриот

С кодом неисправности Р0301 иногда можно встретить и другие ошибки. Наиболее часто встречаются следующие: P0118, P0134, P0175, P0300, P0302, P0303, P0304, P0305, P0306, P0202, P0507.

Источник: autonevod.ru

Ошибка P0300 – пошаговая инструкция по диагностике и ремонту

П оявление ошибки P0300 указывает на пропуски зажигания в цилиндрах, что становится причиной ухудшения характеристик езды и может провоцировать более сложные поломки. На английском звучит так: ««Random cylinder misfire detection system»».

Чаще всего пропуски возникают по причине отсутствия искры, проблемах, связанных с подачей топлива или неисправностей в системе выпуска отработанных газов.

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

На каких авто чаще всего возникает ошибка?

Профессиональные автоэлектрики отмечают частое появление таких проблем на автомобилях ВАЗ, Шевроле Лачетти, Ниссан, Рено, Mitsubishi, УАЗ Патриот, Хендай Солярис, Приора.

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

Связанные ошибки

Некоторые автомобили позволяют более точно диагностировать ошибку, прибор выдает коды Р0301, Р0302, Р0303, Р0304, Р0305, Р0306 и т. д., указывающие на отказ в работе конкретного цилиндра двигателя, что упрощает диагностику.

Признаки ошибки

Проблемы с работой цилиндров могут проявлять себя следующими признаками:

  • двигатель трудно заводится (особенно холодный);
  • подергивание на холостых оборотах (мотор «троит»);
  • снижение мощности;
  • возрастание расхода топлива;
  • запах топлива из выхлопной трубы;
  • «прострелы» в глушителе.

Во всех случаях на панели загорается индикатор Check Engine.

Следствия появления

Неработающий цилиндр, кроме потери мощности двигателя, вызывает дополнительные негативные последствия:

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

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

Ошибка р0016: что обозначает, причины, способы устранения

Условия возникновения P0300

Для предупреждения фиксации ложных ошибок программа ЕСМ имеет несколько предохранительных алгоритмов:

  • запись в память происходит спустя 2–4 мин. работы двигателя (в зависимости от оборотов);
  • количество пропусков ≥ 3,25% общего числа вспышек за 1000 оборотов коленчатого вала;
  • одновременно не работает два и более цилиндра.

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

Причины возникновения

Появление ошибки P0300 становится следствием неисправности нескольких узлов и систем.

Наиболее часто не работают свечи зажигания (физически изношены, нарушены оптимальные зазоры между электродами, короткое замыкание электродов из-за засорения, механические повреждения). Реже выходит из строя модуль или катушка, совсем редко обрывается провод высокого напряжения.

Забиты или изношены сопла форсунок, несоответствующее требованиям по качеству топливо, износ топливного насоса (низкое давление), забит топливный фильтр.

Впуск топливной смеси и выпуск выхлопных газов

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

Электронный блок управления

Отказ датчиков РВ или КВ, неправильная работа датчика детонации, температуры и объема всасываемого воздуха. Обнаружить сбои в функционировании ЭБУ может лишь профессиональный мастер.

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

Частые способы решения проблемы

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

Что можно сделать в гараже самостоятельно:

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

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

В мастерскую рекомендуется обращаться, если для устранения ошибок надо:

  • обнаружить и устранить разгерметизацию или засорения топливопроводов;
  • поменять прогоревшую прокладку головки блока цилиндров;
  • поменять катализатор;
  • установить новый или перепрошить ЭБУ автомобиля;
  • поменять двигатель с критическими поломками.

ВАЖНО: если на одной или нескольких свечах обнаружен толстый черный нагар, то это свидетельствует об износе маслосъемных колец или сальников клапанов.

Ремонты сложные, могут выполняться только в условиях СТО.

Ошибка P0336 – причины, диагностика, устранение неисправности

Диагностика и рекомендации по устранению неисправностей

Диагностирование проблемы делается сканером OBD-I (для автомобилей, выпущенных до 1996 года) или сканером OBD-II (для автомобилей выпуска после 1996 года).

Разберем на примере сканера LAUNCH PRO на Android X-431.

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

С целью обнаружения ошибок надо провести следующие действия:

  1. Запустить двигатель, подключить сканер.
  2. Выбрать режим «Тестирование привода», перейти в меню «Баланс мощности»,
  3. Выбрать функцию «С монитором». Это позволит пользоваться дополнительными возможностями сканера.
  4. Из многих выданных параметров поставить галочку на «Скорость вращения». Остальные нам в этом случае не требуются и будут лишь отображать ненужную информацию.
  5. Запомнить показатели количества оборотов двигателя, по этому значению выявляется проблемный цилиндр.
  6. Выбрать из таблицы на мониторе первый цилиндр, подтвердить выключение его форсунки. Если обороты упали, значит, она в рабочем состоянии. Дополнительно рекомендуется ориентироваться на звук работы мотора. Отмените задачу выключения тестируемой форсунки, обороты двигателя должны увеличиться.
  7. По такому же алгоритму проверять по очереди все цилиндры. Неисправный тот, при отключении которого обороты коленчатого вала не падают. Для исключения ошибки повторно проверьте изменение оборотов после его отключения.

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

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

  • в программе осциллографа нажмите «Запись»;
  • прокрутите стартером двигатель в течение 5–10 секунд;
  • нажмите «Анализ», перейдите в «Скрипт»;
  • выберите тип двигателя и количество цилиндров;
  • обратите внимание на показатели компрессии по цилиндрам.

Если они не ниже 95% – все в норме. У проблемных цилиндров значения будут заметно хуже.

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

  • запустите двигатель;
  • с помощью специальной активной линейки проверьте наличие искры на каждом цилиндре. Оптимальное время накопления заряда примерно 4 мск., время горения 3,5 мск.

Как найти неработающий цилиндр карбюраторного двигателя без сканера

Осциллограф, сканер и специальная активная линейка есть далеко не у каждого автолюбителя.

Но обнаружить проблему можно и без них, для этого:

  • заведите автомобиль;
  • по очереди снимайте провода высокого напряжения с каждой свечи;
  • обращайте внимание на изменения оборотов.

ВАЖНО: на свечи подается напряжение более 20 000 вольт, но с малым током. Оно не убьет, но ощущения неприятные, лучше работать в резиновых перчатках.

Если нашли неработающий цилиндр, то можно проверить, что именно не работает: катушка или свеча. Как это делается?

Приблизьте открытый конец провода к блоку цилиндров примерно на 2–3 мм. Проскакивает регулярная искра – с катушкой все в порядке, проблема со свечой. К системе зажигания претензий нет – неисправность в топливной системе.

Надо вынимать форсунки и проверять их на специальном стенде. Нет возможности или желания ­– сразу меняйте неработающую.

Ошибка p0340, причины, диагностика, устранение неисправности

Устранение неисправностей

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

Система зажигания на бензиновых двигателях.

Прозваниваются и очищаются от грязи провода высокого напряжения, меняются катушки.

Практический совет. Вначале можно поменять катушки местами и повторно определить неработающий цилиндр. Т.е. снять катушку с работающего цилиндра и установить на другой. Снять тестером показания ошибок (можно использовать ELM327). Если цифра изменилась, к примеру, с Р0301 на Р0303, то катушка неисправна.

Модуль зажигания диагностируется профессиональным тестером.

Провода высокого напряжения проверяются мультиметром, заменяется их сопротивление, которое должно быть в пределах 4 – 10 кОм.

Проблемная выкручивается из блока специальным ключом. Делается визуальный осмотр ее состояния, надо обращать внимание на:

  • цвет (работающая светло-коричневая по всей внутренней поверхности);
  • наличие сажи (работающая чистая);
  • наличие масла или топлива (работающая сухая);
  • состояние электродов;
  • зазор между электродами.

Визуально обнаружить проблемную сложно, но можно пойти методом их замены между цилиндрами.

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

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

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

Клапан EGR и прокладка коллектора впуска.

Проблема выявляется при диагностировании сканером по параметру «Долгосрочная коррекция топлива», нормальная не должна превышать ±10% от регламентного значения. Неисправные элементы меняются новыми.

Подлежит замене после существенного ухудшения качества очистки из-за прогорания или естественного износа.

Установка впрыска и зажигания.

Проверяются заводские установки и целостность приводов.

Что касается электронного блока управления, то его можно доверять лишь опытным специалистам.

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

Ошибка P0011 — причина, диагностика, способы устранения неисправности

Ошибки при диагностике

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

Еще один совет ­– делать максимально глубокое сканирование по всем проблемам, которые обнаружились одновременно с кодом Р0300 и ликвидировать их.

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

Дополнительные советы по устранению ошибки P0300

Главная рекомендация – до начала работ следует изучить теоретические материалы и составить план действий.

После выполнения каждой операции надо удалить коды и сделать повторную диагностику сканером.

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

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

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

Еще одна интересная причина ошибки P0300 – нет сигнала с датчика скорости, установленном на КПП. Элементы могут быть трехконтактными электронными и двухконтакными с присоединенным тросиком спидометра.

Если датчик плохо зафиксирован, с окисленными или поломанными контактами, то на автомобилях Daewoo Nexia отечественной сборки ЭБУ показывает такую ошибку. После замены или надежного закрепления проблема пропадает.

С научной точки зрения это объяснить невозможно. Есть только одна логическая гипотеза – блоки управления делались отечественными производителями по программе импортозамещения. Итог – не так составили программу или неправильно использовали микросхемы.

Получайте новые статьи в реальном времени.

Источник: autotopik.ru

Ошибка при запуске 0xc000007b HELP!

Утвержденное решение

Добрый день! Сегодня столкнулся с проблемой при запуске. Как всё было: запустил Apex Legends, всё отлично работало, сходил на 10 минут в магазин, прихожу компьютер перезагружен и при запуске игры выскакивают 2 ошибки (скрины прилагаю) 0xc000007b и следом Untrusted system file (C:WindowsSystem32normaliz.dll). Помогите плиз, уже всё перепробовал, переустанавливал Visual C х86 и х64, CCcleaner’ом проверял реестр, антвирусом весь комп тоже проверил, удалял Изи античит и проверял целостность файлов игры, ничего не помогает. Блииииин, баттл-пасс горит, надо звезды бить!))))

Сообщение 1 из 8 (2 490 просмотров)

Утвержденное решение

Re: Ошибка при запуске 0xc000007b HELP!

  • Отметить как новое
  • Закладка
  • Подписаться
  • Подписка на RSS-канал
  • Ссылка на сообщение
  • Печать
  • Пожаловаться

ноября 2020 — последнее изменение ноября 2020

Проблем с игрой нет,ЕAC стал агрессивнее

Попробуйте заменить файл normaliz.dll рекомендуется перезагрузить Windows

Сборка,будут проблемы а античитом.(если DLL не имеет сертификата или изменён)
Установите другую сборку,от другого автора.

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

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

Я волонтер, не работаю в EA или Respawn

Вам понравился ответ? Оцените + XP! Был ли этот вклад решением вашей проблемы?
Нажмите «Утвердить решение», чтобы публикация была видна всем пользователям!

Возникли проблемы с игрой ? Пишите , а мы поможем!

Сообщение 5 из 8 (2 458 просмотров)

Все ответы

Re: Ошибка при запуске 0xc000007b HELP!

  • Отметить как новое
  • Закладка
  • Подписаться
  • Подписка на RSS-канал
  • Ссылка на сообщение
  • Печать
  • Пожаловаться

ноября 2020 — последнее изменение ноября 2020

sfc /scannow
В течение 5-10 минут эта системная утилита Windows проверит наличие ошибок в файлах операционной системы и попробует их исправить. Есть вероятность того, что проблема будет решена.

2.произвести откат системы до более раннего состояния, когда ошибка еще не проявляла себя. Если сообщение о 0xc000007b стало появляться после того, как вы установили обновления Windows или драйверов, то зайдите в панель управления Windows, выберите пункт «Восстановление», запустите восстановление, после чего отметьте галочкой «Показать другие точки восстановления» и запустите процесс, приведя компьютер к тому состоянию, когда ошибка себя еще не проявляла.

3.Переустановка самой игры

4. С учетом того, что у многих наших пользователей на компьютере установлены так называемые «сборки» Windows, то причина может крыться в ней самой. Переустановите Windows на другую, лучше оригинальную, версию.

Я волонтер, не работаю в EA или Respawn

Вам понравился ответ? Оцените + XP! Был ли этот вклад решением вашей проблемы?
Нажмите «Утвердить решение», чтобы публикация была видна всем пользователям!

Возникли проблемы с игрой ? Пишите , а мы поможем!

Источник: answers.ea.com

Все коды ошибок для Audi

Все комбинации неисправностей формата OBD2 (ОБД2) состоят из пяти знаков.

На первом месте всегда располагается буква, указывающая на тип системы:

  • P – неполадки, зафиксированные в работе силового агрегата или автоматической трансмиссии;
  • В – неисправности в функционировании кузовных систем (модулей центральных замков, систем управления кузовом, электрическими стеклоподъемниками, подушками безопасности и т. д.);
  • С – неполадки в работе ходовой составляющей;
  • U – проблемы, связанные с работой электроники, а также взаимодействия между электрнными управляющими модулями по CAN.

Второй знак всегда обозначает стандартность или специфичность неисправности.

  • 0 – общий индекс для всех комбинаций OBD (ОБД);
  • 1, 2 – персональный код производителя транспортного средства;
  • 3 – зарезервированный символ.

Третий знак определяет тип неполадки:

  • 0 – неисправности, связанные с функционированием систем подачи горючего, воздуха, а также дополнительного уменьшения токсичности отработавших газов;
  • 1 и 2 – неполадки в работе систем воздухоподачи и горючего;
  • 3 – сбои, зафиксированные в работе одного из узлов системы зажигания, а также устройств контроля пропусков воспламенения топливовоздушной смеси;
  • 4 – дополнительная системы контроля выбросов;
  • 5 – система контроля скорости автомобиля, а также холостых оборотов силового агрегата;
  • 6 – неисправности электронных управляющих моделй или проводки, к которой они подключены;
  • 7 , 8 и 9 – неполадки в работе коробки передач.

Последние два знака определяют число, которое соответствует порядковому номеру комбинации ОБД.

Коды ошибок Ауди могут выводиться в четырех-, пяти- и шестизначном форматах.

Важно знать

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

Таблица с ошибками

Описание общих ошибок

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

Неисправности топливной системы

Возможные причины проблемы:

  • выход из строя или сбои в работе топливного насоса в результате естественного износа;
  • забитая сеточка в фильтрующем элементе;
  • неверные показания, отправляющиеся контроллером низкого давления топлива.

Ошибка сопровождается следующими признаками:

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

Возможные причины проблемы:

  1. Неисправность топливного насоса, расположенного в баке. Возможно, проблема состоит в плохом контакте устройства с проводкой, вызванном окислением или образованием коррозии на контактах разъема.
  2. Выход из строя контроллера давления горючего. Возможно, проблема также связана с плохим контактом датчика с сетью.
  3. Неверная регулировка клапана давления горючего. Основным признаком такой проблемы является долгий запуск двигателя при длительном прокручивании коленчатого вала стартером. Возможно повреждение топливных магистралей или ослабление одного из хомутов.
  4. Выход из строя топливной форсунки. Надо проверить визуально работу этих элементов, а также протестировать их мультиметром.
  5. Износ толкательного устройства, расположенного в топливном насосе высокого давления. Замена толкателя ТНВД должна осуществляться не реже, чем каждые 50 тысяч км пробега.

Возможные причины неисправности:

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

Неисправности, связанные с работой сажевого фильтра

Ошибки формирования горючей смеси

Возможные причины неполадки:

  1. Сбои в работе системы подачи горючего, а также неправильный состав топливовоздушной смеси. В результате примесей, которые содержатся в топливе, форсунки могли забиться и функционировать некорректно при определенном режиме работы силового агрегата или постоянно. Проблемы могут сопровождаться «троением» двигателя под высокой нагрузкой на холостом ходу, после прогрева или на холодном двигателе.
  2. Неисправности в работе системы зажигания, высоковольтных проводов и других компонентов. Засорение свечей, образование на них нагара, а также поломка или плохой контакт катушки – наиболее частые причины.
  3. Падение уровня компрессии или ее разброс в разных цилиндрах двигателя. Это может произойти при износе или разрушении поршневых колец, а также их залегании. Проблема может проявиться при сбоях в работе газораспределительного механизма.

Неисправность двигателя

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

Неисправность датчиков

Неисправности электрики и электроники

Неисправности, связанные с отсутствием связи

Основные причины, характерные для всех неисправностей, описанных в этом разделе:

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

Неисправности трансмиссии

Описание десятичных кодов

Возможные причины неисправности:

  • поломка или проблемы с подключением датчиков антиблокировочной системы;
  • неисправность в работе модуля управления АБС;
  • отсутствие связи по интерфейсу CAN.

При поломке контроллера проявляются следующие признаки:

  • некорректная работа двигателя (троение силового агрегата, снижение мощности, посторонний металлический стук из-под капота);
  • появление значка Чек Энджин, а также индикатора в виде масленки на панели приборов;
  • падение уровня моторной жидкости.

Описание шестнадцатеричных кодов

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

Возможные причины проблемы:

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

Возможные причины проблемы:

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

Если узел работает некорректно, это сопровождается следующими признаками:

  • сложности запуска двигателя;
  • увеличение расхода горючего;
  • появление рывков при движении, во время набора скорости и увеличении нагрузки на силовой агрегат;
  • увеличение объема оборотов при работе мотора на холостом ходу;
  • задержка при увеличении скорости движения;
  • появление хлопков, доносящихся из коллектора;
  • самопроизвольная остановка силового агрегата при работе на холостых оборотах;
  • появление на приборной панели лампочки Check Engine, которая может гореть постоянно или с перерывами.

Возможные причины проблемы:

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

Неисправность в работе генераторной установки сопровождается следующими признаками:

  • сложность запуска двигателя независимо от того, прогрет силовой агрегат или нет;
  • снижения яркости при свечении фар или мерцающее освещение;
  • на панели приборов транспортного средства появился индикатор в виде аккумулятора;
  • свист из-под капота, который издает приводной ремешок;
  • перегрев ремня и разрушение изделия;
  • появление шуршащего или звенящего стука из-под капота;
    электрический гул, доносящийся от генератора.
  • неисправность проводки (обрыв, короткое замыкание на плюс или «массу»);
  • засорение разъема питания оптических элементов;
  • расплавление контактов в колодке в результате перенапряжения электросети;
  • выход из строя одного из предохранительных устройств или реле.

Возможные причины неполадки:

  • неисправность аккумуляторной батареи (разряд, естественный износ, утечка электролита, длительное хранение при низких температурах);
  • выход из строя генераторной установки или одного из ее конструктивных элементов (щеток, реле регулятора напряжения);
  • плохое подключение генератора к электросети из-за окисления или образования коррозии на разъеме;
  • использование дополнительного электрооборудования, напряжение которого не соответствует номинальному;
  • проблемы в работе противоугонной системы.

Возможные причины неполадки:

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

Возможные причины неполадки:

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

Коды ошибок Ауди рассмотрены для следующих моделей:

Как диагностировать ошибку?

Полезно знать

Есть два варианта диагностики автомобилей Audi – с помощью компьютера (более точный), и тестирование с применением светодиодной лампочки. Во втором случае диагностика производится с применением специального разъема.

В зависимости от модели и года выпуска, расположение диагностической колодки может быть разным:

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

Процедура самодиагностики выполняется следующим образом:

  1. Силовой агрегат машины заводится и прогревается до рабочих температур. Надо учитывать, что коды ошибок кислородных датчиков (лямбда-зондов) получится считать исключительно после длительной поездки продолжительностью не менее 10 минут.
  2. Двигатель останавливается, после чего производится активация зажигания. В случае, если силовой агрегат изначально не удалось запустить, то нужно покрутить коленчатый вал в течение 6 секунд и оставить систему зажигания включенной.
  3. Используя предохранительное устройство производится замыкание тестовых контактов над реле бензонасоса не менее, чем на пять секунд. Затем элемент надо отсоединить, что приведет к морганию светодиодного индикатора неисправностей.
  4. Начнется процедура считывания кодов. Одна серия вспышек указывает на первый символ комбинации, вторая серия – на второй и т. д. В каждом цикле по несколько мерцаний длительностью 1-2 секунды с небольшим промежутком продолжительностью 2,5 м.

Схемы для замыкания контактных элементов на диагностической колодке

Как сбросить ошибку?

Существует несколько вариантов удаления кодов ошибок из памяти блока управления:

  1. С помощью программного обеспечения VAG-COM. В утилите есть специальный раздел, позволяющий удалить комбинации неисправностей после проведения диагностики.
  2. Отключением клемм аккумуляторной батареи от устройства. Надо отсоединить зажимы на несколько минут, после чего подсоединить их обратно. При таких манипуляциях могут сброситься некоторые настройки, к примеру, времени или автомагнитолы. Однако надо учитывать, что таким образом удаляются не все ошибки из памяти бортового компьютера, а только наименее критические – серьезные коды останутся в блоке управления.
  3. Еще один вариант – удалить коды ошибок с помощью бортового компьютера. На дисплее панели приборов нужно выбрать пункт подменю «The Pressure monitoring», используя кнопки комбинации. Если бортовой компьютер русифицирован, то выбирается меню «Контроль давления». В следующем окне необходимо указать подраздел «Store curr monitoring». Комбинации неисправностей после этого должны удалиться из памяти микропроцессора.
  4. Также для удаления можно воспользоваться следующим алгоритмом (может работать не на всех моделях Ауди). Сначала производится активация зажигания, после чего нажимается или вытягивается кнопка, расположенная рядом со спидометром. На приборной панели появится надпись «Service». Кнопку необходимо удерживать в таком состоянии, пока на экране не отобразится сообщение «Service in —–km—–».

Видео: удаление ошибки из памяти блока управления

Канал «the unexpected» в своем видеоролике показал процесс стирания комбинаций неисправностей из управляющего модуля автомобиля Ауди.

Стоимость диагностики ошибок для Audi на СТО Москвы и Питера

Примерные цены на оказание услуг диагностики с помощью компьютеров или сканеров приведены в таблице:

Город Название компании Адрес Номер телефона Цена
Москва Север Моторс Ул. Дубнинская, 83 +7 499 685-18-21 2500 руб.
Серебряный слон Ул. Пяловская, 7 +7 499 488-18-88 3500 руб.
Санкт-Петербург Автомагия Ул. Учительская, 23 +7 812 701-02-01 2000 руб.
ClinliCar Большой Сампсониевский пр., 61к2 +7 812 200-95-63 3000 руб.

Видео: удаление кодов ошибок своими руками

Канал «AkerMehanik» в своем видеоролике подробно описал процедуру удаления кодов из памяти бортового компьютера автомобиля Ауди с помощью программного обеспечения «Вася Диагност» версии 11.11.2.

Источник: kodobd.top

  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  

Рекомендуемые сообщения

  • Жалоба

при запуске клиента после загрузки gameguard, новый патч, на старом патче клиент запускался без проблем
-чек файлов аптейтером результатов не дает.
— антивируса нет.
— система чиста (последние обновления)
— direct (обновлено)
— с++ и прочие библиотеки обновлено
— защитник виндовс отключен
— в свойствах файлов запрет/права на доступ не ограничены
— гугл толкового не подсказал кроме команды:

get-childitem “местоположение папки” | unblock-file
и
bcdedit /set TESTSIGNING OFF 
через PowerShell и СMD соответственно
клиент был скачан чист, с 2 разных источников, 
Help :ph34r:
657567.jpg

в просмотре событий…

12312312.jpg
12312312-2.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

26 минут назад, SereZa сказал:

занимательная ошибка :) тырнеты пустые. ток в одном месте буржуйский тред, но там какая-то пурга про какой-то там blackdesert. остальное тухлость. обновки винды поставь. студии с++ как они там поставь. а во! скачай оф клиент с рутрекера тырлюда и его установи именно из установочного комплекта. хотя впрочем это же смарт дырк а не клиент сыплет… ну тада отсюда все рекомендации потыркай. там правда нет твоей ошибки: https://smart-guard.eu/ru/support/game-client

это все уже проделано и дело лишь в Smart-Guard проверил это обычным способом, l2.bin — переименовал в l2.exe а l2.exe в l2.bin — клиент запускается на ура, дальше логина не пропускает. 

Smart-Guard суппорт не отвечает, ничего толкового пока по решениям не нашел .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?


  • Sad


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

16 часов назад, SereZa сказал:

@Admin выходи, подлый трус! нас простых смертных ясен пень на форум смарт дырка не пустит, но ты то как клиент можешь там поглядеть чего эти дебилы в своей программе под этим кодом запечатали?

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

@Shell — сейчас скачаю тобой выложенный клиент, еще этот вариант посмотрю.
@Admin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

657567.jpg
 

такая же ошибка, проблема остается не решенной 
 . ,спасибо всем кто пытался помочь, точнее 1му ) @SereZa


  • Like


    1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

28 минут назад, Shell сказал:

Наверняка проблема связанная с вашей windows~. Какая версия она у вас кстати?

да, скорее всего
Win 10 pro x64 
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

Скавер, дружище, решай проблему и ждём тебя на сервере, я уже заждался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Жалоба

по факту:
проблема была решена переустановкой OS, была установлена последняя редакция с офф сайта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • Назад
  • 1
  • 2
  • Далее
  • Страница 1 из 2  


Гость

Эта тема закрыта для публикации ответов.

Рекомендованные сообщения

    • Рассказать

Третий день не могу зайти на обт так как клиент zapuskaetsa

1539511989598.png.63658ad94dfc1f70445bf3fdb6474596.png

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Здравствуйте.

Какая у Вас Windows?

Win 10.

Переписал все с++ и .нет

Переустановил видео драйвера

Переустановил dx

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Проверял через клин боот и с нового пользователя акаунта виндовс

Отключал все программы, сервисы

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Rylai

    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

Сначала мы работали тяжело, а потом стали работать еще тяжелее.
По всем вопросам можно в личку.
Всех лю😊

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Попробуйте повторно выполнить все действия указанные в данной теме.

Если не поможет, Вам необходимо подождать обновления SmartGuard которые запланированы на вторник — среду.

что то у вас слишком медленная реакция на проблемы сервера

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Trolya

    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

  • Автор
    • Рассказать

Ой, а вы, оказывается, русскоязычный :orly:

Благодаря гоогле транслате, да. То Есть я не русский но по русски понимаю и могу говорит

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

TheDominator

    • Рассказать

503c6b9c5625a04862dc6480e8f4731a0476a9d4?url=https%3A%2F%2Fthequestion.s3.eu-central-1.amazonaws.com%2F361%2F724281-b9e559ed.png

Добавьте возможность отправлять ГОЛОСОВЫЕ СООБЩЕНИЯ на форуме.

  • Цитата
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Если у вас есть аккаунт, войдите в него для написания от своего имени.

Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Статус темы:

Закрыта.
  1. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Скачала игровой клиент с сайта, запускаю установку на диск С (памяти на нем предостаточно), но как только нажимаю установить, выскакивает ошибка 0xc000007b.
    Другие игры Фогейма устанавливаются нормально.
    1) Папка темп чиста.
    2) Диагностику процессов провела, ничего криминального.
    3) На вирусы проверила, ничего не обнаружено.
    4) Галка на папке для чтения снята.
    5) Хосты чисты.
    6) Перезагрузку сделала.

    [​IMG]

    Диагностика процессов:
    check4game ver=2.2.7, uptime=15m, ra
    Процессор: Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
    Видео: Intel(R) HD Graphics 520 / 21.20.16.4534 / 20161007
    Видео: NVIDIA GeForce GTX 950M / 22.21.13.8199 / 20170426
    DeviceName: DISPLAY1, BPP: 32, P:True, 1920×1080
    OS(x64) Microsoft Windows NT 6.3.17763.379
    OS Name: Windows 10 Home Single Language 1809/ 19.03.2019
    .NET 4.7.2 (461814) / MEMORY: 8065 MB (4901 MB)
    report Date: 20.03.2019 23-20-10 +03:00 GMT
    игра: bns, env: bns_live, cfg: default, x32
    путь: D:GamesBlade and Soul

    Скачиваем список LSP файлов
    https://www.check4game.com/proc/lsp.txt => OK
    WinSock2 NameSpace_Catalog
    %SystemRoot%system32napinsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%system32pnrpnsp.dll (10.0.17763.346)
    %SystemRoot%System32mswsock.dll (10.0.17763.346)
    %SystemRoot%System32winrnr.dll (10.0.17763.1)
    %SystemRoot%system32NLAapi.dll (10.0.17763.134)
    %SystemRoot%system32wshbth.dll (10.0.17763.1)
    WinSock2 Protocol_Catalog
    %SystemRoot%system32mswsock.dll (10.0.17763.346)
    Скачиваем список несовместимых процессов
    https://www.check4game.com/proc/proc.txt => OK
    Список процессов
    AdminService.exe : Windows Setup API (6.1.7600.16385)
    ApplicationFrameHost.exe : Application Frame Host (10.0.17763.1)
    audiodg.exe : Изоляция графов аудиоустройств Windows (10.0.17763.346)
    browser.exe*32 (17) : Yandex (19.3.0.3022)
    browsercore32.exe*32 (3) : BrowserCore Chromium Native Process (64.0.3282.24)
    check4game.exe : check4game (2.2.7.0)
    csrss.exe (2) : csrss.exe
    ctfmon.exe : CTF-загрузчик (10.0.17763.346)
    dllhost.exe : COM Surrogate (10.0.17763.1)
    dwm.exe : Диспетчер окон рабочего стола (10.0.17763.346)
    explorer.exe : Проводник (10.0.17763.346)
    fontdrvhost.exe (2) : Usermode Font Driver Host (10.0.17763.1)
    igfxCUIService.exe : igfxCUIService Module (6.15.10.4534)
    igfxEM.exe : igfxEM Module (6.15.10.4534)
    Innova.Launcher.exe*32 : 4game (1.0.0.131)
    lsass.exe : Local Security Authority Process (10.0.17763.1)
    Memory Compression : Memory Compression
    MsMpEng.exe : MsMpEng.exe
    NisSrv.exe : NisSrv.exe
    notepad.exe : Блокнот (10.0.17763.346)
    NVDisplay.Container.exe (2) : C:Program FilesNVIDIA CorporationDisplay.NvContainerNVDisplay.Container.exe
    nvtray.exe : NVIDIA Settings (7.17.13.8199)
    PrtScr.exe*32 : PrtScr (1.5.0.0)
    Registry : Registry
    RuntimeBroker.exe (6) : Runtime Broker (10.0.17763.1)
    SearchFilterHost.exe : Microsoft Windows Search Filter Host (7.0.17763.168)
    SearchIndexer.exe : Индексатор службы Microsoft Windows Search (7.0.17763.346)
    SearchProtocolHost.exe : Microsoft Windows Search Protocol Host (7.0.17763.168)
    SearchUI.exe : Search and Cortana application (10.0.17763.348)
    SecurityHealthService.exe : SecurityHealthService.exe
    SecurityHealthSystray.exe : Windows Security notification icon (10.0.17763.1)
    service_update.exe*32 (2) : Yandex (19.3.0.3022)
    services.exe : services.exe
    SgrmBroker.exe : SgrmBroker.exe
    ShellExperienceHost.exe : Windows Shell Experience Host (10.0.17763.1)
    sihost.exe : Shell Infrastructure Host (10.0.17763.1)
    SkypeApp.exe : SkypeApp (8.41.0.54)
    SkypeBackgroundHost.exe : Microsoft Skype (8.41.0.54)
    smartscreen.exe : SmartScreen Защитника Windows (10.0.17763.346)
    smss.exe : smss.exe
    spoolsv.exe : Диспетчер очереди печати (10.0.17763.346)
    svchost.exe (2) : svchost.exe
    svchost.exe (65) : Хост-процесс для служб Windows (10.0.17763.346)
    SystemSettings.exe : Параметры (10.0.17763.346)
    taskhostw.exe : Хост-процесс для задач Windows (10.0.17763.346)
    TiWorker.exe : Windows Modules Installer Worker (10.0.17763.1)
    TrustedInstaller.exe : Установщик модулей Windows (10.0.17763.346)
    Wacom_Tablet.exe : Tablet Service for professional driver (6.3.33-3)
    Wacom_TabletUser.exe : Tablet user module for professional driver (6.3.33-3)
    Wacom_TouchUser.exe : Touch User Mode Driver (6.3.33-3)
    WacomHost.exe*32 : Wacom Load Agent (1.0.0.2)
    WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe : WindowsInternal.ComposableShell.Experiences.TextInput.InputApp.exe (10.0.17763.292)
    wininit.exe : wininit.exe
    winlogon.exe : Программа входа в систему Windows (10.0.17763.346)
    WinStore.App.exe : Store (11811.1001.18.0)
    WmiPrvSE.exe (2) : WMI Provider Host (10.0.17763.1)
    WTabletServicePro.exe : Tablet Service (6.3.33-3)
    YourPhone.exe : YourPhone.exe (1.0.190228004-19031)
    Список служб
    AtherosSvc : AtherosSvc
    Audiosrv : Windows Audio
    DiagTrack : Функциональные возможности для подключенных пользователей и телеметрия
    DusmSvc : Использование данных
    igfxCUIService2.0.0.0 : Intel(R) HD Graphics Control Panel Service
    NVDisplay.ContainerLocalSystem : NVIDIA Display Container LS
    SecurityHealthService : Служба «Безопасность Windows»
    SEMgrSvc : Диспетчер платежей и NFC/защищенных элементов
    SgrmBroker : Брокер мониторинга среды выполнения System Guard
    Spooler : Диспетчер печати
    TrustedInstaller : Установщик модулей Windows
    Wcmsvc : Диспетчер подключений Windows
    WdNisSvc : Служба проверки сети Windows Defender Antivirus
    WinDefend : Антивирусная программа «Защитника Windows»
    WlanSvc : Служба автонастройки WLAN
    WSearch : Windows Search
    WTabletServicePro : Wacom Professional Service
    YandexBrowserService : Yandex.Browser Update Service
    cbdhsvc_2e7f8 : Пользовательская служба буфера обмена_2e7f8
    CDPUserSvc_2e7f8 : Служба пользователя платформы подключенных устройств_2e7f8
    OneSyncSvc_2e7f8 : Синхронизация узла_2e7f8
    WpnUserService_2e7f8 : Пользовательская служба push-уведомлений Windows_2e7f8

  2. Примените один из reg файлов отсюда http://cdn.inn.ru/support/files/4game_uninstalled.rar в соответствии с разрядностью системы. Удалите все, что удаляется в папках C:WindowsTemp и по пути %USERPROFILE%AppDataLocalTemp. После этого перезагрузите ПК и попробуйте установить ещё раз. Если не получится, сделайте скрин ошибки.

  3. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0
  4. Cкопируйте файл cmd.exe из папки CWindowsSystem32 и поместите его в CWindowsSysWOW64
    И выполните починку клиента с помощью утилиты check4game.

  5. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Это невероятно, но началась загрузка! Спасибо!
    Но ошибка 0xc000007b все равно появилась вначале, когда я нажала на кнопку «Установить». Надеюсь, это не повлияет на работу игры…

  6. Обращение тогда пока не закрываем, если возникнут новые проблемы напишите.

  7. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0
  8. По стрелочке не выбирается устройство воспроизведения звука?

  9. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    По стрелочке пустой список

  10. waishie
    User

    Регистрация:
    26.05.16
    Сообщения:
    25
    Симпатии:
    0

    Все заработало! Вы — мой спаситель!

  11. Рада была помочь! Приятной игры!

Статус темы:

Закрыта.
  • 10 Entries
  • 15 Entries
  • 20 Entries
  • 25 Entries
  • Latest Replies
  • GamezAION
  • GamezBD
  • Aion Market
  • Top Threads
  1. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    How to fix?
    Help please

    Attached Files:

    • report.png

  2. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    I have that error too. I tried the ‘force check’ function of the launcher with no success.
    The error pops up once the anti-cheat window opens, just before the game itself would launch.

  3. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1

    Did you find the solution?

  4. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    No. I re-added the game folder to my anti-virus, no success.

    Edit: Might have something to do with the latest Windows 10 update.

  5. cberkayyy1
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    1
  6. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Downloaded another update to Windows 10, updated video drivers, no change.

  7. Reignover
    New Member

    Joined:
    May 29, 2018
    Messages:
    2
    Likes Received:
    1
    Trophy Points:
    118

    I have the same problem, Windows 10 fully updated, using windows defender, already put the game folder and all the executables as exceptions, whitelisted the exe’s at the firewall and turned firewall off too, all drivers up to date, no GeForce Experience or any overlay bullshit, everything running as admin, still get the error everytime i start the game.
    @edit: its a smartguard problem, i used the windows event viewer and found out that the error is that the smartguard fail to initiate with the message: Service failed to start due to internal error: 0xc000007b
    I knew smartguard was trouble in windows 10 because i’ve played lineage 2 servers who used it and they always had to provide the windows 10 users some patch to play, hope the devs read this.

    Last edited: Sep 14, 2018

  8. AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    same issue here but run win7 and no issues with any other game. Tried adding to exceptions on Avira and get a new error about missing files

  9. GFrost
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    I hadt he same problem the my 1rst issue was the 0301 code but I solved it when I installed new C++ runtime (2017)now I have message with this:
    https://imgur.com/a/FyYkCZa

    I did the same trouble shooting and I use win7,too

  10. AmberSynn
    New Member

    Joined:
    Sep 14, 2018
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    26

    that is the message i got too. made sure everything is up to date and going to install full client and maybe that will work. I wish someone had a real solution to thiswin7 here and getting same issues.

    Last edited by a moderator: Sep 15, 2018

  11. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    [​IMG]

  12. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    >Tried uninstalling/reinstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit)
    >Tried uninstalling Microsoft Visual Studio C++ 2017 (32 and 64 bit) and installing Microsoft Visual Studio C++ 2015 (32 and 64 bit). (Both can not be present at the same time, it seems)
    >Ensured .Net Framework was latest version available
    >Tried «Run as administrator» for both .exe files present in the C:/ProgramData/SmartGuard/bdo/smrt3d/beta/data/(bunch of letters and numbers) folders.
    >Added above folders to antivirus exceptions
    >Added both .exe files in above folders to firewall exceptions

    No results.

  13. mark123
    New Member

    Joined:
    Sep 11, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    26
  14. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Also checked out the website for SmartGuard (https://smart-guard.eu/en). Unfortunately I can’t access their forums unless I buy the product first.

  15. Kolka
    <Prison Officer>
    Staff Member
    Super Moderator

    disable UAC in windows, make sure u have SYSTEM use in list of users in Security Tab in properties of bin64/BlackDesert64.bin file. Also make sure u not set default programm to bin64/BlackDesert64.bin file.

  16. Rerei
    New Member

    Joined:
    Jun 3, 2018
    Messages:
    16
    Likes Received:
    4
    Trophy Points:
    58

    Not sure what you mean by this.

    Update:

    I attempted to roll back my windows 10 updates, and ended up bricking my OS. So, I started fresh with a clean install.
    This fixed the error I was having, but introduced the ‘Failed to init security’ error. To fix this, I attempted everything I could think of. Nothing worked until I tried the solution in post number 2 in this thread:
    http://forum.gameznetwork.com/threads/i-dont-understand-why.220737/#post-2128862

    Specifically the program you can download here: https://www.computerbase.de/downloads/systemtools/all-in-one-runtimes/

    Now I’m chopping trees like it’s 1999.

    Hope this helps!

    Last edited by a moderator: Jan 17, 2019

  17. alexutzu1011
    New Member

    Joined:
    Dec 8, 2018
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1

    can you be more explicit please? maybe more details or some screenshots would be awesome. ty

Share This Page

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название «Ошибка при запуске приложения (0xc000007b)» и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться вообще, либо всё же запускаются, но далеко не всегда. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей аж со времен Windows 98, просто формулировались иначе. Начиная с версии Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики по причинам, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

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

Данная статья представляет собой всего-лишь теоретические выкладки по исследованию загрузчика образов операционной системы Windows. Изучение проводилось с целью создать базис для предполагаемого дальнейшего изучения особенностей кода загрузчика. На данный момент рекомендаций по исправлению ошибки c000007b в данной статье не предоставлено, поскольку практика показала неоднозначность популярных решений с использованием утилит Dependency Walker и Process Monitor.

Формат исполняемых файлов

Приступим. Для начала давайте посмотрим, что же нам сообщают разработчики об ошибке со статусом c000007b на официальной странице значений NTSTATUS? Ошибка носит символическое имя STATUS_INVALID_IMAGE_FORMAT (НЕКОРРЕКТНЫЙ ФОРМАТ ОБРАЗА), а в описании к ней присутствует следующая формулировка: «Образ либо не предназначен для выполнения в Windows или содержит ошибку..», ну и далее даются общие рекомендации. Как всегда, довольно пространное определение, не содержащее в себе значимых подробностей, однако уже позволяющее нам сделать как минимум два предположения:

  1. ошибка может содержаться в служебных структурах заголовка основного запускаемого модуля (exe-файл);
  2. ошибка может содержаться в подключаемых образах (dll-библиотеках);

Ну хорошо, а что же в себе таит утверждение о некорректном формате? Возможно, подразумевается некое повреждение структуры PE-образа? Но ведь близких по природе ошибок в PE-образе, чисто теоретически, может быть великое множество, и скорее всего так оно и есть. Одним словом, это утверждение о повреждении структуры исполняемого образа требует проверки и аргументации!! В свою очередь, для проверки следовало бы отследить, какой именно код ядра и на каком этапе выводит данное сообщение. Вероятно, если мы наблюдаем подобную ошибку до запуска приложения, то от момента щелчка правой кнопкой мыши по бинарному исполняемому файлу (например: exe-файл) в проводнике Windows (explorer.exe) и до непосредственного начала выполнения кода приложения, проходит некая скрытая от глаз пользователя работа на уровне ядра операционной системы и вот как раз эта самая работа иногда завершается с ошибкой. Одни вопросы порождают другие. Думаю, для лучшего понимания того, какая именно логика скрывается за безмолвием загрузки, надо сперва задаться вопросом «что же вообще такое представляет из себя исполняемый файл в среде Windows и как он загружается»? Всякий бинарный исполняемый файл в Windows построен на основе формата под названием PE (Portable Executable, переносимый исполняемый), который содержит в себе великое множество разнообразных секций, предназначенные для подготовки участков файла (они же блоки кода и данных), критичных для непосредственного выполнения приложения.

Portable Executable (PE) — формат исполняемых файлов и динамических библиотек, используемый в операционных системах Microsoft Windows. Фактически это довольно сложная структура данных, в которой содержится информация, необходимая системному загрузчику исполняемых образов, то есть коду ядра, который производит всю необходимую работу по подготовке исполняемого файла к непосредственному запуску (создание адресного пространства процесса, отображение файла в память, создание всех необходимых для функционирования системных конструкций и прч). В операционных системах Windows описываемый формат PE применяется при создания таких исполняемых файлов как: .exe, .dll, .sys и некоторых других.

Выходит, в системе имеется некий загрузчик образов (PE-загрузчик), естественно, ведь кто-то должен подготавливать код и данные к непосредственному исполнению. Это отлично укладывается в логику функционирования операционной системы, к тому же я про него время от времени краем уха слышал. Но это, извините, закопано где-то системе, с чего нам начать? Давайте начнем с малого, с формирования тестовой среды:

  • Операционная система: Windows 7 Профессиональная (Русская), 32-разрядная (6.1.7601) (32-битную среду я выбрал для простоты, дабы WOW64 не вносил свои коррективы);
  • Простой исполняемый модуль lasterr.exe из комплекта примеров FASM (EXAMPLESDLL) с минимумом подключаемых библиотек. Опять же, для простоты;
  • Отладчик WinDbg (версия 10.0.14321.1024) из комплекта Debugging Tools for Windows (x86);
  • Утилита Process Monitor;

Процесс загрузки образа

В моем случае, при отсутствии необходимых знаний, придется двигаться с самого начала, при этом интуитивно выискивая направления по косвенным признакам. Все те данные, которыми мы обладаем на текущий момент, подводят нас к мысли, что надо каким-то образом зацепиться за этот пресловутый загрузчик образов, но как? Единственное, что приходит в голову, так это использовать всеми нами любимую утилиту Process Monitor. Зная специфику программы, можно заранее предположить, что это будут лишь поверхностные сведения, поскольку утилита не покажет нам подробности многих этапов загрузки образа на выполнение. Но ведь что-то она нам все же даст, ведь пока мы идем в темноте и пытаемся нащупать хотя бы какие-то ориентиры для дальнейшего продвижения. Просто будем надеяться, что информация, предоставляемая нам утилитой Procmon поможет нам двинуться дальше, найти зацепку в виде каких-нибудь малозаметных деталей. Тут стратегия у нас будет достаточно простая, ничего необычного.

  1. Из-под учетной записи с правами локального администратора запускаем утилиту Procmon;
  2. В разделе Filter создаем фильтр на наше приложение lasterr.exe;
  3. Останавливаем захват событий (Ctrl+E или иконка лупы на панели);
  4. Очищаем лог (Ctrl+X или значок ластика на панели);
  5. Снова включаем захват (Ctrl+E) событий;
  6. Стартуем наблюдаемое приложение lasterr.exe, как обычно двойным щелчком из проводника;

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

  1. Образ приложения lasterr.exe загружается в адресное пространство собственного процесса по адресу 0x400000. То есть мы наблюдаем какой-то из этапов уже работающего загрузчика образов;
  2. Образ системной библиотеки ntdll.dll загружается в адресное пространство процесса по адресу 0x77c30000. Эта библиотека всегда загружается первой?
  3. Активизируется ускоритель prefetcher. В системной директории C:WindowsPrefetch проверяется .pf-файл(ы) для запускаемого приложения;
  4. Чуть ниже мы можем увидеть группу событий по операциям (CreateFile, SetBasicInformationFile, QueryAttributeTagFile, CreateFileMapping, QueryStandardInformationFile) с библиотеками ntdll.dll, kernel32.dll, apisetschema.dll, kernelbase.dll, locale.nls, errormsg.dll, user32.dll и прочими. Судя по всему это не проецирование образов, а события, генерируемые prefetcher’ом;
  5. Ниже по списку мы наблюдаем первые события с операцией Load Image, которые знаменуют собой загрузку необходимых приложению DLL библиотек в адресное пространство процесса;
  6. Еще ниже по списку событий мы наблюдаем чтение ветки HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options. Имеется в виду механизм, которых позволяет запускать образы под отладчиком;
  7. Далее мы видим считывание ключа реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVrsionWindowsLoadAppInit_DLLs. Ключ ответственен за механизм AppInit_DLLs, который позволяет определить списки DLL, загружаемые в адресное пространство «каждого» процесса;
  8. Далее идет работа с различными языковыми опциями и MUI;

Это все, что предоставляет нам Procmon. Но на самом деле в приведенном выше списке мы видим очень малую часть логики, так сказать её вершину. Обусловлено это тем, что Process Monitor показывает лишь то, до чего может сам дотянуться, и не отображает всего многообразия операций по подготовке приложения к запуску. (прим.: хотя, возможно я забыл отключить какие-то встроенные фильтры). Но даже малое порой представляет собой большое, все дело в точке зрения Давайте посмотрим, о чем на могут рассказать захваченные Process Monitor’ом события? Например, событие Load Image применительно к образу lasterr.exe по загрузке себя же самого по базовому адресу 0x400000 в адресное пространство процесса, определенно будет нам интересно. Щелкнем по нему пару раз и перейдем во вкладку Stack. Стек вызовов начинается с функции RtlUserThreadStart, которая является частью системной библиотеки ntdll.dll. Библиотека ntdll.dll предоставляет собой «родной» интерфейс (Native API) пользовательского режима для функций ядра, это своеобразный «мост» между функциями библиотек пользовательского режима и кодом, который реализует соответствующий функционал в ядре. Функция RtlUserThreadStart именуется подобным образом не спроста, название говорит само за себя, намекая нам на назначение данной функции. Предположительно она предназначена для старта потока внутри процесса, при содержит функционал части пользовательского режима.

RtlUserThreadStart — общая стартовая функция для всех потоков в Windows.

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

Load Image Stack

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

LdrInitializeThunk — функция обратного вызова (режим ядра -> режим пользователя) в составе библиотеки ntdll.dll, которая не столько обратный вызов, сколько точка входа, с которой все потоки пользовательского режима начинают свое выполнение. Другими словами, создание любого потока пользовательского режима всегда происходит посредством данной функции. В некоторых источниках фигурирует как процедура инициализация загрузчика, начальный его этап, отвечает за инициализацию непосредственно загрузчика, менеджера кучи, таблиц FLS, NLS, TLS, структур критической секции. Судя по всему они с RtlUserThreadStart работают в связке, но как именно, пока не ясно.

Мы получили имена двух функций, которые, судя по всему, имеют отношение к созданию потока и подготовке его к выполнению. Теперь можно переходить непосредственно к практической части исследования. Надеюсь, перед началом экспериментов у Вас уже готова тестовая среда и установлены Debugging Tools for Windows из комплекта Windows SDK и в системную переменную Path добавлен путь к необходимой версии каталога с отладчиками. Теперь задача перед нами стоит не совсем тривиальная, поскольку нам необходимо поймать момент запуска приложения, до его непосредственного выполнения и даже до момента подготовки адресного пространства процесса. К превеликой нашей радости, основными отладчиками от Microsoft поддерживаются фильтры событий, которые включают отладочный сценарий начальной стадии загрузки приложения. Насколько я понял, он может быть активирован двумя путями:

  • Настройка отладчика через GUI: через меню DebugEvent Filters. На фильтре события Create process указываем опцию Execution: Enabled. После перезапуска процесса отладчик остановится до функции LdrInitializeThunk.
  • Запуском отладчика со специальными опциями командной строки.

Например, следующая команда позволяет изучить процесс и установить точку останова до того, как код пользовательского режима запустится:

windbg.exe -xe ld:ntdll.dll lasterr.exe

опция xe подразумевает останов после того, как библиотека ntdll.dll будет загружена в адресное пространство процесса. И не спроста, потому как в самом отладчике, в командной строке, мы должны поставить точку останова:

bp ntdll!LdrInitializeThunk

а затем продолжить выполнение командой «g». Для чего это все? А для того, чтобы пропустить некоторое количество кода, которое выполняется до функции LdrInitializeThunk. Мы бы в любом случае вышли на неё, однако потратили бы дополнительное время.
Отладчик останавливается на точке остановка в самом начале функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

ntdll!LdrInitializeThunk:

77c934a6 8bff            mov     edi,edi

77c934a8 55              push    ebp

77c934a9 8bec            mov     ebp,esp

77c934ab ff750c          push    dword ptr [ebp+0Ch]  ss:0023:0006fd1c={ntdll!`string  (ntdll+0x0) (77c30000)}

77c934ae ff7508          push    dword ptr [ebp+8]

77c934b1 e816000000      call    ntdll!LdrpInitialize (77c934cc)

77c934b6 6a01            push    1

77c934b8 ff7508          push    dword ptr [ebp+8]

77c934bb e8101cfeff      call    ntdll!ZwContinue (77c750d0)

77c934c0 50              push    eax

77c934c1 e87f37feff      call    ntdll!RtlRaiseStatus (77c76c45)

77c934c6 cc              int     3

77c934c7 90              nop

77c934c8 90              nop

77c934c9 90              nop

77c934ca 90              nop

77c934cb 90              nop

Ну, судя по всему, функция LdrInitializeThunk содержит (на верхнем уровне) вызовы всего трех функций: LdrpInitialize, ZwContinue, RtlRaiseStatus, причем, я так понимаю, две последних функции являются для нас не значимыми. Выполнив отладчиком по клавише F10 команду call ntdll!LdrpInitialize я убедился, что приложение запустилось. Получается, вся работа происходит в глубинах функции Ldrpinitialize, надо идти внутрь. Первым параметром в функцию LdrpInitialize передается адрес дампа PE-файла в адресном пространстве процесса, а вторым адрес какой-то неизвестной структуры (?). Судя по всему, когда я впервые остановился на точке останове в начале функции, в первом параметре я увидел адрес подмапленной в память библиотеки ntdll.dll, поскольку она загружается самой первой. С этого момента я опускаю ряд подробностей нахождения мест кода, которые могли быть ответственны за генерацию ошибки c000007b, поскольку описание всего процесса отладки превратило бы повествование в бесконечное. Скажу лишь, что всю работу по анализу кода я проводил при помощи отладчика WinDbg и дизассемблера IDA.

Первая причина

Первая удача сопутствовала мне при обработке функции LdrpSnapIAT. Очередной раз анализируя код я поставил точку останова на данную функцию, и при выполнении отладчик остановился на следующем коде:

ntdll!LdrpSnapIAT:

77c94ca1 6a24            push    24h

77c94ca3 68f808c877      push    offset ntdll! ?? ::FNODOBFM::`string‘+0x542 (77c808f8)

77c94ca8 e847dbfeff      call    ntdll!_SEH_prolog4 (77c827f4)

77c94cad 8d45d8          lea     eax,[ebp28h]

77c94cb0 50              push    eax

77c94cb1 6a00            push    0

77c94cb3 6a01            push    1

77c94cb5 8b7508          mov     esi,dword ptr [ebp+8]

77c94cb8 ff7618          push    dword ptr [esi+18h]

77c94cbb e8caa7ffff      call    ntdll!RtlImageDirectoryEntryToData (77c8f48a)

77c94cc0 8945d4          mov     dword ptr [ebp2Ch],eax

77c94cc3 85c0            test    eax,eax

77c94cc5 0f843dc50100    je      ntdll!LdrpSnapIAT+0x26 (77cb1208)

Самое последнее условие je ntdll!LdrpSnapIAT должно уводить нас на следующую ветку кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

77cb1208 a17473c877      mov     eax,dword ptr [ntdll!LdrpLogLevelStateTable (77c87374)]

77cb120d 83c801          or      eax,1

77cb1210 8505c0f9d077    test    dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)],eax

77cb1216 7422            je      ntdll!LdrpSnapIAT+0x58 (77cb123a)

77cb1218 83c624          add     esi,24h

77cb121b 56              push    esi

77cb121c 688491c777      push    offset ntdll! ?? ::FNODOBFM::`string‘ (77c79184)

77cb1221 6a00            push    0

77cb1223 687891c777      push    offset ntdll! ?? ::FNODOBFM::`string’ (77c79178)

77cb1228 6877080000      push    877h

77cb122d 688c8ec777      push    offset ntdll! ?? ::FNODOBFM::`string (77c78e8c)

77cb1232 e813e10100      call    ntdll!LdrpLogDbgPrint (77ccf34a)

77cb1237 83c418          add     esp,18h

77cb123a a1c0f9d077      mov     eax,dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)]

77cb123f 85057873c877    test    dword ptr [ntdll!LdrpLogLevelStateTable+0x4 (77c87378)],eax

77cb1245 7401            je      ntdll!LdrpSnapIAT+0x66 (77cb1248)

77cb1247 cc              int     3

77cb1248 b87b0000c0      mov     eax,0C000007Bh

77cb124d e9f93afeff      jmp     ntdll!LdrpSnapIAT+0x129 (77c94d4b)

Понятное дело, что в штатном режиме управление туда не передается, поэтому я просто взвел флаг zero, чтобы принудительно инициировать переход. Ну и в самом конце фрагмента кода мы видим долгожданную команду mov eax, 0C000007Bh, после чего я запускаю выполнение командой g и.. вот оно:

c000007b

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

Судя по описанию с MSDN, данная функция ищет запись внутри PE-заголовка и возвращает адрес данных для этой записи (при наличии возвращает заголовок секции (IMAGE_SECTION_HEADER)) и длину, а случае ошибки возвращает ноль. Используется для поиска различных таблиц в PE-файлах.

Получается эта функция предназначена для получения секций подключаемых библиотек? Ничего не понятно, необходимо как то понять все происходящее в целом, так сказать откатиться назад, а для этого нам надо посмотреть стек вызовов:

ntdll!LdrpSnapIAT+0x2b

ntdll!LdrpHandleOneOldFormatImportDescriptor+0x120

ntdll!LdrpHandleOldFormatImportDescriptors+0x1f

ntdll!LdrpProcessStaticImports+0x25c

ntdll!LdrpLoadDll+0x33d

ntdll!LdrLoadDll+0xaf

ntdll!LdrpInitializeProcess+0xfe7

ntdll!_LdrpInitialize+0x78

ntdll!LdrInitializeThunk+0x10

Похоже что за инициализацию процесса отвечает функция LdrpInitializeProcess, которая, на определенном этапе своей работы начинает загружать библиотеки, необходимые для работы основного приложения, при помощи функции LdrLoadDll, а та, в свою очередь, начинает просматривать таблицу импорта и заполнять Import Address Table (IAT) через функцию LdrpSnapIAT. Однако стек не всегда остается подобным, при прогоне программы по команде g и остановке на точке останова, стек вызовов иногда меняется, показывая, что код загружает модули, присутствующие в таблице импорта.

Функция LdrpSnapIAT «связывает» таблицу адресов импорта с импортируемыми DLL библиотеками, перезаписывает каждую запись в таблице адресов импорта актуальным адресом импортируемой функции.

В коде функции LdrpSnapIAT имеется вызов функции RtlImageDirectoryEntryToData, которая, в свою очередь, использует RtlImageDirectoryEntryToDataEx, а та вызывает функцию RtlpImageDirectoryEntryToData32, которая уже проверяет следующие условия:

  1. Если значение входного параметра DirectoryEntry (Порядковый номер требуемой записи каталога) больше или равно (>=) значения PeHeader.OptionalHeader.NumberOfRvaAndSizes (число записей в массиве DataDirectory. обычно имеет значение 16); Поскольку DirectoryEntry может иметь только определенные значения: IMAGE_DIRECTORY_ENTRY_ARCHITECTURE (7), IMAGE_DIRECTORY_ENTRY_BASERELOC (5), IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11), IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR (14), IMAGE_DIRECTORY_ENTRY_DEBUG (6), IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT (13), IMAGE_DIRECTORY_ENTRY_EXCEPTION (3), IMAGE_DIRECTORY_ENTRY_EXPORT (0), IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8), IMAGE_DIRECTORY_ENTRY_IAT (12), IMAGE_DIRECTORY_ENTRY_IMPORT (1), IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10), IMAGE_DIRECTORY_ENTRY_RESOURCE (2), IMAGE_DIRECTORY_ENTRY_SECURITY (4), IMAGE_DIRECTORY_ENTRY_TLS (9), он действительно не должен быть >=16!
  2. Если значение поля PeHeader.DataDirectory.Export библиотеки = 0. В коде функции для поиска местоположения структуры Object Table используется yнивеpсальная формула: pe_header_offset + rva_entries_number*8 + 78h; здесь: pe_header_offset — смещение от начала файла до PE-заголовка (смещение 3Ch), rva_entries_number — количество записей в таблице объектов. После вычисления мы попадаем на первую запись структуры IMAGE_DATA_DIRECTORY, которая содержит относительный адрес (RVA) таблицы экспорта. Предположение: в уже загруженной в адресное пространство процесса DLL, которая должна предоставлять экспортируемые функции нашей основной программе (иначе бы она не была загружена), отсутствует таблица экспорта? Подобная ситуация не допустима и явно ошибочна.

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

Когда после запуска исследуемого приложения под отладчиком, при первом останове на функции LdrpSnapIAT пытаешься принудительно выйти на данную ветку кода, то ошибка не появляется! Могу предположить, что при первом вызове функции анализируется какая-то важная системная библиотека, поскольку из данных Procmon было видно, что первой загружается ntdll.dll, то можно предположить что так оно и есть. Соответственно, отказ в загрузке её самой (вероятно) не может быть завершен ошибкой, и загрузка приложения lasterr.exe в этом случае просто «тихо» завершается не выводя никаких сообщений, иными словами приложение не запускается без каких-либо ошибок, просто ничего не происходит. Поэтому, я несколько раз выполнил команду g и начал анализировать функцию со второго и последующих её вызовов, что дало видимые результаты.

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

Наименование функции Предполагаемая причина
LdrpResGetMappingSize Проверка кода NTSTATUS при возврате из функции RtlImageNtHeaderEx. Если он не нулевой (ошибочный), то проверяются первые два байта опционального заголовка на значение 10Bh (32-битный заголовок) и 20Bh (64-битный заголовок), если не соответствует ни одной из них — ошибка.
LdrpResGetResourceDirectory Код функции уходит на ошибку после нулевого результата выполнения вложенной функции LdrpSectionTableFromVirtualAddress, которая возвращает 0 в случае нулевого смещения PE-заголовка (в нормальной ситуации должно быть 00400080) и нулевого значения слова по смещению в заголовке = начало PE заголовка (00400080) + SizeOfOptionalHeaders + 18h, то есть первое слово Таблицы Секций (Section Table). Опять же, если мы получили Section Table, далее выполняется еще несколько проверок уже непосредственно над полями самой секции, и c000007b генерируется если некоторые поля (SizeOfRawData и прочие) в Section Table некорректны.
LdrpResCompareResourceNames Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
LdrpResSearchResourceInsideDirectory Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
RtlImageNtHeaderEx Ошибка генерируется внутри функции по нескольким условиям, скорее всего сюда же попадает попытка загрузки библиотеки «иной» (нежели основной модуль) разрядности. Предположение: при попытке запуска 64-битного приложения, у которого в импорте оказывается функция из 32-битной библиотеки или наоборот?

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

Общее решение

Можно встретить две основные рекомендации по устранению ошибки c000007b:

  1. В некоторых случаях для решения подобной проблемы предлагается использовать утилиту Dependency Walker, которая позволяет просматривать импортируемые и экспортируемые сбойным модулем библиотеки, и, соответственно, выявить библиотеки, которые по тем или иным причинами не смогли подгрузиться. Но средство позволяет выявить лишь часть причин возникновения ошибки c000007b, поскольку:

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

    ..к тому же, DW грешит еще и тем, что иногда не обнаруживает всех импортируемых модулем библиотек.

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

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

В этой статье вы узнаете, почему происходит ошибка 0xc000007b, и пошаговые способы решения для ее устранения. Во время использования компьютера могут появляться, такие ошибки как 0x80070057, 0x80004005, 0x80070005 и 0x80070002, они все довольно часто встречаются в Windows. Конечно все они являются поправимыми, но думаю многих раздражает то, из-за чего они появляются, поскольку поиск решений время.

Рекомендуем прочитать стать о том, как переустановить Windows на ноутбуке.

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

Структура статьи

  • 1 Что означает ошибка 0xc000007b?
  • 2 Ошибка 0xc000007b
  • 3 Как исправить ошибку 0xc000007b
  • 4 Способ 1. Переустановите приложение, которое вы пытаетесь запустить.
  • 5 Способ 2. Запуск программного обеспечения с правами администратора.
  • 6 Способ 3. Установка или исправление последней версии .NET Framework
  • 7 Способ 4. Обновление DLL
  • 8 Способ 5. Обновление DirectX
  • 9 Способ 6. Переустановите все пакеты времени выполнения Microsoft Visual C ++.
  • 10 Способ 7. Исправление проблемы совместимости между системой и приложением
  • 11 Способ 8. Выполнение чистой загрузки
  • 12 Восстановление утерянных данных, вызванных кодом ошибки 0xc000007b

Как исправить ошибку 0xc000007b

Windows является удбной и простой в использовании системой, с каждым годом он становится все наиболее широко используемым, и используется пользователями во всем мире на своих устройствах. В настоящее время многие пользователи обновили свой компьютер до Windows 10, который является не просто операционной системой для ПК, Он также работает на телефонах Windows — и на небольших планшетах. Разумеется, стоит понимать, что Windows не идеальна и на ней могут появляться периодически ошибки. Например, как мы отметили выше, многим пользователям приходится сталкиваться с ошибкой 0xc000007b при доступе к программному обеспечению, которое очень популярно у людей;

Сообщение об ошибке: «Приложению не удалось запустить корректно (0xc000007b). Нажмите «ОК», чтобы закрыть приложение».

Ошибка 0xc000007b

В основе кода ошибки Windows 0xc000007b лежит много причин, и в этой части перечислены наиболее распространенные.

Код ошибки означает недопустимый формат разрядности. В частности, например, вы пытаетесь запустить приложение, которое предназначено для работы в 64-разрядной операционной системе. Но на вашем компьютере установлена ​​32-разрядная версия Windows. 32-разрядное приложение не может загрузить 64-разрядную DLL, поэтому смешивание 32-разрядного кода с 64-разрядной средой вызывает проблемы.

Ошибка 0xc000007b также связана с программами, установленными на вашем компьютере, такими как .NET Framework, Direct X и Microsoft Visual C ++. Это проявляется, когда вы пытаетесь запустить высоконагруженные графические игры, без обновления .net Framework. Когда .NET framework отсутствует на вашем компьютере, вы не сможете запускать приложения на нем.

Также возможно получить эту ошибку при установке Windows 10, 8, 8.1 или 7.

Есть вероятность получить эту ошибку 0xc000007b, когда вы не используете программное обеспечение в качестве администратора.

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

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

Как исправить ошибку 0xc000007b

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

Способ 1. Переустановите приложение, которое вы пытаетесь запустить.

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

Во-первых, вам необходимо удалить его и удалить с компьютера все, что связано с программным обеспечением. Затем перезагрузите компьютер перед началом переустановки. Во время установки, рекомендуется, выключить «Защитник Windows» или другое защитное программное обеспечение.

Примечание. Перед выключением «Защитника Windows» отсканируйте компьютер.

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

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

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

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

Способ 3. Установка или исправление последней версии .NET Framework

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

  1. Нажмите «Пуск», чтобы выбрать «Панель управления» и «Программы и компоненты».
  2. Нажмите «Включить или отключить функции Windows» на левой панели. Появится окно «Свойства Windows».
  3. В окне «Возможности Windows» найдите и нажмите .NET Framework 3.5 и нажмите «ОК». Затем начнется загрузка и установка.
  4. Перезагрузите компьютер и проверьте, исправлена ​​ли эта ошибка. Если этот метод не может устранить ошибку приложения 0xc000007b, продолжите чтение!

Способ 4. Обновление DLL

Исправить ошибку 0xc000007b моно через обновление библиотек DLL.

Если файл xinput1_3.dll поврежден или переписан другой версией, которая несовместима, появится ошибка 0xc000007b. Немного сложно исправить ошибку, обновив DLL, так как этот метод включает операции, такие как замена 32-разрядной xinput1_3.dll на соответствующую версию внутри диска C. Чтобы обновить DLL с подходящей версией, выполните следующие действия:

  • Загрузите 32-разрядную версию xinput1_3.dll и извлеките файлы с помощью инструмента сжатия. Рекомендуется сделать резервную копию оригинальной xinput1_3.dll перед тем, как попробовать это решение, если вы не смогли завершить ее как отсканированную, и вы можете ее восстановить. Обычно файл xinput1_3.dll находится по адресу: C: Windows SysWOW64.
  • Скопируйте файл, извлеченный из загруженного файла, в папку: C: Windows SysWOW64 и вставьте его там.
  • Выберите «Копировать и заменить», если вы получите приглашение.

Способ 5. Обновление DirectX

Исправить ошибку 0xc000007b, можно через обновление старых файлов DirectX.

Чтобы избежать ошибок, вы всегда должны быть уверены, что ваш компьютер обновился до последней версии DirectX. Если ни одно из предыдущих решений не работает, попробуйте обновить DirectX. Отличным способом проверить, является ли DirectX последней версией, вы можете загрузить DirectX Runtime Web Installer с официального сайта Microsoft. Загрузите установочный файл и запустите его. Затем вы можете следовать инструкциям на экране, чтобы переустановить его. По завершении установки необходимо перезагрузить компьютер.

Способ 6. Переустановите все пакеты времени выполнения Microsoft Visual C ++.

Пакеты среды выполнения Microsoft Visual C ++ имеют большое значение для приложения Windows. Если они плохо установлены, программы не могут нормально работать и сообщать о различных ошибках, включая ошибку приложения 0xc000007b. Пакеты среды выполнения Microsoft Visual C ++ выпускаются как в 32-разрядной, так и в 64-разрядной версиях.

Поскольку операции в этом методе относятся к важной части операционной системы. Предлагается создать резервную копию системы на случай, если что-то пойдет не так. Вы можете легко восстановить компьютер до текущего состояния. Если вы не знаете, как это сделать, вы можете использовать Eassos System Restore для резервного копирования Windows, так как это программное обеспечение является простым в использовании и быстрым. Следующие шаги объясняют, как переустановить пакеты Microsoft Visual C ++:

  • Нажмите кнопку «Пуск» и выберите «Панель управления». Затем вы можете найти «Удалить программу» на панели управления, щелкнуть по ней.
  • Найдите все пакеты Microsoft Visual runtime и удалите их со своего ПК. После этого перезагрузите компьютер.
  • Перейдите на официальный сайт Microsoft, чтобы загрузить визуальные пакеты и установить каждый из них. Процесс установки требует перезагрузки ПК несколько раз.

Способ 7. Исправление проблемы совместимости между системой и приложением

Исправить ошибку 0xc000007b, возможно через исправление совместимости программы с операционной системой. Этот вариант также очень часто помогает в этом вопросе.

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

  1. Щелкните правой кнопкой мыши приложение, которое не может запускаться правильно, и выберите «Свойства».
  2. Перейдите на вкладку «Совместимость» в окне «Свойства» и нажмите кнопку «Запустить средство устранения неполадок совместимости».
  3. Выберите «Попробовать рекомендованные настройки», и вы можете протестировать приложение или просто нажать «Далее».
  4. Если предыдущий шаг не работает, вы можете выбрать режим совместимости вручную из раскрывающегося меню. Выберите более раннюю версию Windows и нажмите «Применить» и «ОК».

Способ 8. Выполнение чистой загрузки

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

  1. Нажмите кнопку «Пуск» и найдите файл msconfig. Нажмите «Конфигурация системы» из результатов поиска.
  2. В диалоговом окне выберите вкладку «Сервис». Выберите «Скрыть все службы Microsoft» и нажмите кнопку «Отключить все».
  3. Нажмите вкладку «Автозагрузка», чтобы открыть «Открыть диспетчер задач». Для элемента автозагрузки здесь выберите каждый и нажмите «Отключить».
  4. Закройте диспетчер задач и нажмите «ОК» в окне «Конфигурация системы». Перезапустить компьютер.

Восстановление утерянных данных, вызванных кодом ошибки 0xc000007b

Eassos Recovery free — это бесплатное ПО для восстановления данных, которое спасает файлы, которые теряются из-за ошибок Windows, удаления, форматирования, сбоя системы, потери или повреждения разделов, неожиданного выключения, заражения вирусом. Он совместим со всеми устройствами хранения данных, такими как жесткий диск, USB-накопитель, карта памяти, сотовый телефон и т. Д. Если ваши файлы потеряны, вы можете быстро их восстановить, с помощью этой утилиты.

Если у вас остались какие-то вопросы по теме «Как исправить ошибку 0xc000007b» то можете писать их в форму комментариев на нашем сайте.

Так же вы можете приобрести у нас лицензии Microsoft со скидкой до 90% , которые будет работать официальном сайте Microsoft

Всем доброго времени суток, долго думал какое изображение подобрать к данной заметке. Решил вас порадовать фотографией красивой девушки, которая знает, что это за ошибка 0xc000007b при запуске игры и как исправить ее. Видите какая она довольная? – наверняка запустила своих распрекрасных Симс и будет наслаждаться виртуальной жизнью. Если вы еще не знаете каким образом решить данную проблему – предлагаю ознакомиться с данной заметкой, вы в нужном месте…

0xc000007b при запуске игры как исправить

Как правило, ошибка 0xc000007b проявляется при повреждении файлов операционной системы. Такое может произойти при некорректном завершении работы компьютера, перезагрузки во время важного обновления и еще многих случаях. Некоторые игры могут выдать такую ошибку с нарушением работы такого ПО как DirectX (или недостачей одного из его компонентов), отсутствием NET Framework или Visual C++ (не так давно я писал о том, что делать если в системе отсутствует файл msvcr100.dll). Очень часто к таким проблемам приводят устаревшие драйвера видеокарты, особенно часто мне попадались платы Nvidia с подобной проблемой.

Содержание:

  • 1 0xc000007b при запуске игры – как исправить ошибку?
    • 1.1 Семь бед – один CTRL + ALT + DELETE
    • 1.2 0xc000007b и NetFramework – есть ли связь?
    • 1.3 Обновляем и переустанавливаем распространяемый пакет Visual C++
    • 1.4 Пробуем запустить проблемное приложение от имени Администратора
    • 1.5 0xc000007b? – переустанови игру или приложение
    • 1.6 Проверяем жесткий диск
    • 1.7 Переустановка DirectX при ошибке 0xc000007b
    • 1.8 Сканируем систему на наличие ошибок и исправляем 0xc000007b
  • 2 Выводы о том, как исправить ошибку 0xc000007b

0xc000007b при запуске игры – как исправить ошибку?

Согласитесь, досадно качать игру GTA 5 на компьютер несколько часов, столько же прождать наблюдая за ее установкой на компьютер и в итоге столкнуться с ошибкой 0xc000007b. Поэтому нам просто жизненно важно разобраться что это за ошибка и каким образом ее исправить. Всем торопыгам, которым лень читать, пишу в самом начале заметки – да, ошибка 0xc000007b может проявляться из-за кривого репака игры скачанного с торрентов. В большинстве случаев виноваты антивирусные программы, которые рубят на корню активаторы для игр – переходите на легальный контент или проверяйте карантин и настраивайте исключения в вашей защите компьютера.

Ошибка 0xc000007b при запуске игры

Я изучил данный вопрос и подготовил 8 рекомендаций о том, как исправить ошибку 0xc000007b при запуске игры. Список может быть не полным и не включает в себя аппаратные причины неисправности ввиду сложности диагностирования простым пользователям.

Семь бед – один CTRL + ALT + DELETE

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

Перезагружаем компьютер

В Windows 10 перезагрузку желательно сделать с зажатой клавишей SHIFT на клавиатуре, так как обычная перезагрузка тут выглядит немного иначе, чем на Windows 7 или древней XP.

0xc000007b и NetFramework – есть ли связь?

Для достаточно большого количества различных приложений и игр требуется установленный в системе Net Framework – без него некоторые программы не запустятся и напишут что этот компонент отсутствует в системе, а некоторые игры могут просто выпасть в ошибку 0xc000007b, а вы будете искать как ее исправить.

NET Framework

Чтобы установить данный компонент, то нам ничего скачивать не нужно. Там же, где находится “Установка и удаление программ”, есть пункт “Компоненты Windows”. Просто ставим галочку, как на изображении выше, и ждем пока .NET Framework скачается и установится на компьютер. После его инсталляции рекомендую выполнить перезагрузку системы.

Обновляем и переустанавливаем распространяемый пакет Visual C++

Я не так давно писал про отсутствие файла msvcr100.dll – что это за ошибка как ее исправить мы разобрались. В данной заметке как раз и описывались проблемы с распространяемым пакетом Visual C++ для Windows. Иногда эта гадость может просто ругаться на отсутствие файлов, а в некоторых случаях ничего внятного не пишут и вы идете гуглить “0xc000007b при запуске игры как исправить”.

Распространяемый пакет Visual C++

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

Пробуем запустить проблемное приложение от имени Администратора

Может быть и такое, что ошибка 0xc000007b может происходить из-за недостаточных прав пользователя. Просто попробуйте запустить неработающее приложение или игру от имени Администратора. Чтобы это сделать – кликните правой кнопкой мыши по ярлыку игры, и в выпадающем меню выберите пункт “Запуск от имени Администратора”.

Запуск от имени Администратора

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

0xc000007b? – переустанови игру или приложение

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

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

Очень часто виноват ваш антивирус, если вы скачали пиратскую игру (я не буду говорить сейчас хорошо это или плохо, у нас задача разобраться с ошибкой 0xc000007b при запуске игры), то высока вероятность что так называемый кряк, который отучил игру от жадности разработчиков просто мог оказаться в карантине вашей антивирусной программы. Игра, не обнаружив недостающий файл может выдавать вообще любую ошибку, а не только 0xc000007b.

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

Проверяем жесткий диск

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

chkdsk c: /f /r – эта команда просканирует ваш диск с (обычно он системный) и по возможности исправит все найденные ошибки.

Чекдиск

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

Переустановка DirectX при ошибке 0xc000007b

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

https://www.microsoft.com/ru-ru/Download/confirmation.aspx?id=35

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

Установка DirectX

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

Сканируем систему на наличие ошибок и исправляем 0xc000007b

В системе Windows есть очень полезная команда, которая запускает сканирование системы на ошибки и целостность всех DLL файлов. Вполне возможно, что данный способ поможет вам разрешить вопрос с ошибкой 0xc000007b при запуске игры. Для этого откройте “Командную строку” и введите “sfc /scannow” без ковычек и дождитесь окончание выполнения операции.

Сканирование системы на ошибки

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

Выводы о том, как исправить ошибку 0xc000007b

Друзья, если копнуть глубже, то можно найти еще минимум 10 способов исправить ошибку 0xc000007b при запуске игры, нам просто не хватит ни сил ни времени чтобы подробно описать все вариации – нужно знать почему это происходит. Схема должна быть такая:

  1. Все работает нормально и проблема с одной, конкретной игрой? – копаем в торону самой игры (все остальное же работает)
  2. Ошибка 0xc000007b проявляется во многих приложениях и играх? – смотрим в сторону проблем с системой, пробуем запустить от имени администратора, используем режим совместимости, переустанавливаем драйвера для видеокарты

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

Как исправить ошибку 0xc000007b при запуске игры

P.S. Ну вот мы и ответили на ваш вопрос о том, что за ошибка 0xc000007b при запуске игры и как исправить ее? – как видите проблема довольно распространенная и есть много вариантов решения. Но не забывайте, что данная неприятность может произойти и по причинам неисправности железа, но это уже совсем другой разговор…

Содержание

  1. Описание проблемы
  2. Решение
  3. Проблемы с файлами dll в DirectX или C++
  4. Проблема с патчем или пиратской программой
  5. Исключение декомпрессии
  6. Неправильный exe-файл был изменен вирусом
  7. Несовместимость игры с текущей системой
  8. Режим отладки программного обеспечения
  9. Ошибка 0xc000007b на синем экране
  10. Решение
  11. Ошибка 0x0000007b появляется на синем экране
  12. Драйвер видеокарты обновлен?
  13. Вы импортировали информацию реестра?
  14. Англоязычная директория
  15. Решение
  16. Включено ли прямое ускорение?
  17. Вы установили PhyX?
  18. Режим совместимости
  19. Ваша игра для Windows Live установлена?
  20. Установлен ли ваш Microsoft .NET Framework?
  21. Замена операционной системы
  22. Аппаратное обеспечение
  23. Часто задаваемые вопросы

Операционная система Windows — это сложный, взаимодополняющий и связанный с другим ПО комплекс эффективного распределения вычислительных ресурсов и управления устройствами. Однако не редки случаи, когда происходят проблемы. Ошибка 0xc000007b появляется у многих пользователей ПК. На этой странице мы узнаем, в чем заключается сложность её устранения, и найдем несколько способов решения.

0xc000007b означает, что код ошибки возникает из-за ненормального вызова файла dll. Часто игры или программы, которые мы планируем запустить, используют библиотеки и компоненты распространенных ПО — DirectX (часто версии 9.0) и распространяемый пакет Visual C++.

Описание проблемы

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

Ошибка 0xc000007b в Windows

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку «ОК».

Решение

Часто для решения проблемы 0xc000007b, нужно установить последнюю версию компонентов DirectX и C++. Это правда, что обновление файлов один за другим поможет устранить уведомления ошибки, пользователи, которые уже искали Visual C в Интернете, наверняка знают, что их существует много версий.

Переходите по ссылке для скачивания DirectX и C++ или испробуйте все способы решения данной проблемы. Выберите необходимые вам и устанавливайте на свой ПК.

Переустановка новых версий не помогла?

Проблемы с файлами dll в DirectX или C++

Эта ситуация является наиболее распространенной. Dll-файлы компонентов DirectX или компонентов C++ в вашей системе все еще имеют аномалии. Скорее всего, версия утилиты была не полная или не последняя. Новый билд обычно обновляет пакет данных и улучшает возможность исправления 0xc000007b. Если какие-то файлы постоянно не восстанавливаются, то, скорее всего, причина в том, что файлы заняты. Рекомендуется перезагрузить компьютер и закрыть все бесполезные программы (включая антивирус, QQ, браузер и завершить процесс QQProtect.exe в диспетчере задач и т. д.).

Проблема с патчем или пиратской программой

Причина в том, что пиратское ПО для взлома изменяет некоторую информацию в исходном файле exe/dll. Игра или программное обеспечение имеют большой размер, а патч для взлома относительно невелик. Обычно, заменив exe или steam_api.dll и другие файлы, злоумышленники производят нарушения, изменив несколько МБ. Так что если причина в этом, то рекомендуется повторно скачать ваш патч, проверив контрольные суммы для исключения сторонних встроек. Если dll другой, то перейдите по ссылке, чтобы загрузить любой необходимый.

Исключение декомпрессии

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

Решение

  • Найдите дистрибутив с приложением.
  • Распакуйте его через правую кнопку мыши в любую папку.
  • Пропустите ошибки, возникающие при работе архиватора.

Распаковка приложения или игры из архива в Windows

Неправильный exe-файл был изменен вирусом

Эта ситуация имеет определенную вероятность возникновения, и некоторые пользователи также сталкивались с этой проблемой. В похожем случае в системе есть вирус, который заражает exe-файл. Поэтому он не может запуститься. Этот тип вируса может изменять только исполняемые файлы без цифровой подписи. Поэтому средство восстановления DirectX на вашем компьютере и некоторые небольшие программы в Интернете могут не работать. Однако собственные программы Windows и некоторые с цифровыми подписями от крупных компаний все еще могут нормально функционировать. Если ошибка 0xc000007b возникает во многих программах на вашем компьютере, скорее всего, это так.

Решение

Чтобы исправить, включите сначала стандартный защитник Windows, а потом сторонний антивирус, чтобы проверить ОС на наличие вредоносных файлов, и исправьте их или внесите в карантин.

  • Наберите в строке поиска «Защита от вирусов и угроз».
  • Откройте это окно безопасности Windows кликнув по найденному параметру левой кнопкой мыши.
  • Включите все параметры подсвеченные как выключенные таким образом, чтобы они стали выводить галочку в зеленом кружке.

Защита от вирусов и угроз в Windows

Несовместимость игры с текущей системой

Пользователи Windows 7 получают ошибки 0xc000007b при запуске некоторых последних игр (особенно игр 2020 года и более поздних версий).

Решение

  • Пожалуйста, зайдите на официальный сайт игры (или steam).
  • Посмотрите, что написано в графе операционная система в минимальной конфигурации, необходимой для игры.
    • Сравните с той которая у вас. Если Необходимо обновить ОС, установите необходимую, например Windows 11 последней конфигурации с нашего ресурса.
  • Кроме версии системы, также советуем проверить требования к оборудованию.
    • Кроме покупки нового качественного «железа» выхода нет.

Режим отладки программного обеспечения

Если вы используете Visual Studio и другое программное обеспечение для разработки программ, особенно в режиме отладки, появится ошибка 0xc000007b. Её уже не решишь простым обновлением Компонентов Диеркс и C++.

  1. Попробуйте найти параметр «SATA Mode Selection» в интерфейсе BIOS и измените режим «AHCI» на режим «iDE».
  2. Для этого при включении ПК нажмите на клавишу «del, F2,F9,F12 (в зависимости от того, какой клавишей запускается загрузчик — BIOS именно у вас. Это будет на секунду написано на экране)».
  3. Перейдите в раздел «Advaced».
  4. Затем найдите «SATA Configuration». Иногда этого пункта нет, в сразу можно увидеть «SATA Mode Selection».
  5. Поменяйте значение на «iDE». Как показано на скриншотах из разных загрузчиков в галерее ниже.
  6. В командной строке орт имени администратора, введите команду «sfc /scannow». Подождите сканирования и восстановления. Это действие будет выглядеть как на скриншоте ниже галереи.

SATA Configuration в BIOS 1 SATA Configuration в BIOS 2 SATA Configuration в BIOS 3 SATA Configuration в BIOS 6 SATA Configuration в BIOS 5 SATA Configuration в BIOS 4 sfc /scannow в командной строке Wndows

Ошибка 0xc000007b на синем экране

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

Решение

  • Предлагается переустановить систему напрямую, чтобы решить эту проблему.

Ошибка 0x0000007b появляется на синем экране

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

  • Например, если у вас изначально была IDE, а вы зашли в биос и изменили его на AHCI, то перезапуск обязательно приведет к синему экрану 0x0000007b.
  • Также возможно, когда вы не проявляли инициативу по изменению режима жесткого диска, а обновили BIOS и изменили режим ЖД по умолчанию.

Решение

  • При включении ПК нажмите на клавишу «del, F2,F9,F12 (в зависимости от того, какой клавишей запускается загрузчик — BIOS именно у вас. Это будет на секунду написано на экране)»
  • Перейдите в раздел «Advaced».
  • Затем найдите «SATA Configuration». Иногда этого пункта нет, в сразу можно увидеть «SATA Mode Selection».
  • Поменяйте значение на «iDE». Как показано на скриншотах из разных загрузчиков в галерее ниже.

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

SATA Configuration в BIOS 1 SATA Configuration в BIOS 2 SATA Configuration в BIOS 3 SATA Configuration в BIOS 6 SATA Configuration в BIOS 5 SATA Configuration в BIOS 4

Драйвер видеокарты обновлен?

Если это не последняя версия драйвера или вы не знаете, является ли она крайней.

Решение

  • Перейдите на официальный веб-сайт вашей видеокарты, чтобы загрузить и установить ее.
  • Либо наберите в поисковике Windows «Диспетчер устройств».
  • В открывшемся окне, выберите «Видеоадаптеры».
  • Кликните ПКМ и в выпадающем меню отройте «Свойства».
  • Внутри щелкните по вкладке «Драйвер».
  • Нажмите «Обновить».

Обновление драйвера видеокарты в Windows

Вы импортировали информацию реестра?

Вообще говоря, версия игры имеют один или несколько файлов информации реестра с расширением *.reg. Эти документы необходимо показать для правильной работы приложений. Особенно после переустановки компьютера.

Решение

Запустите его, чтобы импортировать информацию. В противном случае может быть невозможно запустить игру.

Часто все очень просто и достаточно кликнуть два раза левой кнопкой мыши и дать разрешение на изменение реестра.

Англоязычная директория

Иногда игра должна быть помещена в каталог полностью на английском языке, прежде чем она сможет нормально работать.

Решение

  • Например, измените название пути на «C:/game/…».
  • Вы должны убедиться, что пользователь Windows, которого вы используете в настоящее время, именован английскими символами.
    • Иначе рекомендуется создать нового пользователя.

Кириллица в пути Windows

Включено ли прямое ускорение?

Часто прямое ускорение компьютера отключается по необъяснимым причинам, что приводит к сбою многих игр. Подсказка в это время может быть такой, как «Пожалуйста, установите DirectX 8.0 или выше» или «Ускорение DirectX недоступно». В настоящее время для запуска игры необходимо вручную включить прямое ускорение.

Решение

  • Зажимаем «Win+R».
  • Вводим «dxdiag».
  • Переходим в вкладку «Дисплей».
  • Находим поле «Возможности DirectX».
  • Все должно быть включено так, как на картинке ниже.

Если что то выключено, то проблема скрывается в в следующем:

  • Битые драйвера;
    • Проверьте в «Диспетчере устройств» и обновите все драйвера через меню «Свойства».
  • Не новый Дирекс;
    • Обновите до версии указанной в системных требованиях.
  • Ускорение железа;
  • Сторонние программы для ускорения;
  • Электронные компоненты перестали работать или не соответствуют требованиям.

Средство диагностики DirectX в Windows

Вы установили PhyX?

Многие игры теперь поддерживают PhyX, хотя только NVIDIA могут его включать.

Ошибка PhyX в Windows

Решение

Для пользователей видеокарт ATI для запуска игры необходимо всего лишь установить драйверы PhyX. Сам physxloader.dll подставится автоматически при установке драйвера.

  • Иногда physxloader.dll нужно скопировать в корень с игрой, заменив уже существующий и в системную папку «C:WindowsSystem32».
  • После чего это «*.dll» необходимо зарегистрировать, для этого:
    • Нажмите «Win+R».
    • Введите «regsvr32.exe physxloader.dll».

Выполнение команды regsvr32.exe physxloader.dll в Windows

Режим совместимости

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

Решение

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

Режим совместимости в Windows

Ваша игра для Windows Live установлена?

Сейчас многим старым играм нужна поддержка Game For Windows Live, и их надо установить (не запускать через ОЗУ, как раньше), чтобы играть. Иначе в некоторых системах будет указано, что файл xlive.dll отсутствует, в то время как в других системах будет указано 0xc000007b. Так что Game For Windows Live нельзя игнорировать.

Установлен ли ваш Microsoft .NET Framework?

В оригинальные Vista, и в Windows 7 встроен .NET Framework, а вот о пиратской версии сказать сложно. Взломки часто кастрируют некоторый контент, и никто не может узнать, как это повлияет на структуру системы. Так что если ваша система не официальная, то вы можете попробовать установить Фреймворк самостоятельно.

Решение

Кликните на ссылку и скачивайте .NET Framework с нашего сайта или испробуйте все способы из приведенной инструкции и перейдите на страницу загрузки платформы внизу инструкции.

Net Framework для Windows

Замена операционной системы

По запросам заметно, что эта проблема очень распространена на 64-битных компьютерах, и в редких случаях она встречается и на системах x32. Поэтому рассмотрите возможность перехода на 32-битную ОС. Вероятность этой проблемы будет значительно снижена.

Аппаратное обеспечение

Если эта проблема все еще возникает даже после смены операционной системы, она может быть вызвана оборудованием.

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

Часто задаваемые вопросы

Игры, которые я запускаю, имеют спецэффекты DirectX 11, будет ли это иметь какое-то отношение к Дирекс 9?

На самом деле, ради совместимости приложений компании часто разрабатывают игрушки на основе 9-ой версии, а затем добавляют специальные эффекты от 10-ки и 11-ой.

Есть ли проблема с DirectX, которая влияет на последние игры?

Да, дело в том, что Windows старых версий поддерживают самые основные компоненты Дирекс, а игре часто нужны более продвинутые (такие как d3dx9_42.dll, xinput1_3.dll…). В системе отсутствуют эти ключевые файлы, из-за чего игра не запустится или появится ошибка 0xc000007b.

Некоторые люди могут спросить: я уже установил DirectX 9.0 и C++, но они все равно не работают?

Здесь кроется важная вещь: 32-битные системы должны устанавливать 32-битные файлы библиотек DirectX и C++, а 64-битные системы должны устанавливать файлы библиотек с типом разрядности данных как x32-а, так и x64-е бита, что является ключом к решению этой проблемы.

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название «Ошибка при запуске приложения (0xc000007b)» и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться вообще, либо всё же запускаются, но далеко не всегда. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей аж со времен Windows 98, просто формулировались иначе. Начиная с версии Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики по причинам, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

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

Данная статья представляет собой всего-лишь теоретические выкладки по исследованию загрузчика образов операционной системы Windows. Изучение проводилось с целью создать базис для предполагаемого дальнейшего изучения особенностей кода загрузчика. На данный момент рекомендаций по исправлению ошибки c000007b в данной статье не предоставлено, поскольку практика показала неоднозначность популярных решений с использованием утилит Dependency Walker и Process Monitor.

Формат исполняемых файлов

Приступим. Для начала давайте посмотрим, что же нам сообщают разработчики об ошибке со статусом c000007b на официальной странице значений NTSTATUS? Ошибка носит символическое имя STATUS_INVALID_IMAGE_FORMAT (НЕКОРРЕКТНЫЙ ФОРМАТ ОБРАЗА), а в описании к ней присутствует следующая формулировка: «Образ либо не предназначен для выполнения в Windows или содержит ошибку..», ну и далее даются общие рекомендации. Как всегда, довольно пространное определение, не содержащее в себе значимых подробностей, однако уже позволяющее нам сделать как минимум два предположения:

  1. ошибка может содержаться в служебных структурах заголовка основного запускаемого модуля (exe-файл);
  2. ошибка может содержаться в подключаемых образах (dll-библиотеках);

Ну хорошо, а что же в себе таит утверждение о некорректном формате? Возможно, подразумевается некое повреждение структуры PE-образа? Но ведь близких по природе ошибок в PE-образе, чисто теоретически, может быть великое множество, и скорее всего так оно и есть. Одним словом, это утверждение о повреждении структуры исполняемого образа требует проверки и аргументации!! В свою очередь, для проверки следовало бы отследить, какой именно код ядра и на каком этапе выводит данное сообщение. Вероятно, если мы наблюдаем подобную ошибку до запуска приложения, то от момента щелчка правой кнопкой мыши по бинарному исполняемому файлу (например: exe-файл) в проводнике Windows (explorer.exe) и до непосредственного начала выполнения кода приложения, проходит некая скрытая от глаз пользователя работа на уровне ядра операционной системы и вот как раз эта самая работа иногда завершается с ошибкой. Одни вопросы порождают другие. Думаю, для лучшего понимания того, какая именно логика скрывается за безмолвием загрузки, надо сперва задаться вопросом «что же вообще такое представляет из себя исполняемый файл в среде Windows и как он загружается»? Всякий бинарный исполняемый файл в Windows построен на основе формата под названием PE (Portable Executable, переносимый исполняемый), который содержит в себе великое множество разнообразных секций, предназначенные для подготовки участков файла (они же блоки кода и данных), критичных для непосредственного выполнения приложения.

Portable Executable (PE) — формат исполняемых файлов и динамических библиотек, используемый в операционных системах Microsoft Windows. Фактически это довольно сложная структура данных, в которой содержится информация, необходимая системному загрузчику исполняемых образов, то есть коду ядра, который производит всю необходимую работу по подготовке исполняемого файла к непосредственному запуску (создание адресного пространства процесса, отображение файла в память, создание всех необходимых для функционирования системных конструкций и прч). В операционных системах Windows описываемый формат PE применяется при создания таких исполняемых файлов как: .exe, .dll, .sys и некоторых других.

Выходит, в системе имеется некий загрузчик образов (PE-загрузчик), естественно, ведь кто-то должен подготавливать код и данные к непосредственному исполнению. Это отлично укладывается в логику функционирования операционной системы, к тому же я про него время от времени краем уха слышал. Но это, извините, закопано где-то системе, с чего нам начать? Давайте начнем с малого, с формирования тестовой среды:

  • Операционная система: Windows 7 Профессиональная (Русская), 32-разрядная (6.1.7601) (32-битную среду я выбрал для простоты, дабы WOW64 не вносил свои коррективы);
  • Простой исполняемый модуль lasterr.exe из комплекта примеров FASM (EXAMPLESDLL) с минимумом подключаемых библиотек. Опять же, для простоты;
  • Отладчик WinDbg (версия 10.0.14321.1024) из комплекта Debugging Tools for Windows (x86);
  • Утилита Process Monitor;

Процесс загрузки образа

В моем случае, при отсутствии необходимых знаний, придется двигаться с самого начала, при этом интуитивно выискивая направления по косвенным признакам. Все те данные, которыми мы обладаем на текущий момент, подводят нас к мысли, что надо каким-то образом зацепиться за этот пресловутый загрузчик образов, но как? Единственное, что приходит в голову, так это использовать всеми нами любимую утилиту Process Monitor. Зная специфику программы, можно заранее предположить, что это будут лишь поверхностные сведения, поскольку утилита не покажет нам подробности многих этапов загрузки образа на выполнение. Но ведь что-то она нам все же даст, ведь пока мы идем в темноте и пытаемся нащупать хотя бы какие-то ориентиры для дальнейшего продвижения. Просто будем надеяться, что информация, предоставляемая нам утилитой Procmon поможет нам двинуться дальше, найти зацепку в виде каких-нибудь малозаметных деталей. Тут стратегия у нас будет достаточно простая, ничего необычного.

  1. Из-под учетной записи с правами локального администратора запускаем утилиту Procmon;
  2. В разделе Filter создаем фильтр на наше приложение lasterr.exe;
  3. Останавливаем захват событий (Ctrl+E или иконка лупы на панели);
  4. Очищаем лог (Ctrl+X или значок ластика на панели);
  5. Снова включаем захват (Ctrl+E) событий;
  6. Стартуем наблюдаемое приложение lasterr.exe, как обычно двойным щелчком из проводника;

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

  1. Образ приложения lasterr.exe загружается в адресное пространство собственного процесса по адресу 0x400000. То есть мы наблюдаем какой-то из этапов уже работающего загрузчика образов;
  2. Образ системной библиотеки ntdll.dll загружается в адресное пространство процесса по адресу 0x77c30000. Эта библиотека всегда загружается первой?
  3. Активизируется ускоритель prefetcher. В системной директории C:WindowsPrefetch проверяется .pf-файл(ы) для запускаемого приложения;
  4. Чуть ниже мы можем увидеть группу событий по операциям (CreateFile, SetBasicInformationFile, QueryAttributeTagFile, CreateFileMapping, QueryStandardInformationFile) с библиотеками ntdll.dll, kernel32.dll, apisetschema.dll, kernelbase.dll, locale.nls, errormsg.dll, user32.dll и прочими. Судя по всему это не проецирование образов, а события, генерируемые prefetcher’ом;
  5. Ниже по списку мы наблюдаем первые события с операцией Load Image, которые знаменуют собой загрузку необходимых приложению DLL библиотек в адресное пространство процесса;
  6. Еще ниже по списку событий мы наблюдаем чтение ветки HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options. Имеется в виду механизм, которых позволяет запускать образы под отладчиком;
  7. Далее мы видим считывание ключа реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVrsionWindowsLoadAppInit_DLLs. Ключ ответственен за механизм AppInit_DLLs, который позволяет определить списки DLL, загружаемые в адресное пространство «каждого» процесса;
  8. Далее идет работа с различными языковыми опциями и MUI;

Это все, что предоставляет нам Procmon. Но на самом деле в приведенном выше списке мы видим очень малую часть логики, так сказать её вершину. Обусловлено это тем, что Process Monitor показывает лишь то, до чего может сам дотянуться, и не отображает всего многообразия операций по подготовке приложения к запуску. (прим.: хотя, возможно я забыл отключить какие-то встроенные фильтры). Но даже малое порой представляет собой большое, все дело в точке зрения :) Давайте посмотрим, о чем на могут рассказать захваченные Process Monitor’ом события? Например, событие Load Image применительно к образу lasterr.exe по загрузке себя же самого по базовому адресу 0x400000 в адресное пространство процесса, определенно будет нам интересно. Щелкнем по нему пару раз и перейдем во вкладку Stack. Стек вызовов начинается с функции RtlUserThreadStart, которая является частью системной библиотеки ntdll.dll. Библиотека ntdll.dll предоставляет собой «родной» интерфейс (Native API) пользовательского режима для функций ядра, это своеобразный «мост» между функциями библиотек пользовательского режима и кодом, который реализует соответствующий функционал в ядре. Функция RtlUserThreadStart именуется подобным образом не спроста, название говорит само за себя, намекая нам на назначение данной функции. Предположительно она предназначена для старта потока внутри процесса, при содержит функционал части пользовательского режима.

RtlUserThreadStart — общая стартовая функция для всех потоков в Windows.

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

Load Image Stack

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

LdrInitializeThunk — функция обратного вызова (режим ядра -> режим пользователя) в составе библиотеки ntdll.dll, которая не столько обратный вызов, сколько точка входа, с которой все потоки пользовательского режима начинают свое выполнение. Другими словами, создание любого потока пользовательского режима всегда происходит посредством данной функции. В некоторых источниках фигурирует как процедура инициализация загрузчика, начальный его этап, отвечает за инициализацию непосредственно загрузчика, менеджера кучи, таблиц FLS, NLS, TLS, структур критической секции. Судя по всему они с RtlUserThreadStart работают в связке, но как именно, пока не ясно.

Мы получили имена двух функций, которые, судя по всему, имеют отношение к созданию потока и подготовке его к выполнению. Теперь можно переходить непосредственно к практической части исследования. Надеюсь, перед началом экспериментов у Вас уже готова тестовая среда и установлены Debugging Tools for Windows из комплекта Windows SDK и в системную переменную Path добавлен путь к необходимой версии каталога с отладчиками. Теперь задача перед нами стоит не совсем тривиальная, поскольку нам необходимо поймать момент запуска приложения, до его непосредственного выполнения и даже до момента подготовки адресного пространства процесса. К превеликой нашей радости, основными отладчиками от Microsoft поддерживаются фильтры событий, которые включают отладочный сценарий начальной стадии загрузки приложения. Насколько я понял, он может быть активирован двумя путями:

  • Настройка отладчика через GUI: через меню DebugEvent Filters. На фильтре события Create process указываем опцию Execution: Enabled. После перезапуска процесса отладчик остановится до функции LdrInitializeThunk.
  • Запуском отладчика со специальными опциями командной строки.

Например, следующая команда позволяет изучить процесс и установить точку останова до того, как код пользовательского режима запустится:

windbg.exe -xe ld:ntdll.dll lasterr.exe

опция xe подразумевает останов после того, как библиотека ntdll.dll будет загружена в адресное пространство процесса. И не спроста, потому как в самом отладчике, в командной строке, мы должны поставить точку останова:

bp ntdll!LdrInitializeThunk

а затем продолжить выполнение командой «g». Для чего это все? А для того, чтобы пропустить некоторое количество кода, которое выполняется до функции LdrInitializeThunk. Мы бы в любом случае вышли на неё, однако потратили бы дополнительное время.
Отладчик останавливается на точке остановка в самом начале функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

ntdll!LdrInitializeThunk:

77c934a6 8bff            mov     edi,edi

77c934a8 55              push    ebp

77c934a9 8bec            mov     ebp,esp

77c934ab ff750c          push    dword ptr [ebp+0Ch]  ss:0023:0006fd1c={ntdll!`string  (ntdll+0x0) (77c30000)}

77c934ae ff7508          push    dword ptr [ebp+8]

77c934b1 e816000000      call    ntdll!LdrpInitialize (77c934cc)

77c934b6 6a01            push    1

77c934b8 ff7508          push    dword ptr [ebp+8]

77c934bb e8101cfeff      call    ntdll!ZwContinue (77c750d0)

77c934c0 50              push    eax

77c934c1 e87f37feff      call    ntdll!RtlRaiseStatus (77c76c45)

77c934c6 cc              int     3

77c934c7 90              nop

77c934c8 90              nop

77c934c9 90              nop

77c934ca 90              nop

77c934cb 90              nop

Ну, судя по всему, функция LdrInitializeThunk содержит (на верхнем уровне) вызовы всего трех функций: LdrpInitialize, ZwContinue, RtlRaiseStatus, причем, я так понимаю, две последних функции являются для нас не значимыми. Выполнив отладчиком по клавише F10 команду call ntdll!LdrpInitialize я убедился, что приложение запустилось. Получается, вся работа происходит в глубинах функции Ldrpinitialize, надо идти внутрь. Первым параметром в функцию LdrpInitialize передается адрес дампа PE-файла в адресном пространстве процесса, а вторым адрес какой-то неизвестной структуры (?). Судя по всему, когда я впервые остановился на точке останове в начале функции, в первом параметре я увидел адрес подмапленной в память библиотеки ntdll.dll, поскольку она загружается самой первой. С этого момента я опускаю ряд подробностей нахождения мест кода, которые могли быть ответственны за генерацию ошибки c000007b, поскольку описание всего процесса отладки превратило бы повествование в бесконечное. Скажу лишь, что всю работу по анализу кода я проводил при помощи отладчика WinDbg и дизассемблера IDA.

Первая причина

Первая удача сопутствовала мне при обработке функции LdrpSnapIAT. Очередной раз анализируя код я поставил точку останова на данную функцию, и при выполнении отладчик остановился на следующем коде:

ntdll!LdrpSnapIAT:

77c94ca1 6a24            push    24h

77c94ca3 68f808c877      push    offset ntdll! ?? ::FNODOBFM::`string‘+0x542 (77c808f8)

77c94ca8 e847dbfeff      call    ntdll!_SEH_prolog4 (77c827f4)

77c94cad 8d45d8          lea     eax,[ebp28h]

77c94cb0 50              push    eax

77c94cb1 6a00            push    0

77c94cb3 6a01            push    1

77c94cb5 8b7508          mov     esi,dword ptr [ebp+8]

77c94cb8 ff7618          push    dword ptr [esi+18h]

77c94cbb e8caa7ffff      call    ntdll!RtlImageDirectoryEntryToData (77c8f48a)

77c94cc0 8945d4          mov     dword ptr [ebp2Ch],eax

77c94cc3 85c0            test    eax,eax

77c94cc5 0f843dc50100    je      ntdll!LdrpSnapIAT+0x26 (77cb1208)

Самое последнее условие je ntdll!LdrpSnapIAT должно уводить нас на следующую ветку кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

77cb1208 a17473c877      mov     eax,dword ptr [ntdll!LdrpLogLevelStateTable (77c87374)]

77cb120d 83c801          or      eax,1

77cb1210 8505c0f9d077    test    dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)],eax

77cb1216 7422            je      ntdll!LdrpSnapIAT+0x58 (77cb123a)

77cb1218 83c624          add     esi,24h

77cb121b 56              push    esi

77cb121c 688491c777      push    offset ntdll! ?? ::FNODOBFM::`string‘ (77c79184)

77cb1221 6a00            push    0

77cb1223 687891c777      push    offset ntdll! ?? ::FNODOBFM::`string’ (77c79178)

77cb1228 6877080000      push    877h

77cb122d 688c8ec777      push    offset ntdll! ?? ::FNODOBFM::`string (77c78e8c)

77cb1232 e813e10100      call    ntdll!LdrpLogDbgPrint (77ccf34a)

77cb1237 83c418          add     esp,18h

77cb123a a1c0f9d077      mov     eax,dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)]

77cb123f 85057873c877    test    dword ptr [ntdll!LdrpLogLevelStateTable+0x4 (77c87378)],eax

77cb1245 7401            je      ntdll!LdrpSnapIAT+0x66 (77cb1248)

77cb1247 cc              int     3

77cb1248 b87b0000c0      mov     eax,0C000007Bh

77cb124d e9f93afeff      jmp     ntdll!LdrpSnapIAT+0x129 (77c94d4b)

Понятное дело, что в штатном режиме управление туда не передается, поэтому я просто взвел флаг zero, чтобы принудительно инициировать переход. Ну и в самом конце фрагмента кода мы видим долгожданную команду mov eax, 0C000007Bh, после чего я запускаю выполнение командой g и.. вот оно:

c000007b

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

Судя по описанию с MSDN, данная функция ищет запись внутри PE-заголовка и возвращает адрес данных для этой записи (при наличии возвращает заголовок секции (IMAGE_SECTION_HEADER)) и длину, а случае ошибки возвращает ноль. Используется для поиска различных таблиц в PE-файлах.

Получается эта функция предназначена для получения секций подключаемых библиотек? Ничего не понятно, необходимо как то понять все происходящее в целом, так сказать откатиться назад, а для этого нам надо посмотреть стек вызовов:

ntdll!LdrpSnapIAT+0x2b

ntdll!LdrpHandleOneOldFormatImportDescriptor+0x120

ntdll!LdrpHandleOldFormatImportDescriptors+0x1f

ntdll!LdrpProcessStaticImports+0x25c

ntdll!LdrpLoadDll+0x33d

ntdll!LdrLoadDll+0xaf

ntdll!LdrpInitializeProcess+0xfe7

ntdll!_LdrpInitialize+0x78

ntdll!LdrInitializeThunk+0x10

Похоже что за инициализацию процесса отвечает функция LdrpInitializeProcess, которая, на определенном этапе своей работы начинает загружать библиотеки, необходимые для работы основного приложения, при помощи функции LdrLoadDll, а та, в свою очередь, начинает просматривать таблицу импорта и заполнять Import Address Table (IAT) через функцию LdrpSnapIAT. Однако стек не всегда остается подобным, при прогоне программы по команде g и остановке на точке останова, стек вызовов иногда меняется, показывая, что код загружает модули, присутствующие в таблице импорта.

Функция LdrpSnapIAT «связывает» таблицу адресов импорта с импортируемыми DLL библиотеками, перезаписывает каждую запись в таблице адресов импорта актуальным адресом импортируемой функции.

В коде функции LdrpSnapIAT имеется вызов функции RtlImageDirectoryEntryToData, которая, в свою очередь, использует RtlImageDirectoryEntryToDataEx, а та вызывает функцию RtlpImageDirectoryEntryToData32, которая уже проверяет следующие условия:

  1. Если значение входного параметра DirectoryEntry (Порядковый номер требуемой записи каталога) больше или равно (>=) значения PeHeader.OptionalHeader.NumberOfRvaAndSizes (число записей в массиве DataDirectory. обычно имеет значение 16); Поскольку DirectoryEntry может иметь только определенные значения: IMAGE_DIRECTORY_ENTRY_ARCHITECTURE (7), IMAGE_DIRECTORY_ENTRY_BASERELOC (5), IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11), IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR (14), IMAGE_DIRECTORY_ENTRY_DEBUG (6), IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT (13), IMAGE_DIRECTORY_ENTRY_EXCEPTION (3), IMAGE_DIRECTORY_ENTRY_EXPORT (0), IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8), IMAGE_DIRECTORY_ENTRY_IAT (12), IMAGE_DIRECTORY_ENTRY_IMPORT (1), IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10), IMAGE_DIRECTORY_ENTRY_RESOURCE (2), IMAGE_DIRECTORY_ENTRY_SECURITY (4), IMAGE_DIRECTORY_ENTRY_TLS (9), он действительно не должен быть >=16!
  2. Если значение поля PeHeader.DataDirectory.Export библиотеки = 0. В коде функции для поиска местоположения структуры Object Table используется yнивеpсальная формула: pe_header_offset + rva_entries_number*8 + 78h; здесь: pe_header_offset — смещение от начала файла до PE-заголовка (смещение 3Ch), rva_entries_number — количество записей в таблице объектов. После вычисления мы попадаем на первую запись структуры IMAGE_DATA_DIRECTORY, которая содержит относительный адрес (RVA) таблицы экспорта. Предположение: в уже загруженной в адресное пространство процесса DLL, которая должна предоставлять экспортируемые функции нашей основной программе (иначе бы она не была загружена), отсутствует таблица экспорта? Подобная ситуация не допустима и явно ошибочна.

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

Когда после запуска исследуемого приложения под отладчиком, при первом останове на функции LdrpSnapIAT пытаешься принудительно выйти на данную ветку кода, то ошибка не появляется! Могу предположить, что при первом вызове функции анализируется какая-то важная системная библиотека, поскольку из данных Procmon было видно, что первой загружается ntdll.dll, то можно предположить что так оно и есть. Соответственно, отказ в загрузке её самой (вероятно) не может быть завершен ошибкой, и загрузка приложения lasterr.exe в этом случае просто «тихо» завершается не выводя никаких сообщений, иными словами приложение не запускается без каких-либо ошибок, просто ничего не происходит. Поэтому, я несколько раз выполнил команду g и начал анализировать функцию со второго и последующих её вызовов, что дало видимые результаты.

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

Наименование функции Предполагаемая причина
LdrpResGetMappingSize Проверка кода NTSTATUS при возврате из функции RtlImageNtHeaderEx. Если он не нулевой (ошибочный), то проверяются первые два байта опционального заголовка на значение 10Bh (32-битный заголовок) и 20Bh (64-битный заголовок), если не соответствует ни одной из них — ошибка.
LdrpResGetResourceDirectory Код функции уходит на ошибку после нулевого результата выполнения вложенной функции LdrpSectionTableFromVirtualAddress, которая возвращает 0 в случае нулевого смещения PE-заголовка (в нормальной ситуации должно быть 00400080) и нулевого значения слова по смещению в заголовке = начало PE заголовка (00400080) + SizeOfOptionalHeaders + 18h, то есть первое слово Таблицы Секций (Section Table). Опять же, если мы получили Section Table, далее выполняется еще несколько проверок уже непосредственно над полями самой секции, и c000007b генерируется если некоторые поля (SizeOfRawData и прочие) в Section Table некорректны.
LdrpResCompareResourceNames Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
LdrpResSearchResourceInsideDirectory Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
RtlImageNtHeaderEx Ошибка генерируется внутри функции по нескольким условиям, скорее всего сюда же попадает попытка загрузки библиотеки «иной» (нежели основной модуль) разрядности. Предположение: при попытке запуска 64-битного приложения, у которого в импорте оказывается функция из 32-битной библиотеки или наоборот?

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

Общее решение

Можно встретить две основные рекомендации по устранению ошибки c000007b:

  1. В некоторых случаях для решения подобной проблемы предлагается использовать утилиту Dependency Walker, которая позволяет просматривать импортируемые и экспортируемые сбойным модулем библиотеки, и, соответственно, выявить библиотеки, которые по тем или иным причинами не смогли подгрузиться. Но средство позволяет выявить лишь часть причин возникновения ошибки c000007b, поскольку:

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

    ..к тому же, DW грешит еще и тем, что иногда не обнаруживает всех импортируемых модулем библиотек.

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

Тем не менее, описанные инструменты позволяют обнаруживать большинство причин возникновения ошибки c000007b, они могут быть использованы в качестве стартового инструментария, и уже при невозможности решить проблему с их помощью, единственным средством остается отладчик. Лишний раз хочется кинуть камень в огород разработчиков, поскольку они могли бы значительно облегчить определение причины ошибки c000007b путем расширения статусных кодов и введения подробного описания, однако это потребовало бы доработки загрузчика образов. Но поскольку подобная глобализация множества разнородных ошибок под одним статусным кодом в программах под Windows характерна еще со времен Windows 2000, думаю, что ситуация в ближайшее столетие не поменяется :)

Код ошибки P0301 – обнаружены пропуски зажигания в цилиндре 1

Код ошибки P0301 звучит как «обнаружены пропуски зажигания в цилиндре 1». Часто, в программах, работающих со сканером OBD-2, название может иметь английское написание «Cylinder 1 Misfire Detected».

Техническое описание и расшифровка ошибки P0301

Код ошибки OBD-II P0301 является общим, который звучит как «Обнаружены пропуски воспламенения в цилиндре №1». Устанавливается, когда PCM (модуль управления трансмиссией) обнаруживает пропуски зажигания в первом цилиндре.

Код ошибки P0301 – обнаружены пропуски зажигания в цилиндре 1

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

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

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

Симптомы неисправности

Основным симптомом появления ошибки P0301 для водителя является подсветка MIL (индикатор неисправности). Также его называют Check engine или просто «горит чек».

Также они могут проявляться как:

  1. Загорится контрольная лампа «Check engine» на панели управления (код будет записан в память ECM как неисправность).
  2. Двигатель глохнет либо плохо заводится.
  3. Плавающие обороты, а также попытки заглохнуть на холостом ходу.
  4. Дерганье/пропуски зажигания на холостом ходу или под нагрузкой.
  5. Плохой набор скорости.
  6. Повышенный расход топлива.
  7. Снижение мощности двигателя.
  8. Запах топлива из выхлопа.

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

Причины возникновения ошибки

Код P0301 может означать, что произошла одна или несколько следующих проблем:

  • Неисправные или изношенные свечи.
  • Износ или повреждение проводов зажигания.
  • Выход из строя катушки.
  • Кислородный датчик неисправен.
  • Повреждение топливных форсунок.
  • Утечка вакуума.
  • Низкое давление топлива.
  • Неисправен датчик положения распредвала.
  • Неисправность датчика положения коленчатого вала.
  • Засорение трубок или клапана системы рециркуляции отработавших газов.
  • Забиты каталитические нейтрализаторы.
  • Датчика расхода воздуха неисправен.
  • Неисправность датчика положения дроссельной заслонки.
  • Протекающая прокладка головки блока цилиндров.
  • Низкая компрессия двигателя.
  • Некачественное топливо.
  • Иногда причиной является неисправный модуль PCM.

Как устранить или сбросить код неисправности P0301

Некоторые предлагаемые шаги для устранения неполадок и исправления кода ошибки P0301:

  1. Используйте ОБД сканер, чтобы убедиться, что нет других ошибок. Если они присутствуют, рекомендуется их устранить в первую очередь.
  2. Осмотрите надежность крепления разъемов на катушках зажигания или повреждения проводки. Также ищите ослабленные провода массы двигателя. Это может вызвать случайные пропуски зажигания. При необходимости затяните или исправьте.
  3. Проверьте состояние свечей зажигания и их проводов. Изношенные и старые провода свечей зажигания – частые причины случайных пропусков. При необходимости замените свечи и провода.
  4. Необходимо замерить давление топлива. Низкое давление может вызвать периодические пропуски зажигания в нескольких цилиндрах. Когда давление ниже спецификации, двигатель не получает должного количества топлива и начинает обеднять смесь. Топливный насос или регулятор давления могут быть источником низкого давления.
  5. Убедитесь, что топливные форсунки работают правильно и активируются. Случайные пропуски зажигания могут быть признаком неисправности или засорения топливных форсунок, которые необходимо заменить. Также убедитесь, что проводка топливной форсунки не повреждена и правильно подсоединена.
  6. Если система зажигания и топливная система проходят проверку, вы можете выполнить проверку компрессии двигателя и проверку утечки, чтобы увидеть, есть ли какие-либо механические проблемы, вызывающие пропуски зажигания.

Диагностика и решение проблем

Иногда при обнаружении неисправности P0301 не наблюдается никаких симптомов. Самое простое в этом случаи просто сбросить код и посмотреть, вернется ли он.

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

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

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

На каких автомобилях чаще встречается данная проблема

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

  • Audi (Ауди а3, Ауди а4, Ауди А5, Ауди а6, Ауди ТТ)
  • BMW (БМВ Х3, БМВ Х5, E60)
  • Chery
  • Chevrolet (Шевроле Авео, Импала, Каптива, Круз, Лачетти, Орландо, Спарк)
  • Chrysler (Крайслер Таун Кантри, 300c)
  • Citroen
  • Daewoo (Дэу Нексия)
  • Dodge (Додж Караван, Стратус)
  • Fiat
  • Ford (Форд Мондео, Рейнджер, Таурус, Фокус, Эскорт)
  • Geely (Джили Эмгранд)
  • Honda (Хонда Аккорд, Пилот, СРВ, Цивик, Элемент)
  • Hummer H3
  • Hyundai (Хендай Акцент, Гетц, Санта фе, Солярис, Туксон, Элантра)
  • Infiniti
  • Jeep (Джип Гранд Чероки)
  • Kia (Киа Рио, Сид, Спортейдж)
  • Lexus (Лексус rx300, rx350)
  • Mazda (Мазда 3, Мазда 6, Мазда cx7, Мазда cx9)
  • Mercedes (Мерседес w203)
  • Mitsubishi (Митсубиси Аутлендер, Галант, Лансер, Паджеро, L200)
  • Nissan (Ниссан Альмера, Кашкай, Мурано, Тиида, Х-Трейл)
  • Opel (Опель Антара, Астра, Вектра, Зафира, Инсигния, Корса, Мерива)
  • Peugeot (Пежо Боксер)
  • Renault (Рено Дастер, Логан, Сандеро)
  • Saturn (Сатурн SC)
  • Skoda (Шкода Йети, Октавия, Фабия)
  • Ssangyong (Саньенг Кайрон)
  • Subaru (Субару Форестер)
  • Suzuki (Сузуки Гранд Витара, sx4)
  • Toyota (Тойота Авенсис, Камри, Королла, Приус, Рав4, Хайлендер)
  • Volkswagen (Фольксваген Гольф, Пассат, Поло Седан, Туарег, Тигуан)
  • Volvo
  • ВАЗ 2107, 2110, 2112, 2114, 2115
  • Волга Сайбер
  • Газель Бизнес, умз 4216
  • Лада Веста, Гранта, Калина, Ларгус, Нива, Приора
  • Уаз Патриот

С кодом неисправности Р0301 иногда можно встретить и другие ошибки. Наиболее часто встречаются следующие: P0118, P0134, P0175, P0300, P0302, P0303, P0304, P0305, P0306, P0202, P0507.

Источник: autonevod.ru

Ошибка P0300 – пошаговая инструкция по диагностике и ремонту

П оявление ошибки P0300 указывает на пропуски зажигания в цилиндрах, что становится причиной ухудшения характеристик езды и может провоцировать более сложные поломки. На английском звучит так: ««Random cylinder misfire detection system»».

Чаще всего пропуски возникают по причине отсутствия искры, проблемах, связанных с подачей топлива или неисправностей в системе выпуска отработанных газов.

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

На каких авто чаще всего возникает ошибка?

Профессиональные автоэлектрики отмечают частое появление таких проблем на автомобилях ВАЗ, Шевроле Лачетти, Ниссан, Рено, Mitsubishi, УАЗ Патриот, Хендай Солярис, Приора.

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

Связанные ошибки

Некоторые автомобили позволяют более точно диагностировать ошибку, прибор выдает коды Р0301, Р0302, Р0303, Р0304, Р0305, Р0306 и т. д., указывающие на отказ в работе конкретного цилиндра двигателя, что упрощает диагностику.

Признаки ошибки

Проблемы с работой цилиндров могут проявлять себя следующими признаками:

  • двигатель трудно заводится (особенно холодный);
  • подергивание на холостых оборотах (мотор «троит»);
  • снижение мощности;
  • возрастание расхода топлива;
  • запах топлива из выхлопной трубы;
  • «прострелы» в глушителе.

Во всех случаях на панели загорается индикатор Check Engine.

Следствия появления

Неработающий цилиндр, кроме потери мощности двигателя, вызывает дополнительные негативные последствия:

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

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

Ошибка р0016: что обозначает, причины, способы устранения

Условия возникновения P0300

Для предупреждения фиксации ложных ошибок программа ЕСМ имеет несколько предохранительных алгоритмов:

  • запись в память происходит спустя 2–4 мин. работы двигателя (в зависимости от оборотов);
  • количество пропусков ≥ 3,25% общего числа вспышек за 1000 оборотов коленчатого вала;
  • одновременно не работает два и более цилиндра.

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

Причины возникновения

Появление ошибки P0300 становится следствием неисправности нескольких узлов и систем.

Наиболее часто не работают свечи зажигания (физически изношены, нарушены оптимальные зазоры между электродами, короткое замыкание электродов из-за засорения, механические повреждения). Реже выходит из строя модуль или катушка, совсем редко обрывается провод высокого напряжения.

Забиты или изношены сопла форсунок, несоответствующее требованиям по качеству топливо, износ топливного насоса (низкое давление), забит топливный фильтр.

Впуск топливной смеси и выпуск выхлопных газов

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

Электронный блок управления

Отказ датчиков РВ или КВ, неправильная работа датчика детонации, температуры и объема всасываемого воздуха. Обнаружить сбои в функционировании ЭБУ может лишь профессиональный мастер.

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

Частые способы решения проблемы

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

Что можно сделать в гараже самостоятельно:

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

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

В мастерскую рекомендуется обращаться, если для устранения ошибок надо:

  • обнаружить и устранить разгерметизацию или засорения топливопроводов;
  • поменять прогоревшую прокладку головки блока цилиндров;
  • поменять катализатор;
  • установить новый или перепрошить ЭБУ автомобиля;
  • поменять двигатель с критическими поломками.

ВАЖНО: если на одной или нескольких свечах обнаружен толстый черный нагар, то это свидетельствует об износе маслосъемных колец или сальников клапанов.

Ремонты сложные, могут выполняться только в условиях СТО.

Ошибка P0336 – причины, диагностика, устранение неисправности

Диагностика и рекомендации по устранению неисправностей

Диагностирование проблемы делается сканером OBD-I (для автомобилей, выпущенных до 1996 года) или сканером OBD-II (для автомобилей выпуска после 1996 года).

Разберем на примере сканера LAUNCH PRO на Android X-431.

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

С целью обнаружения ошибок надо провести следующие действия:

  1. Запустить двигатель, подключить сканер.
  2. Выбрать режим «Тестирование привода», перейти в меню «Баланс мощности»,
  3. Выбрать функцию «С монитором». Это позволит пользоваться дополнительными возможностями сканера.
  4. Из многих выданных параметров поставить галочку на «Скорость вращения». Остальные нам в этом случае не требуются и будут лишь отображать ненужную информацию.
  5. Запомнить показатели количества оборотов двигателя, по этому значению выявляется проблемный цилиндр.
  6. Выбрать из таблицы на мониторе первый цилиндр, подтвердить выключение его форсунки. Если обороты упали, значит, она в рабочем состоянии. Дополнительно рекомендуется ориентироваться на звук работы мотора. Отмените задачу выключения тестируемой форсунки, обороты двигателя должны увеличиться.
  7. По такому же алгоритму проверять по очереди все цилиндры. Неисправный тот, при отключении которого обороты коленчатого вала не падают. Для исключения ошибки повторно проверьте изменение оборотов после его отключения.

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

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

  • в программе осциллографа нажмите «Запись»;
  • прокрутите стартером двигатель в течение 5–10 секунд;
  • нажмите «Анализ», перейдите в «Скрипт»;
  • выберите тип двигателя и количество цилиндров;
  • обратите внимание на показатели компрессии по цилиндрам.

Если они не ниже 95% – все в норме. У проблемных цилиндров значения будут заметно хуже.

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

  • запустите двигатель;
  • с помощью специальной активной линейки проверьте наличие искры на каждом цилиндре. Оптимальное время накопления заряда примерно 4 мск., время горения 3,5 мск.

Как найти неработающий цилиндр карбюраторного двигателя без сканера

Осциллограф, сканер и специальная активная линейка есть далеко не у каждого автолюбителя.

Но обнаружить проблему можно и без них, для этого:

  • заведите автомобиль;
  • по очереди снимайте провода высокого напряжения с каждой свечи;
  • обращайте внимание на изменения оборотов.

ВАЖНО: на свечи подается напряжение более 20 000 вольт, но с малым током. Оно не убьет, но ощущения неприятные, лучше работать в резиновых перчатках.

Если нашли неработающий цилиндр, то можно проверить, что именно не работает: катушка или свеча. Как это делается?

Приблизьте открытый конец провода к блоку цилиндров примерно на 2–3 мм. Проскакивает регулярная искра – с катушкой все в порядке, проблема со свечой. К системе зажигания претензий нет – неисправность в топливной системе.

Надо вынимать форсунки и проверять их на специальном стенде. Нет возможности или желания ­– сразу меняйте неработающую.

Ошибка p0340, причины, диагностика, устранение неисправности

Устранение неисправностей

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

Система зажигания на бензиновых двигателях.

Прозваниваются и очищаются от грязи провода высокого напряжения, меняются катушки.

Практический совет. Вначале можно поменять катушки местами и повторно определить неработающий цилиндр. Т.е. снять катушку с работающего цилиндра и установить на другой. Снять тестером показания ошибок (можно использовать ELM327). Если цифра изменилась, к примеру, с Р0301 на Р0303, то катушка неисправна.

Модуль зажигания диагностируется профессиональным тестером.

Провода высокого напряжения проверяются мультиметром, заменяется их сопротивление, которое должно быть в пределах 4 – 10 кОм.

Проблемная выкручивается из блока специальным ключом. Делается визуальный осмотр ее состояния, надо обращать внимание на:

  • цвет (работающая светло-коричневая по всей внутренней поверхности);
  • наличие сажи (работающая чистая);
  • наличие масла или топлива (работающая сухая);
  • состояние электродов;
  • зазор между электродами.

Визуально обнаружить проблемную сложно, но можно пойти методом их замены между цилиндрами.

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

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

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

Клапан EGR и прокладка коллектора впуска.

Проблема выявляется при диагностировании сканером по параметру «Долгосрочная коррекция топлива», нормальная не должна превышать ±10% от регламентного значения. Неисправные элементы меняются новыми.

Подлежит замене после существенного ухудшения качества очистки из-за прогорания или естественного износа.

Установка впрыска и зажигания.

Проверяются заводские установки и целостность приводов.

Что касается электронного блока управления, то его можно доверять лишь опытным специалистам.

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

Ошибка P0011 — причина, диагностика, способы устранения неисправности

Ошибки при диагностике

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

Еще один совет ­– делать максимально глубокое сканирование по всем проблемам, которые обнаружились одновременно с кодом Р0300 и ликвидировать их.

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

Дополнительные советы по устранению ошибки P0300

Главная рекомендация – до начала работ следует изучить теоретические материалы и составить план действий.

После выполнения каждой операции надо удалить коды и сделать повторную диагностику сканером.

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

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

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

Еще одна интересная причина ошибки P0300 – нет сигнала с датчика скорости, установленном на КПП. Элементы могут быть трехконтактными электронными и двухконтакными с присоединенным тросиком спидометра.

Если датчик плохо зафиксирован, с окисленными или поломанными контактами, то на автомобилях Daewoo Nexia отечественной сборки ЭБУ показывает такую ошибку. После замены или надежного закрепления проблема пропадает.

С научной точки зрения это объяснить невозможно. Есть только одна логическая гипотеза – блоки управления делались отечественными производителями по программе импортозамещения. Итог – не так составили программу или неправильно использовали микросхемы.

Получайте новые статьи в реальном времени.

Источник: autotopik.ru

Ошибка при запуске 0xc000007b HELP!

Утвержденное решение

Добрый день! Сегодня столкнулся с проблемой при запуске. Как всё было: запустил Apex Legends, всё отлично работало, сходил на 10 минут в магазин, прихожу компьютер перезагружен и при запуске игры выскакивают 2 ошибки (скрины прилагаю) 0xc000007b и следом Untrusted system file (C:WindowsSystem32normaliz.dll). Помогите плиз, уже всё перепробовал, переустанавливал Visual C х86 и х64, CCcleaner’ом проверял реестр, антвирусом весь комп тоже проверил, удалял Изи античит и проверял целостность файлов игры, ничего не помогает. Блииииин, баттл-пасс горит, надо звезды бить!))))

Сообщение 1 из 8 (2 490 просмотров)

Утвержденное решение

Re: Ошибка при запуске 0xc000007b HELP!

  • Отметить как новое
  • Закладка
  • Подписаться
  • Подписка на RSS-канал
  • Ссылка на сообщение
  • Печать
  • Пожаловаться

ноября 2020 — последнее изменение ноября 2020

Проблем с игрой нет,ЕAC стал агрессивнее

Попробуйте заменить файл normaliz.dll рекомендуется перезагрузить Windows

Сборка,будут проблемы а античитом.(если DLL не имеет сертификата или изменён)
Установите другую сборку,от другого автора.

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

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

Я волонтер, не работаю в EA или Respawn

Вам понравился ответ? Оцените + XP! Был ли этот вклад решением вашей проблемы?
Нажмите «Утвердить решение», чтобы публикация была видна всем пользователям!

Возникли проблемы с игрой ? Пишите , а мы поможем!

Сообщение 5 из 8 (2 458 просмотров)

Все ответы

Re: Ошибка при запуске 0xc000007b HELP!

  • Отметить как новое
  • Закладка
  • Подписаться
  • Подписка на RSS-канал
  • Ссылка на сообщение
  • Печать
  • Пожаловаться

ноября 2020 — последнее изменение ноября 2020

sfc /scannow
В течение 5-10 минут эта системная утилита Windows проверит наличие ошибок в файлах операционной системы и попробует их исправить. Есть вероятность того, что проблема будет решена.

2.произвести откат системы до более раннего состояния, когда ошибка еще не проявляла себя. Если сообщение о 0xc000007b стало появляться после того, как вы установили обновления Windows или драйверов, то зайдите в панель управления Windows, выберите пункт «Восстановление», запустите восстановление, после чего отметьте галочкой «Показать другие точки восстановления» и запустите процесс, приведя компьютер к тому состоянию, когда ошибка себя еще не проявляла.

3.Переустановка самой игры

4. С учетом того, что у многих наших пользователей на компьютере установлены так называемые «сборки» Windows, то причина может крыться в ней самой. Переустановите Windows на другую, лучше оригинальную, версию.

Я волонтер, не работаю в EA или Respawn

Вам понравился ответ? Оцените + XP! Был ли этот вклад решением вашей проблемы?
Нажмите «Утвердить решение», чтобы публикация была видна всем пользователям!

Возникли проблемы с игрой ? Пишите , а мы поможем!

Источник: answers.ea.com

Все коды ошибок для Audi

Все комбинации неисправностей формата OBD2 (ОБД2) состоят из пяти знаков.

На первом месте всегда располагается буква, указывающая на тип системы:

  • P – неполадки, зафиксированные в работе силового агрегата или автоматической трансмиссии;
  • В – неисправности в функционировании кузовных систем (модулей центральных замков, систем управления кузовом, электрическими стеклоподъемниками, подушками безопасности и т. д.);
  • С – неполадки в работе ходовой составляющей;
  • U – проблемы, связанные с работой электроники, а также взаимодействия между электрнными управляющими модулями по CAN.

Второй знак всегда обозначает стандартность или специфичность неисправности.

  • 0 – общий индекс для всех комбинаций OBD (ОБД);
  • 1, 2 – персональный код производителя транспортного средства;
  • 3 – зарезервированный символ.

Третий знак определяет тип неполадки:

  • 0 – неисправности, связанные с функционированием систем подачи горючего, воздуха, а также дополнительного уменьшения токсичности отработавших газов;
  • 1 и 2 – неполадки в работе систем воздухоподачи и горючего;
  • 3 – сбои, зафиксированные в работе одного из узлов системы зажигания, а также устройств контроля пропусков воспламенения топливовоздушной смеси;
  • 4 – дополнительная системы контроля выбросов;
  • 5 – система контроля скорости автомобиля, а также холостых оборотов силового агрегата;
  • 6 – неисправности электронных управляющих моделй или проводки, к которой они подключены;
  • 7 , 8 и 9 – неполадки в работе коробки передач.

Последние два знака определяют число, которое соответствует порядковому номеру комбинации ОБД.

Коды ошибок Ауди могут выводиться в четырех-, пяти- и шестизначном форматах.

Важно знать

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

Таблица с ошибками

Описание общих ошибок

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

Неисправности топливной системы

Возможные причины проблемы:

  • выход из строя или сбои в работе топливного насоса в результате естественного износа;
  • забитая сеточка в фильтрующем элементе;
  • неверные показания, отправляющиеся контроллером низкого давления топлива.

Ошибка сопровождается следующими признаками:

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

Возможные причины проблемы:

  1. Неисправность топливного насоса, расположенного в баке. Возможно, проблема состоит в плохом контакте устройства с проводкой, вызванном окислением или образованием коррозии на контактах разъема.
  2. Выход из строя контроллера давления горючего. Возможно, проблема также связана с плохим контактом датчика с сетью.
  3. Неверная регулировка клапана давления горючего. Основным признаком такой проблемы является долгий запуск двигателя при длительном прокручивании коленчатого вала стартером. Возможно повреждение топливных магистралей или ослабление одного из хомутов.
  4. Выход из строя топливной форсунки. Надо проверить визуально работу этих элементов, а также протестировать их мультиметром.
  5. Износ толкательного устройства, расположенного в топливном насосе высокого давления. Замена толкателя ТНВД должна осуществляться не реже, чем каждые 50 тысяч км пробега.

Возможные причины неисправности:

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

Неисправности, связанные с работой сажевого фильтра

Ошибки формирования горючей смеси

Возможные причины неполадки:

  1. Сбои в работе системы подачи горючего, а также неправильный состав топливовоздушной смеси. В результате примесей, которые содержатся в топливе, форсунки могли забиться и функционировать некорректно при определенном режиме работы силового агрегата или постоянно. Проблемы могут сопровождаться «троением» двигателя под высокой нагрузкой на холостом ходу, после прогрева или на холодном двигателе.
  2. Неисправности в работе системы зажигания, высоковольтных проводов и других компонентов. Засорение свечей, образование на них нагара, а также поломка или плохой контакт катушки – наиболее частые причины.
  3. Падение уровня компрессии или ее разброс в разных цилиндрах двигателя. Это может произойти при износе или разрушении поршневых колец, а также их залегании. Проблема может проявиться при сбоях в работе газораспределительного механизма.

Неисправность двигателя

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

Неисправность датчиков

Неисправности электрики и электроники

Неисправности, связанные с отсутствием связи

Основные причины, характерные для всех неисправностей, описанных в этом разделе:

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

Неисправности трансмиссии

Описание десятичных кодов

Возможные причины неисправности:

  • поломка или проблемы с подключением датчиков антиблокировочной системы;
  • неисправность в работе модуля управления АБС;
  • отсутствие связи по интерфейсу CAN.

При поломке контроллера проявляются следующие признаки:

  • некорректная работа двигателя (троение силового агрегата, снижение мощности, посторонний металлический стук из-под капота);
  • появление значка Чек Энджин, а также индикатора в виде масленки на панели приборов;
  • падение уровня моторной жидкости.

Описание шестнадцатеричных кодов

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

Возможные причины проблемы:

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

Возможные причины проблемы:

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

Если узел работает некорректно, это сопровождается следующими признаками:

  • сложности запуска двигателя;
  • увеличение расхода горючего;
  • появление рывков при движении, во время набора скорости и увеличении нагрузки на силовой агрегат;
  • увеличение объема оборотов при работе мотора на холостом ходу;
  • задержка при увеличении скорости движения;
  • появление хлопков, доносящихся из коллектора;
  • самопроизвольная остановка силового агрегата при работе на холостых оборотах;
  • появление на приборной панели лампочки Check Engine, которая может гореть постоянно или с перерывами.

Возможные причины проблемы:

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

Неисправность в работе генераторной установки сопровождается следующими признаками:

  • сложность запуска двигателя независимо от того, прогрет силовой агрегат или нет;
  • снижения яркости при свечении фар или мерцающее освещение;
  • на панели приборов транспортного средства появился индикатор в виде аккумулятора;
  • свист из-под капота, который издает приводной ремешок;
  • перегрев ремня и разрушение изделия;
  • появление шуршащего или звенящего стука из-под капота;
    электрический гул, доносящийся от генератора.
  • неисправность проводки (обрыв, короткое замыкание на плюс или «массу»);
  • засорение разъема питания оптических элементов;
  • расплавление контактов в колодке в результате перенапряжения электросети;
  • выход из строя одного из предохранительных устройств или реле.

Возможные причины неполадки:

  • неисправность аккумуляторной батареи (разряд, естественный износ, утечка электролита, длительное хранение при низких температурах);
  • выход из строя генераторной установки или одного из ее конструктивных элементов (щеток, реле регулятора напряжения);
  • плохое подключение генератора к электросети из-за окисления или образования коррозии на разъеме;
  • использование дополнительного электрооборудования, напряжение которого не соответствует номинальному;
  • проблемы в работе противоугонной системы.

Возможные причины неполадки:

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

Возможные причины неполадки:

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

Коды ошибок Ауди рассмотрены для следующих моделей:

Как диагностировать ошибку?

Полезно знать

Есть два варианта диагностики автомобилей Audi – с помощью компьютера (более точный), и тестирование с применением светодиодной лампочки. Во втором случае диагностика производится с применением специального разъема.

В зависимости от модели и года выпуска, расположение диагностической колодки может быть разным:

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

Процедура самодиагностики выполняется следующим образом:

  1. Силовой агрегат машины заводится и прогревается до рабочих температур. Надо учитывать, что коды ошибок кислородных датчиков (лямбда-зондов) получится считать исключительно после длительной поездки продолжительностью не менее 10 минут.
  2. Двигатель останавливается, после чего производится активация зажигания. В случае, если силовой агрегат изначально не удалось запустить, то нужно покрутить коленчатый вал в течение 6 секунд и оставить систему зажигания включенной.
  3. Используя предохранительное устройство производится замыкание тестовых контактов над реле бензонасоса не менее, чем на пять секунд. Затем элемент надо отсоединить, что приведет к морганию светодиодного индикатора неисправностей.
  4. Начнется процедура считывания кодов. Одна серия вспышек указывает на первый символ комбинации, вторая серия – на второй и т. д. В каждом цикле по несколько мерцаний длительностью 1-2 секунды с небольшим промежутком продолжительностью 2,5 м.

Схемы для замыкания контактных элементов на диагностической колодке

Как сбросить ошибку?

Существует несколько вариантов удаления кодов ошибок из памяти блока управления:

  1. С помощью программного обеспечения VAG-COM. В утилите есть специальный раздел, позволяющий удалить комбинации неисправностей после проведения диагностики.
  2. Отключением клемм аккумуляторной батареи от устройства. Надо отсоединить зажимы на несколько минут, после чего подсоединить их обратно. При таких манипуляциях могут сброситься некоторые настройки, к примеру, времени или автомагнитолы. Однако надо учитывать, что таким образом удаляются не все ошибки из памяти бортового компьютера, а только наименее критические – серьезные коды останутся в блоке управления.
  3. Еще один вариант – удалить коды ошибок с помощью бортового компьютера. На дисплее панели приборов нужно выбрать пункт подменю «The Pressure monitoring», используя кнопки комбинации. Если бортовой компьютер русифицирован, то выбирается меню «Контроль давления». В следующем окне необходимо указать подраздел «Store curr monitoring». Комбинации неисправностей после этого должны удалиться из памяти микропроцессора.
  4. Также для удаления можно воспользоваться следующим алгоритмом (может работать не на всех моделях Ауди). Сначала производится активация зажигания, после чего нажимается или вытягивается кнопка, расположенная рядом со спидометром. На приборной панели появится надпись «Service». Кнопку необходимо удерживать в таком состоянии, пока на экране не отобразится сообщение «Service in —–km—–».

Видео: удаление ошибки из памяти блока управления

Канал «the unexpected» в своем видеоролике показал процесс стирания комбинаций неисправностей из управляющего модуля автомобиля Ауди.

Стоимость диагностики ошибок для Audi на СТО Москвы и Питера

Примерные цены на оказание услуг диагностики с помощью компьютеров или сканеров приведены в таблице:

Город Название компании Адрес Номер телефона Цена
Москва Север Моторс Ул. Дубнинская, 83 +7 499 685-18-21 2500 руб.
Серебряный слон Ул. Пяловская, 7 +7 499 488-18-88 3500 руб.
Санкт-Петербург Автомагия Ул. Учительская, 23 +7 812 701-02-01 2000 руб.
ClinliCar Большой Сампсониевский пр., 61к2 +7 812 200-95-63 3000 руб.

Видео: удаление кодов ошибок своими руками

Канал «AkerMehanik» в своем видеоролике подробно описал процедуру удаления кодов из памяти бортового компьютера автомобиля Ауди с помощью программного обеспечения «Вася Диагност» версии 11.11.2.

Источник: kodobd.top

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название «Ошибка при запуске приложения (0xc000007b)» и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться вообще, либо всё же запускаются, но далеко не всегда. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей аж со времен Windows 98, просто формулировались иначе. Начиная с версии Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики по причинам, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

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

Данная статья представляет собой всего-лишь теоретические выкладки по исследованию загрузчика образов операционной системы Windows. Изучение проводилось с целью создать базис для предполагаемого дальнейшего изучения особенностей кода загрузчика. На данный момент рекомендаций по исправлению ошибки c000007b в данной статье не предоставлено, поскольку практика показала неоднозначность популярных решений с использованием утилит Dependency Walker и Process Monitor.

Формат исполняемых файлов

Приступим. Для начала давайте посмотрим, что же нам сообщают разработчики об ошибке со статусом c000007b на официальной странице значений NTSTATUS? Ошибка носит символическое имя STATUS_INVALID_IMAGE_FORMAT (НЕКОРРЕКТНЫЙ ФОРМАТ ОБРАЗА), а в описании к ней присутствует следующая формулировка: «Образ либо не предназначен для выполнения в Windows или содержит ошибку..», ну и далее даются общие рекомендации. Как всегда, довольно пространное определение, не содержащее в себе значимых подробностей, однако уже позволяющее нам сделать как минимум два предположения:

  1. ошибка может содержаться в служебных структурах заголовка основного запускаемого модуля (exe-файл);
  2. ошибка может содержаться в подключаемых образах (dll-библиотеках);

Ну хорошо, а что же в себе таит утверждение о некорректном формате? Возможно, подразумевается некое повреждение структуры PE-образа? Но ведь близких по природе ошибок в PE-образе, чисто теоретически, может быть великое множество, и скорее всего так оно и есть. Одним словом, это утверждение о повреждении структуры исполняемого образа требует проверки и аргументации!! В свою очередь, для проверки следовало бы отследить, какой именно код ядра и на каком этапе выводит данное сообщение. Вероятно, если мы наблюдаем подобную ошибку до запуска приложения, то от момента щелчка правой кнопкой мыши по бинарному исполняемому файлу (например: exe-файл) в проводнике Windows (explorer.exe) и до непосредственного начала выполнения кода приложения, проходит некая скрытая от глаз пользователя работа на уровне ядра операционной системы и вот как раз эта самая работа иногда завершается с ошибкой. Одни вопросы порождают другие. Думаю, для лучшего понимания того, какая именно логика скрывается за безмолвием загрузки, надо сперва задаться вопросом «что же вообще такое представляет из себя исполняемый файл в среде Windows и как он загружается»? Всякий бинарный исполняемый файл в Windows построен на основе формата под названием PE (Portable Executable, переносимый исполняемый), который содержит в себе великое множество разнообразных секций, предназначенные для подготовки участков файла (они же блоки кода и данных), критичных для непосредственного выполнения приложения.

Portable Executable (PE) — формат исполняемых файлов и динамических библиотек, используемый в операционных системах Microsoft Windows. Фактически это довольно сложная структура данных, в которой содержится информация, необходимая системному загрузчику исполняемых образов, то есть коду ядра, который производит всю необходимую работу по подготовке исполняемого файла к непосредственному запуску (создание адресного пространства процесса, отображение файла в память, создание всех необходимых для функционирования системных конструкций и прч). В операционных системах Windows описываемый формат PE применяется при создания таких исполняемых файлов как: .exe, .dll, .sys и некоторых других.

Выходит, в системе имеется некий загрузчик образов (PE-загрузчик), естественно, ведь кто-то должен подготавливать код и данные к непосредственному исполнению. Это отлично укладывается в логику функционирования операционной системы, к тому же я про него время от времени краем уха слышал. Но это, извините, закопано где-то системе, с чего нам начать? Давайте начнем с малого, с формирования тестовой среды:

  • Операционная система: Windows 7 Профессиональная (Русская), 32-разрядная (6.1.7601) (32-битную среду я выбрал для простоты, дабы WOW64 не вносил свои коррективы);
  • Простой исполняемый модуль lasterr.exe из комплекта примеров FASM (EXAMPLESDLL) с минимумом подключаемых библиотек. Опять же, для простоты;
  • Отладчик WinDbg (версия 10.0.14321.1024) из комплекта Debugging Tools for Windows (x86);
  • Утилита Process Monitor;

Процесс загрузки образа

В моем случае, при отсутствии необходимых знаний, придется двигаться с самого начала, при этом интуитивно выискивая направления по косвенным признакам. Все те данные, которыми мы обладаем на текущий момент, подводят нас к мысли, что надо каким-то образом зацепиться за этот пресловутый загрузчик образов, но как? Единственное, что приходит в голову, так это использовать всеми нами любимую утилиту Process Monitor. Зная специфику программы, можно заранее предположить, что это будут лишь поверхностные сведения, поскольку утилита не покажет нам подробности многих этапов загрузки образа на выполнение. Но ведь что-то она нам все же даст, ведь пока мы идем в темноте и пытаемся нащупать хотя бы какие-то ориентиры для дальнейшего продвижения. Просто будем надеяться, что информация, предоставляемая нам утилитой Procmon поможет нам двинуться дальше, найти зацепку в виде каких-нибудь малозаметных деталей. Тут стратегия у нас будет достаточно простая, ничего необычного.

  1. Из-под учетной записи с правами локального администратора запускаем утилиту Procmon;
  2. В разделе Filter создаем фильтр на наше приложение lasterr.exe;
  3. Останавливаем захват событий (Ctrl+E или иконка лупы на панели);
  4. Очищаем лог (Ctrl+X или значок ластика на панели);
  5. Снова включаем захват (Ctrl+E) событий;
  6. Стартуем наблюдаемое приложение lasterr.exe, как обычно двойным щелчком из проводника;

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

  1. Образ приложения lasterr.exe загружается в адресное пространство собственного процесса по адресу 0x400000. То есть мы наблюдаем какой-то из этапов уже работающего загрузчика образов;
  2. Образ системной библиотеки ntdll.dll загружается в адресное пространство процесса по адресу 0x77c30000. Эта библиотека всегда загружается первой?
  3. Активизируется ускоритель prefetcher. В системной директории C:WindowsPrefetch проверяется .pf-файл(ы) для запускаемого приложения;
  4. Чуть ниже мы можем увидеть группу событий по операциям (CreateFile, SetBasicInformationFile, QueryAttributeTagFile, CreateFileMapping, QueryStandardInformationFile) с библиотеками ntdll.dll, kernel32.dll, apisetschema.dll, kernelbase.dll, locale.nls, errormsg.dll, user32.dll и прочими. Судя по всему это не проецирование образов, а события, генерируемые prefetcher’ом;
  5. Ниже по списку мы наблюдаем первые события с операцией Load Image, которые знаменуют собой загрузку необходимых приложению DLL библиотек в адресное пространство процесса;
  6. Еще ниже по списку событий мы наблюдаем чтение ветки HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options. Имеется в виду механизм, которых позволяет запускать образы под отладчиком;
  7. Далее мы видим считывание ключа реестра HKLMSOFTWAREMicrosoftWindows NTCurrentVrsionWindowsLoadAppInit_DLLs. Ключ ответственен за механизм AppInit_DLLs, который позволяет определить списки DLL, загружаемые в адресное пространство «каждого» процесса;
  8. Далее идет работа с различными языковыми опциями и MUI;

Это все, что предоставляет нам Procmon. Но на самом деле в приведенном выше списке мы видим очень малую часть логики, так сказать её вершину. Обусловлено это тем, что Process Monitor показывает лишь то, до чего может сам дотянуться, и не отображает всего многообразия операций по подготовке приложения к запуску. (прим.: хотя, возможно я забыл отключить какие-то встроенные фильтры). Но даже малое порой представляет собой большое, все дело в точке зрения :) Давайте посмотрим, о чем на могут рассказать захваченные Process Monitor’ом события? Например, событие Load Image применительно к образу lasterr.exe по загрузке себя же самого по базовому адресу 0x400000 в адресное пространство процесса, определенно будет нам интересно. Щелкнем по нему пару раз и перейдем во вкладку Stack. Стек вызовов начинается с функции RtlUserThreadStart, которая является частью системной библиотеки ntdll.dll. Библиотека ntdll.dll предоставляет собой «родной» интерфейс (Native API) пользовательского режима для функций ядра, это своеобразный «мост» между функциями библиотек пользовательского режима и кодом, который реализует соответствующий функционал в ядре. Функция RtlUserThreadStart именуется подобным образом не спроста, название говорит само за себя, намекая нам на назначение данной функции. Предположительно она предназначена для старта потока внутри процесса, при содержит функционал части пользовательского режима.

RtlUserThreadStart — общая стартовая функция для всех потоков в Windows.

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

Load Image Stack

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

LdrInitializeThunk — функция обратного вызова (режим ядра -> режим пользователя) в составе библиотеки ntdll.dll, которая не столько обратный вызов, сколько точка входа, с которой все потоки пользовательского режима начинают свое выполнение. Другими словами, создание любого потока пользовательского режима всегда происходит посредством данной функции. В некоторых источниках фигурирует как процедура инициализация загрузчика, начальный его этап, отвечает за инициализацию непосредственно загрузчика, менеджера кучи, таблиц FLS, NLS, TLS, структур критической секции. Судя по всему они с RtlUserThreadStart работают в связке, но как именно, пока не ясно.

Мы получили имена двух функций, которые, судя по всему, имеют отношение к созданию потока и подготовке его к выполнению. Теперь можно переходить непосредственно к практической части исследования. Надеюсь, перед началом экспериментов у Вас уже готова тестовая среда и установлены Debugging Tools for Windows из комплекта Windows SDK и в системную переменную Path добавлен путь к необходимой версии каталога с отладчиками. Теперь задача перед нами стоит не совсем тривиальная, поскольку нам необходимо поймать момент запуска приложения, до его непосредственного выполнения и даже до момента подготовки адресного пространства процесса. К превеликой нашей радости, основными отладчиками от Microsoft поддерживаются фильтры событий, которые включают отладочный сценарий начальной стадии загрузки приложения. Насколько я понял, он может быть активирован двумя путями:

  • Настройка отладчика через GUI: через меню DebugEvent Filters. На фильтре события Create process указываем опцию Execution: Enabled. После перезапуска процесса отладчик остановится до функции LdrInitializeThunk.
  • Запуском отладчика со специальными опциями командной строки.

Например, следующая команда позволяет изучить процесс и установить точку останова до того, как код пользовательского режима запустится:

windbg.exe -xe ld:ntdll.dll lasterr.exe

опция xe подразумевает останов после того, как библиотека ntdll.dll будет загружена в адресное пространство процесса. И не спроста, потому как в самом отладчике, в командной строке, мы должны поставить точку останова:

bp ntdll!LdrInitializeThunk

а затем продолжить выполнение командой «g». Для чего это все? А для того, чтобы пропустить некоторое количество кода, которое выполняется до функции LdrInitializeThunk. Мы бы в любом случае вышли на неё, однако потратили бы дополнительное время.
Отладчик останавливается на точке остановка в самом начале функции:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

ntdll!LdrInitializeThunk:

77c934a6 8bff            mov     edi,edi

77c934a8 55              push    ebp

77c934a9 8bec            mov     ebp,esp

77c934ab ff750c          push    dword ptr [ebp+0Ch]  ss:0023:0006fd1c={ntdll!`string  (ntdll+0x0) (77c30000)}

77c934ae ff7508          push    dword ptr [ebp+8]

77c934b1 e816000000      call    ntdll!LdrpInitialize (77c934cc)

77c934b6 6a01            push    1

77c934b8 ff7508          push    dword ptr [ebp+8]

77c934bb e8101cfeff      call    ntdll!ZwContinue (77c750d0)

77c934c0 50              push    eax

77c934c1 e87f37feff      call    ntdll!RtlRaiseStatus (77c76c45)

77c934c6 cc              int     3

77c934c7 90              nop

77c934c8 90              nop

77c934c9 90              nop

77c934ca 90              nop

77c934cb 90              nop

Ну, судя по всему, функция LdrInitializeThunk содержит (на верхнем уровне) вызовы всего трех функций: LdrpInitialize, ZwContinue, RtlRaiseStatus, причем, я так понимаю, две последних функции являются для нас не значимыми. Выполнив отладчиком по клавише F10 команду call ntdll!LdrpInitialize я убедился, что приложение запустилось. Получается, вся работа происходит в глубинах функции Ldrpinitialize, надо идти внутрь. Первым параметром в функцию LdrpInitialize передается адрес дампа PE-файла в адресном пространстве процесса, а вторым адрес какой-то неизвестной структуры (?). Судя по всему, когда я впервые остановился на точке останове в начале функции, в первом параметре я увидел адрес подмапленной в память библиотеки ntdll.dll, поскольку она загружается самой первой. С этого момента я опускаю ряд подробностей нахождения мест кода, которые могли быть ответственны за генерацию ошибки c000007b, поскольку описание всего процесса отладки превратило бы повествование в бесконечное. Скажу лишь, что всю работу по анализу кода я проводил при помощи отладчика WinDbg и дизассемблера IDA.

Первая причина

Первая удача сопутствовала мне при обработке функции LdrpSnapIAT. Очередной раз анализируя код я поставил точку останова на данную функцию, и при выполнении отладчик остановился на следующем коде:

ntdll!LdrpSnapIAT:

77c94ca1 6a24            push    24h

77c94ca3 68f808c877      push    offset ntdll! ?? ::FNODOBFM::`string‘+0x542 (77c808f8)

77c94ca8 e847dbfeff      call    ntdll!_SEH_prolog4 (77c827f4)

77c94cad 8d45d8          lea     eax,[ebp28h]

77c94cb0 50              push    eax

77c94cb1 6a00            push    0

77c94cb3 6a01            push    1

77c94cb5 8b7508          mov     esi,dword ptr [ebp+8]

77c94cb8 ff7618          push    dword ptr [esi+18h]

77c94cbb e8caa7ffff      call    ntdll!RtlImageDirectoryEntryToData (77c8f48a)

77c94cc0 8945d4          mov     dword ptr [ebp2Ch],eax

77c94cc3 85c0            test    eax,eax

77c94cc5 0f843dc50100    je      ntdll!LdrpSnapIAT+0x26 (77cb1208)

Самое последнее условие je ntdll!LdrpSnapIAT должно уводить нас на следующую ветку кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

77cb1208 a17473c877      mov     eax,dword ptr [ntdll!LdrpLogLevelStateTable (77c87374)]

77cb120d 83c801          or      eax,1

77cb1210 8505c0f9d077    test    dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)],eax

77cb1216 7422            je      ntdll!LdrpSnapIAT+0x58 (77cb123a)

77cb1218 83c624          add     esi,24h

77cb121b 56              push    esi

77cb121c 688491c777      push    offset ntdll! ?? ::FNODOBFM::`string‘ (77c79184)

77cb1221 6a00            push    0

77cb1223 687891c777      push    offset ntdll! ?? ::FNODOBFM::`string’ (77c79178)

77cb1228 6877080000      push    877h

77cb122d 688c8ec777      push    offset ntdll! ?? ::FNODOBFM::`string (77c78e8c)

77cb1232 e813e10100      call    ntdll!LdrpLogDbgPrint (77ccf34a)

77cb1237 83c418          add     esp,18h

77cb123a a1c0f9d077      mov     eax,dword ptr [ntdll!LdrpDebugFlags (77d0f9c0)]

77cb123f 85057873c877    test    dword ptr [ntdll!LdrpLogLevelStateTable+0x4 (77c87378)],eax

77cb1245 7401            je      ntdll!LdrpSnapIAT+0x66 (77cb1248)

77cb1247 cc              int     3

77cb1248 b87b0000c0      mov     eax,0C000007Bh

77cb124d e9f93afeff      jmp     ntdll!LdrpSnapIAT+0x129 (77c94d4b)

Понятное дело, что в штатном режиме управление туда не передается, поэтому я просто взвел флаг zero, чтобы принудительно инициировать переход. Ну и в самом конце фрагмента кода мы видим долгожданную команду mov eax, 0C000007Bh, после чего я запускаю выполнение командой g и.. вот оно:

c000007b

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

Судя по описанию с MSDN, данная функция ищет запись внутри PE-заголовка и возвращает адрес данных для этой записи (при наличии возвращает заголовок секции (IMAGE_SECTION_HEADER)) и длину, а случае ошибки возвращает ноль. Используется для поиска различных таблиц в PE-файлах.

Получается эта функция предназначена для получения секций подключаемых библиотек? Ничего не понятно, необходимо как то понять все происходящее в целом, так сказать откатиться назад, а для этого нам надо посмотреть стек вызовов:

ntdll!LdrpSnapIAT+0x2b

ntdll!LdrpHandleOneOldFormatImportDescriptor+0x120

ntdll!LdrpHandleOldFormatImportDescriptors+0x1f

ntdll!LdrpProcessStaticImports+0x25c

ntdll!LdrpLoadDll+0x33d

ntdll!LdrLoadDll+0xaf

ntdll!LdrpInitializeProcess+0xfe7

ntdll!_LdrpInitialize+0x78

ntdll!LdrInitializeThunk+0x10

Похоже что за инициализацию процесса отвечает функция LdrpInitializeProcess, которая, на определенном этапе своей работы начинает загружать библиотеки, необходимые для работы основного приложения, при помощи функции LdrLoadDll, а та, в свою очередь, начинает просматривать таблицу импорта и заполнять Import Address Table (IAT) через функцию LdrpSnapIAT. Однако стек не всегда остается подобным, при прогоне программы по команде g и остановке на точке останова, стек вызовов иногда меняется, показывая, что код загружает модули, присутствующие в таблице импорта.

Функция LdrpSnapIAT «связывает» таблицу адресов импорта с импортируемыми DLL библиотеками, перезаписывает каждую запись в таблице адресов импорта актуальным адресом импортируемой функции.

В коде функции LdrpSnapIAT имеется вызов функции RtlImageDirectoryEntryToData, которая, в свою очередь, использует RtlImageDirectoryEntryToDataEx, а та вызывает функцию RtlpImageDirectoryEntryToData32, которая уже проверяет следующие условия:

  1. Если значение входного параметра DirectoryEntry (Порядковый номер требуемой записи каталога) больше или равно (>=) значения PeHeader.OptionalHeader.NumberOfRvaAndSizes (число записей в массиве DataDirectory. обычно имеет значение 16); Поскольку DirectoryEntry может иметь только определенные значения: IMAGE_DIRECTORY_ENTRY_ARCHITECTURE (7), IMAGE_DIRECTORY_ENTRY_BASERELOC (5), IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (11), IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR (14), IMAGE_DIRECTORY_ENTRY_DEBUG (6), IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT (13), IMAGE_DIRECTORY_ENTRY_EXCEPTION (3), IMAGE_DIRECTORY_ENTRY_EXPORT (0), IMAGE_DIRECTORY_ENTRY_GLOBALPTR (8), IMAGE_DIRECTORY_ENTRY_IAT (12), IMAGE_DIRECTORY_ENTRY_IMPORT (1), IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG (10), IMAGE_DIRECTORY_ENTRY_RESOURCE (2), IMAGE_DIRECTORY_ENTRY_SECURITY (4), IMAGE_DIRECTORY_ENTRY_TLS (9), он действительно не должен быть >=16!
  2. Если значение поля PeHeader.DataDirectory.Export библиотеки = 0. В коде функции для поиска местоположения структуры Object Table используется yнивеpсальная формула: pe_header_offset + rva_entries_number*8 + 78h; здесь: pe_header_offset — смещение от начала файла до PE-заголовка (смещение 3Ch), rva_entries_number — количество записей в таблице объектов. После вычисления мы попадаем на первую запись структуры IMAGE_DATA_DIRECTORY, которая содержит относительный адрес (RVA) таблицы экспорта. Предположение: в уже загруженной в адресное пространство процесса DLL, которая должна предоставлять экспортируемые функции нашей основной программе (иначе бы она не была загружена), отсутствует таблица экспорта? Подобная ситуация не допустима и явно ошибочна.

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

Когда после запуска исследуемого приложения под отладчиком, при первом останове на функции LdrpSnapIAT пытаешься принудительно выйти на данную ветку кода, то ошибка не появляется! Могу предположить, что при первом вызове функции анализируется какая-то важная системная библиотека, поскольку из данных Procmon было видно, что первой загружается ntdll.dll, то можно предположить что так оно и есть. Соответственно, отказ в загрузке её самой (вероятно) не может быть завершен ошибкой, и загрузка приложения lasterr.exe в этом случае просто «тихо» завершается не выводя никаких сообщений, иными словами приложение не запускается без каких-либо ошибок, просто ничего не происходит. Поэтому, я несколько раз выполнил команду g и начал анализировать функцию со второго и последующих её вызовов, что дало видимые результаты.

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

Наименование функции Предполагаемая причина
LdrpResGetMappingSize Проверка кода NTSTATUS при возврате из функции RtlImageNtHeaderEx. Если он не нулевой (ошибочный), то проверяются первые два байта опционального заголовка на значение 10Bh (32-битный заголовок) и 20Bh (64-битный заголовок), если не соответствует ни одной из них — ошибка.
LdrpResGetResourceDirectory Код функции уходит на ошибку после нулевого результата выполнения вложенной функции LdrpSectionTableFromVirtualAddress, которая возвращает 0 в случае нулевого смещения PE-заголовка (в нормальной ситуации должно быть 00400080) и нулевого значения слова по смещению в заголовке = начало PE заголовка (00400080) + SizeOfOptionalHeaders + 18h, то есть первое слово Таблицы Секций (Section Table). Опять же, если мы получили Section Table, далее выполняется еще несколько проверок уже непосредственно над полями самой секции, и c000007b генерируется если некоторые поля (SizeOfRawData и прочие) в Section Table некорректны.
LdrpResCompareResourceNames Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
LdrpResSearchResourceInsideDirectory Ошибка генерируется внутри функции по нескольким условиям, в основном это некорректные значения смещений и имен (длин имен) секций ресурсов.
RtlImageNtHeaderEx Ошибка генерируется внутри функции по нескольким условиям, скорее всего сюда же попадает попытка загрузки библиотеки «иной» (нежели основной модуль) разрядности. Предположение: при попытке запуска 64-битного приложения, у которого в импорте оказывается функция из 32-битной библиотеки или наоборот?

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

Общее решение

Можно встретить две основные рекомендации по устранению ошибки c000007b:

  1. В некоторых случаях для решения подобной проблемы предлагается использовать утилиту Dependency Walker, которая позволяет просматривать импортируемые и экспортируемые сбойным модулем библиотеки, и, соответственно, выявить библиотеки, которые по тем или иным причинами не смогли подгрузиться. Но средство позволяет выявить лишь часть причин возникновения ошибки c000007b, поскольку:

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

    ..к тому же, DW грешит еще и тем, что иногда не обнаруживает всех импортируемых модулем библиотек.

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

Тем не менее, описанные инструменты позволяют обнаруживать большинство причин возникновения ошибки c000007b, они могут быть использованы в качестве стартового инструментария, и уже при невозможности решить проблему с их помощью, единственным средством остается отладчик. Лишний раз хочется кинуть камень в огород разработчиков, поскольку они могли бы значительно облегчить определение причины ошибки c000007b путем расширения статусных кодов и введения подробного описания, однако это потребовало бы доработки загрузчика образов. Но поскольку подобная глобализация множества разнородных ошибок под одним статусным кодом в программах под Windows характерна еще со времен Windows 2000, думаю, что ситуация в ближайшее столетие не поменяется :)

23 / 23 / 12

Регистрация: 27.12.2011

Сообщений: 855

1

20.12.2012, 09:20. Показов 12495. Ответов 5


Студворк — интернет-сервис помощи студентам

Доброе утро!

Только установил Win 8 на свою машинку и уж было начал радоваться новым возможностям, как столкнулся со стенкой неприятностей.
Одна из таких неприятностей — это запуск любимой игрушки (Lineage 2 High Five).

При старте приложения выдает ошибку:

L2.bin — Ошибка приложения
Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку «ОК».

Уже предпринятые действия:
1) Установлен и переустановлен полный пакет библиотек DirectX по средствам веб загрузчика с сайта MSDN;
2) Установлен и переустановлен пакет Visual C++ (x64) так же от MSDN;
3) Переустановка c другого дистрибутива Win 8 Enterprise x64.

Если для такого дела важны мои системки:
Проц: Intel Core 2 Duo E7300;
Мать: MSI P45 Neo;
Видео: ASUS GeForce 9600 GT;
ОЗУ: 6 Гб от Samsung.

Прошу помощи!



0



2 / 2 / 0

Регистрация: 12.12.2012

Сообщений: 10

20.12.2012, 13:52

2

проблема в самом патче!!!. У меня сервер свой и вот столкнулся с такой же практически проблемой, Астериоса патч запускается мой нет, следовательно проблема не в винде и не в дровах….



1



23 / 23 / 12

Регистрация: 27.12.2011

Сообщений: 855

20.12.2012, 14:53

 [ТС]

3

Ясно, спасибо.



0



2 / 2 / 0

Регистрация: 12.12.2012

Сообщений: 10

20.12.2012, 14:56

4

Цитата
Сообщение от SuLLeN
Посмотреть сообщение

Ясно, спасибо.

какой сервер запускаете если не секрет?)



0



23 / 23 / 12

Регистрация: 27.12.2011

Сообщений: 855

21.12.2012, 22:23

 [ТС]

5

Цитата
Сообщение от Sensation_Zeus
Посмотреть сообщение

какой сервер запускаете если не секрет?)

Redium.ru
Спрашивал в тех поддержке, действительно нет пока поддержки на Win 8. Да и вяло как то они реагируют.



0



2 / 2 / 0

Регистрация: 12.12.2012

Сообщений: 10

21.12.2012, 22:30

6

Цитата
Сообщение от SuLLeN
Посмотреть сообщение

Redium.ru
Спрашивал в тех поддержке, действительно нет пока поддержки на Win 8. Да и вяло как то они реагируют.

да у меня тоже не идет на win 8 но в ближайшее время сделаем!) Ну а насчет их администрации можно сказать так ребята просто сервер по началу создавали так позабавится но после решили на нем заработать!



0



Понравилась статья? Поделить с друзьями:
  • Код ошибки 0301 00000006 неверный дескриптор
  • Код ошибки 0300800000 что значит
  • Код ошибки 0300400009
  • Код ошибки 0300400006 как исправить
  • Код ошибки 0300400000