Девятый бит: Блог кафедры АСОИУ ОмГТУ

Process Monitor спешит на помощь NetBeans’у

Сегодня ставил NetBeans 7.1, установка как всегда прошла нормально, а вот с первым запуском — проблемы:

platform\lib\nbexec.dll

nbexec.dll

Под катом описание уязвимости в NetBeans и Happy End.


Первым делом находим, где же лежит «nbexec.dll». Смотрим на свойства ярлыка, которым запускаем NetBeans: Так-с, рабочая директория отличается от места положения «netbeans.exe», поэтому «nbexec.dll» надо искать в «C:\Program Files\NetBeans 7.1\platform\lib\nbexec.dll», и он там есть.

Так где же  ‘netbeans.exe’ ищет ‘nbexec.dll’?

Сейчас нам как раз и поможет Process Monitor.
Запускаем его, останавливаем трассировку (Ctrl+E), и создаем фильтр (Ctrl+L) для «netbeans.exe» : 

Нам нужны только события файловой системы, запись остальных — отключаем:Теперь включаем трассировку (Ctrl+E), и запускаем NetBeans. В момент появления ошибки — останавливаем трассировку, и ищем «nbexec.dll»:Вот и ответ: «C:\Program Files\NetBeans 7.1\bin\platform\lib\nbexec.dll», «C:\Windows\SysWOW64\platform\lib\nbexec.dll», …

Получается, что NetBeans уязвим (описание уязвимости в механизме динамической загрузки DLL — MSA2269637), а в используемой системе эксплуатация этой уязвимости закрыта. Вот по этому (из-за исключения поиска dll в текущей директории) «nbexec.dll» и не был найден.

Что же делать?

Можно для «netbeans.exe» в реестре «HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\netbeans.exe» включить поиск dll в текущей директории. Однако, это откроет доступ к эксплуатации уязвимости в NetBeans.

Другой вариант — создать символьную ссылку «platform» на  «C:\Program Files\NetBeans 7.1\platform\» в «C:\Program Files\NetBeans 7.1\bin\» командой:

MKLINK /d "C:\Program Files\NetBeans 7.1\bin\platform" "C:\Program Files\NetBeans 7.1\platform"

После создания символьной ссылки, NetBeans наконец запустился :-)

You must be logged in to post a comment.