Як я можу дізнатися, яка програма встановлена ​​або використовується певний файл DLL?


9

У мене в каталозі SYSTEM32 одного сервера є файл DLL, який я не впевнений, що мені справді потрібен.

Google сказав мені, для чого зазвичай використовується, але програмне забезпечення ніколи не було встановлено в цій системі. І все-таки я вважаю можливим, що один з інших встановлених продуктів на сервері, можливо, включив (і, отже, вимагається) цей файл.

Я здійснив пошук у Реєстрі за назвою файлу, а також за деякими рядками, знайденими у метаданих файлу, і не зміг знайти нічого інформативного. (Хоча клавіша ACMru дійсно кинула мене в очі, поки я не з'ясував, для чого це .)

Чи можу я зробити щось інше, щоб система сама сказала мені, яка програма встановила DLL та / або яка встановлена ​​програма (якщо такі) використала б її?

ПРИМІТКА. Пропозиції інструментів є приємними, але я не буду встановлювати або запускати додаткове програмне забезпечення в цій системі. Мені потрібно працювати з тим, що є в установці Server 2003 за замовчуванням.

Відповіді:


5

Я перевірив би дату її розміщення в системі і порівняв її з іншими файлами в системі, щоб отримати підказки. Пошук повинен дозволяти вам шукати всю систему за датою.

Крім того, розміщення імені файла тут дозволить деяким тут, хто може бути знайомий з ним, ідентифікувати його.


Дякую. Я можу опублікувати ім'я файлу в іншому запитанні. Я хотів, щоб ця була загальною, щоб отримати відповіді, які можна використовувати для будь-якого файлу DLL.
Іссі

4

Ви могли потенційно вивчити кожен .MSI файл у папці% SystemRoot% \ Installer. Усі (?) Програми, встановлені через інсталятор Windows, додадуть тут свій MSI, щоб потім можна було його встановити. Загалом у папці є маса матеріалів. Якщо / як тільки ви знайдете dll серед цих безлічі пакетів MSI, вам доведеться зіставити пакунок назад до чітко визначеного імені.

Щоб декомпілювати файли msi за допомогою сценарію, ви можете спробувати скористатися цим інструментом VBS http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx або спробувати програму MSIDiff (яку я ніколи не використовував) http: //dennisbareis.com/msidiff.htm . Зрозуміло, враховуючи обмеження того, що не потрібно встановлювати інструменти, останній не потребуватиме роботи в цьому плані. Перший би, якщо встановлено cscript.

Останній інструмент може зробити для вас відображення імені пакета, не вдаючись до ручного пошуку реєстру для відповідного імені файлів GUID або MSI. Колишній інструмент можна змінити для скидання імені пакета, якщо ви знали, на яку таблицю / стовпець слід посилатися (я цього не роблю).

Сценарій VBS просто вивчає файл MSI з точки зору бази даних. Ключова робота виконується за допомогою: database.OpenView ("SELECT FileName FROM File").


Хіба це не дуже дорого зробити, як рівне встановленню всіх? У моєму Windows 8 - це 412 предметів, у моєму Windows 7 - 559, і я думаю, що він мав рівну суму. Також файл, можливо, не прийшов з msiінсталяції ...
Тамара Війсман

Так, це дорого, але для ситуацій, коли ви хочете дізнатися право власності, не маючи передбачення робити знімок системи до і після, це може дати деяке розуміння. Ви також можете автоматизувати фактичну функцію декомпіляції та порівняння (адже це лише сценарій vbs). Я погоджуюся, що це не ідеальний варіант, оскільки не всі пакунки встановлюються через MSI, але вам може пощастить. Як ви сказали, їх дуже багато, тому шанси на те, що файл, можливо, пройшов саме таким чином.
логікоскоп

Цікаво, чи є інструменти, які могли б просто заглянути у файли MSI, а не декомпілювати / розпаковувати їх. У будь-якому іншому випадку, в іншому новому запитанні, згаданому в ОП, ми говоримо про файл, який вже є в наших системах з моменту встановлення ...
Тамара Війсман

Том, я впевнений, що цей vbs просто вивчає MSI з виду бази даних. MSI - це просто db. Цей інструмент використовує SQL для вилучення імен файлів з відповідної таблиці. Вона сама по собі не "декомпілює", і я повинен був вказати це у своєму дописі. Я перегляну.
логікоскоп

1

Монітор процесів може зробити це за вас. Просто фільтруйте по імені DLL, і коли програма намагається завантажити його, там з’явиться запис, який згадує, який процес шукає та / або отримує доступ до згаданої вами DLL.

Вам також слід спробувати зробити журнал завантаження (увімкнути журнал завантаження в меню, потім перезавантажити та знову відкрити монітор процесу), який необхідний для лову програм та служб, які завантажують його під час завантаження.


Що з будь-якими неактивними програмами? Здається, мені доведеться відкривати кожну підозрілу програму на комп’ютері і стежити за нею в «Моніторі процесів».
Ізі

@Iszi: Як зазначалося в чаті, їх перерахування або їх інсталятори займуть багато часу. Будь-який монітор пасивно, як згадувалося, активно за допомогою Провідника процесів. Або шукайте, як згадується музика2myear, яку легко виконати за допомогою Пошуку Все.
Тамара Війсман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.