Bagaimana saya bisa mengetahui program apa yang diinstal atau menggunakan file DLL tertentu?

9

Saya punya file DLL di direktori SYSTEM32 dari satu server, yang saya tidak yakin sebenarnya saya butuhkan.

Google telah memberi tahu saya untuk apa biasanya digunakan, tetapi perangkat lunak belum pernah diinstal pada sistem ini. Namun, saya menganggap itu mungkin bahwa salah satu produk yang diinstal pada server mungkin telah memasukkan (dan karena itu, mungkin, akan memerlukan) file.

Saya melakukan pencarian melalui Registry untuk nama file, dan juga untuk beberapa string yang saya temukan di metadata file, dan saya tidak dapat menemukan sesuatu yang informatif. (Meskipun kunci ACMru memang menarik perhatian saya, sampai saya menemukan untuk apa itu .)

Apakah ada hal lain yang bisa saya lakukan, untuk mendapatkan sistem itu sendiri untuk memberi tahu saya program apa yang menginstal DLL, dan / atau program apa yang diinstal (jika ada) yang akan menggunakannya?

CATATAN: Saran alat bagus, tetapi saya tidak akan menginstal atau menjalankan perangkat lunak tambahan pada sistem ini. Saya perlu bekerja dengan apa pun yang tersedia pada instalasi default Server 2003.

Iszi
sumber

Jawaban:

5

Saya akan memeriksa tanggal penempatannya di sistem dan membandingkannya dengan file lain di sistem untuk mendapatkan petunjuk. Pencarian harus memungkinkan Anda untuk mencari seluruh sistem berdasarkan tanggal.

Juga, memposting nama file di sini akan memungkinkan beberapa di sini yang mungkin akrab dengannya untuk ID itu untuk Anda.

music2myear
sumber
Terima kasih. Saya mungkin memposting nama file di pertanyaan lain. Saya ingin yang satu ini menjadi generik sehingga akan mendapatkan jawaban yang dapat digunakan untuk file DLL.
Iszi
4

Anda berpotensi memeriksa setiap file .MSI di folder% SystemRoot% \ Installer. Semua (?) Program yang diinstal melalui penginstal Windows akan menambahkan MSI mereka di sini sehingga mereka dapat dihapus di lain waktu. Folder ini umumnya memiliki banyak hal. Jika / Setelah Anda menemukan dll di antara banyak paket MSI, Anda harus memetakan paket kembali ke nama yang didefinisikan dengan baik.

Untuk mendekompilasi file msi menggunakan skrip, Anda dapat mencoba menggunakan alat VBS ini http://www.hanselman.com/blog/HowToListAllTheFilesInAnMSIInstallerUsingVBSciript.aspx atau Anda dapat mencoba program bernama MSIDiff (yang belum pernah saya gunakan) http: //dennisbareis.com/msidiff.htm . Tentu saja, mengingat kendala tidak harus menginstal alat, yang terakhir tidak perlu bekerja dalam hal itu. Yang pertama akan jika cscript diinstal.

Alat yang terakhir mungkin melakukan pemetaan nama paket untuk Anda tanpa menggunakan pencarian manual untuk nama file GUID atau MSI yang sesuai. Alat sebelumnya dapat dimodifikasi untuk membuang nama paket jika Anda tahu tabel / kolom mana yang menjadi referensi (saya tidak).

Skrip VBS hanya memeriksa file MSI dari perspektif basis data. Pekerjaan utama dilakukan dengan: database.OpenView ("SELECT FileName FROM File").

lingkup logis
sumber
Bukankah ini sangat mahal untuk dilakukan, sama dengan menginstal semuanya? Pada Windows 8 saya itu adalah 412 item, pada Windows 7 saya itu adalah 559 dan saya akan berpikir dia memiliki jumlah yang sama. Juga, file tersebut mungkin bukan berasal dari msiinstalasi ...
Tamara Wijsman
Ya, itu mahal, tetapi untuk situasi di mana Anda ingin mengetahui kepemilikan tanpa memiliki pandangan ke depan untuk memotret sistem sebelum dan sesudah, ini dapat memberikan beberapa wawasan. Anda juga dapat mengotomatiskan fungsi dekompilasi dan perbandingan yang sebenarnya (ini hanyalah skrip vbs). Saya setuju ini bukan solusi yang sempurna karena tidak semua paket diinstal melalui MSI, tetapi Anda mungkin beruntung. Seperti yang Anda katakan, ada banyak dari mereka, jadi kemungkinan besar file tersebut mungkin telah melalui cara itu.
logicalscope
Saya bertanya-tanya apakah ada alat yang hanya bisa melihat ke dalam file MSI daripada mendekompilasi / mendekompresinya. Bagaimanapun, dalam pertanyaan baru lain yang dibuat OP, kita berbicara tentang file yang sudah ada di sistem kita sejak waktu instalasi ...
Tamara Wijsman
Tom, aku cukup yakin vbs ini hanya memeriksa MSI dari tampilan basis data. MSI hanyalah sebuah db. Alat ini menggunakan SQL untuk mengekstrak nama file dari tabel yang sesuai. Itu tidak "mendekompilasi" per se dan saya harus menentukan ini di posting saya. Saya akan merevisinya.
logicalscope
1

Monitor Proses dapat melakukan ini untuk Anda. Cukup filter dengan nama DLL dan ketika suatu program mencoba memuatnya akan muncul entri yang menyebutkan proses mana yang mencari dan / atau mengakses DLL yang Anda sebutkan.

Anda juga harus mencoba melakukan log boot (aktifkan boot logging di menu, lalu reboot dan buka lagi monitor proses) yang diperlukan untuk menangkap program dan layanan yang memuatnya saat boot.

Tamara Wijsman
sumber
Bagaimana dengan program yang tidak aktif? Sepertinya saya harus membuka setiap program yang dicurigai di komputer dan hati-hati dalam Proses Monitor.
Iszi
@Iszi: Seperti yang disebutkan di obrolan, menghitungnya atau instalasinya akan memakan waktu lama. Baik monitor secara pasif seperti yang disebutkan, aktif dengan Process Explorer. Atau cari seperti music2myear yang disebutkan, yang dapat dengan mudah dilakukan dengan Search Everything.
Tamara Wijsman