Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> dll доступна только для администратора, ругается если прав недостаточно 
V
    Опции темы
_Y_
Дата 28.8.2009, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Имеется dll. Находится не в системной директории, а в самой обыкновенной. Открываю программу, обращающуюся к этой библиотеке – все в порядке. НО! Только если я вошел в Windows как администратор. Если захожу под другим логином – как пользователь или гость, программа ругается:

 Error loading "C: ..... .dll". A dynamic link library (DLL) initialisation routine failed.

Windows XP Pro, SP 3

Подскажите, пожалуйста, как такое может быть и как с этим бороться?
Спасибо.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
ТоляМБА
Дата 28.8.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



_Y_, попробуй под админом дать полные права (не только чтение но изменение, запись и прочие) на папку в которой лежит эта программа и dll-ка для пользователя под которым вылазит ошибка.
PM   Вверх
Akella
Дата 28.8.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Это винда ругается или программа, загружающая библиотеку?
PM MAIL   Вверх
_Y_
Дата 29.8.2009, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Спасибо за ответы, но моих знаний не хватает, чтобы ими воспользоваться.

Цитата(ТоляМБА @ 28.8.2009,  15:49)
попробуй ... дать полные права ... на папку...

Чего-то я не знаю, видимо. Разве в Windows можно устанавливать права для отдельных папок? Я с этим только в Linux сталкивался. Как это сделать если не секрет? 

В хелпах про access rights и тому подобное нашел только установки доступа для всего компа или для каких-то функций, но не для отдельных папок-файлов.

Цитата(Akella @  28.8.2009,  15:52 Найти цитируемый пост)
Это винда ругается или программа, загружающая библиотеку?


Вот это понять я не могу - такое сообщение увидел впервые. Как опознать его источник?







--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akella
Дата 29.8.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Покажи снимок окна
PM MAIL   Вверх
_Y_
Дата 31.8.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



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


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akella
Дата 31.8.2009, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Значит dll-ка лезет куда ей не разрешено, а ОСь даёт ей по рукам.
1. Спроси у автора программы, куда нужно открыть доступ.
2. Если нет связи с автором, то filemon, возможно может отследить, куда именно лезет Dll-ка.
PM MAIL   Вверх
_Y_
Дата 31.8.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



ТоляМБА, докопался - права есть под заголовком Security. Все разрешил - не помогло :(


Akella, 
  • библиотека старая - врядли до разработчика достучусь. 
  • filemon  скачал, запустил. Под администратором он показывает несколько идущих подряд обращений к проблемной библиотеке. Все успешные. А не под администратором запустить filemon  нельзя. Как найти куда лезет библиотека в ходе этих успешных обращений я не понял. Печально.



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akella
Дата 31.8.2009, 22:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Цитата(_Y_ @  31.8.2009,  17:03 Найти цитируемый пост)
А не под администратором запустить filemon  нельзя.

Ты временно добавь того пользователя в группу Администраторы (Администрирование-Упр. компьютером-Локальные пользователи и группы)


Цитата(_Y_ @  31.8.2009,  17:03 Найти цитируемый пост)
Как найти куда лезет библиотека в ходе этих успешных обращений я не понял. Печально.

100 лет не пользовался этой прогой. 
Принцип такой. Нужно включить фильтр. Фильтр настроить на имя библиотеки или процесса, запускающего библиотеку. Точно рассказать не могу, экспериментируй.
Слушай, возможно, что библиотека пытается что-то менять в реестре. Опять же не в узле пользователя, а в каком-нибудь системном. Можно опять следить с помощью RegMon.

Добавлено через 1 минуту и 25 секунд
И ещё, попробуй запустить из того же пакета (Sysinternals) диспетчер задач. Там включить показ dll, найти нужную и посмотреть, что она творит или куда лезет при запуске.

Добавлено через 4 минуты и 38 секунд
В этой проге (Process Explorer) есть меню Find для поиска dll.

Добавлено через 9 минут и 43 секунды
Выбери меню View->Show lower pane ядл показа нижней панели подробьной информации и запускай приложение с библиотекой.

Ещё. Нажми Ctrl+D для показа нижней панели с dll-ками. Попробуй найти свой процесс и эту dll. Правой кнопкой по Dll-меню Properties-закладка settings
PM MAIL   Вверх
_Y_
Дата 10.9.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Akella, внимая советам, долго экспериментировал. Наблюдал и с помощью Process Explor, и с помощью более современного Process Monitor. Вроде нашел два ключа в регистре, к которым идет обращение. Видимо, в проблемах "виноват" один из них. Оба ключа относятся к самой программе.

И тут началась свистопляска: то работает, то нет. Например:
  • Пользователю разрешено только чтение этих ключей регистра – все работает.
  • Вхожу как администратор – запрещаю чтение.
  • Перегружаю комп, вхожу как пользователь – ругается на DLL-ку (пока все хорошо).
  • Вхожу как администратор – даю все права.
  • Перегружаю комп, вхожу как пользователь – ругается!!!! Почему? Прав-то даже больше, чем когда все было хорошо?
  • Вхожу как администратор – разрешаю только чтение. 
  • Перегружаю комп, вхожу как пользователь. Тоже ругается!!!!
Ничего вроде не поменялось – запретил чтение и опять его разрешил, а DLL-ка работать перестала. И никакой закономерности в этом поведении не наблюдается. Вдруг все начинает работать (если, конечно, пользователю разрешено чтение данных ключей регистра). Пока только голова пухнет – весь результат smile 

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



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akella
Дата 10.9.2009, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Может ты пропустил какой-нить ключ?

Есть программы для анализа DLL-ок. Названия не скажу - не знаю. Нужно спрашивать тебе в разделах по C++ и Delphi у более продвинутых программеров. Возможно, что есть программы которые следят только для DLL.

Еще есть программа типа WinAPI монитор. Она даёт ещё больше информации. Но там столько её... что анализировать её прийдётся долго. Возможно, что dll-ка вызывает другие dll-ки и т.д.
PM MAIL   Вверх
_Y_
Дата 16.9.2009, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Проблема, вроде, решена. Akella, спасибо за советы и подталкивание моих мыслей/экспериментов. К сожалению, так и не понял почему же все работает и именно так. smile 
  • С помощью программы-подглядывателя Process Monitor (скачивается со страницы микрософта) определил, к каким колючам регистра обращается моя программа. К сожаленю, обращений из самой DLL отследить не сумел – только обращения всей программы. Впрочем, мне этого хватило: логически отсортировал два ключа.
  • Дал пользователю права на чтение этих ключей.
  • Ничего хорошего не получилось. При входе под пользователем программа не работает.
  • Подождал пару дней, вошел как пользователь – все работает.
  • В качестве проверки запретил чтение этих ключей пользователю – не работает.
  • Поэкспериментировал с дачей/запретом прав несколько раз, чтобы убедиться в выводах.
Такое впечатление, что разрешение чтения этих ключей имеет "отложенное" действие. Вроде изменениям надо время, чтобы распространиться по всем нужным закоулкам загадочной операционной системы. smile 



--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Akella
Дата 16.9.2009, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 73
Всего: 329



Хз, может требуется перезагрузка после изменения прав на ключи. Но так быть не должно.
PM MAIL   Вверх
_Y_
Дата 16.9.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

Репутация: нет
Всего: 34



Цитата(Akella @ 16.9.2009,  22:00)
может требуется перезагрузка после изменения прав на ключи

Перезагрузки (даже трехкратной - проверено smile ) не достаточно. Надо что-то еще, а что - непонятно.


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.