DLL / EXE ayrıntılarını incelemek için bazı güzel komut satırı yolları nelerdir?


13

Çoğu Windows yürütülebilir dosyası (DLL, EXE ...), sürüm ve diğer ayrıntılar "Özellikler" ( Alt+ Enter) içindeki "Ayrıntılar" sekmesi kullanılarak görüntülenebilir .

Shell32.dll dosyasının Windows 7 amd64 detayları

Acaba: Bunu yapmanın bir komut satırı yolu var mı? Özellikle Ürün sürümü ile ilgileniyorum, ancak başka şeyler de yararlı olabilir.

Öncelik sırasına göre aşağıdaki özellikler istenmektedir:

  • exe / dll yolunu parametre olarak kabul et
  • standart çıkışa çıkış (böylece kalanları |boru ile işleyebilirsiniz )
  • varsayılan olarak tüm desteklenen Windows (XP +) sürümlerinde kullanılabilir
  • varsayılan olarak Windows Vista + 'da kullanılabilir
  • Windows XP'de varsayılan olarak kullanılabilir
  • ticari ortamda kullanılabilir
  • ücretsiz lisans (GPL benzeri)
  • taşınabilir (yani bağımsız exe, belki DLL ile birlikte)

Yanıtlar:


9

Powershell, get-command "full-path-to-executable" | format-listhile yapardı. Powershell, Vista için yeni bir komut satırıdır ve daha sonra Windows, XP'ye yüklenebilir.


Kodunuzu çalışmak için alamıyorum ...
soandos

Olabildiğim kadarıyla get-command "$args[0]" | format-listkaydettim aaa.ps1, powershell -File aaa.ps1 shell32.dllama bu hiçbir şey yazdırmıyor.
Alois Mahdal

@soandos: get-komutunun rasgele çalıştırılabilir dosyalarla çalışması için powershell v2'nin gerekli olduğu anlaşılıyor.
kreemoweet


güzel, bunu bilmiyordum, hatta özellik penceresinden biraz daha fazla bilgi döndürür. İlginç bilgi, nesnenin FileInfoVersionözelliğinde kapsüllenir ApplicationInfo.
mjsr

5

Microsoft'un DUMPBIN yardımcı programını kullanın .

Birçok yararlı seçeneği vardır, ancak ne yapmak istediğinize bağlıdır.

Ancak, ücretsiz değil, ancak Windows SDK ile serbestçe elde edilebileceğine inanıyorum.


3
SDK ile serbestçe alınabiliyorsa neden ücretsiz değil?
CJ7

4

Sysinternals Suite'in birsigcheck.exe parçası olan taşınabilir aracı kullanabilirsiniz , örn.

$ sigcheck.exe some_app.exe

Sigcheck v2.51 - File version and signature viewer
Copyright (C) 2004-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

C:/Program Files (x86)/Foo App\some_app.exe:
    Verified:   Signed
    Signing date:   14:48 23/12/2015
    Publisher:  X
    Company:    X
    Description:    X
    Product:    Some App
    Prod version:   5.0.0.1241
    File version:   5.0.0.1241
    MachineType:    32-bit

Böyle XP gibi Windows'un eski sürümü için / / 2003 2k (hala yeni çalışır), kullanım filever.exearacı (kontrol doğrudan bağlantı ile exedll.info bir dosya gibi ilgili özel bilgiler elde etmek için):

  • Dosyanın üzerinde çalıştığı platform
  • Dosyanın sürümü
  • Dosyanın özellikleri
  • Dosya türü
  • Dosyanın dili
  • Dosyanın gönderim türü veya hata ayıklama türü olup olmadığı
  • Dosya boyutu
  • Dosyanın oluşturulduğu tarih
  • Dosyanın yolu

Dikkate alınması gereken diğer bazıları:

  • Microsoft COFF İkili Dosya Damperi (DUMPBIN.EXE)

    Ortak Nesne Dosyası Biçimi (COFF) ikili dosyaları hakkında bilgi görüntüler. DUMPBIN, COFF nesne dosyalarını, COFF nesnelerinin standart kitaplıklarını, yürütülebilir dosyaları ve dinamik bağlantı kitaplıklarını (DLL) incelemek için kullanabilirsiniz.

  • binwalk- belirtilen CPU'larda, çeşitli CPU mimarilerinde ortak olan yürütülebilir opcodları araştırın. İkili dosyalardan ilginç dosyaları / verileri analiz etmek, tersine mühendislik ve ayıklamak için kullanımı kolay bir araç.


Daha fazla komut için şunları kontrol edin:


3
Function GetProductVersion (sFilePath, sProgram)  
Dim objShell, objFolder, objFolderItem, i  
If FSO.FileExists(sFilePath & "\" & sProgram) Then  
    Set objShell = CreateObject("Shell.Application")  
    Set objFolder = objShell.Namespace(sFilePath)  
    Set objFolderItem = objFolder.ParseName(sProgram)  
    Dim arrHeaders(300)  
    For i = 0 To 300  
        arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i)  
        'WScript.Echo i &"- " & arrHeaders(i) & ": " & objFolder.GetDetailsOf(objFolderItem, i)  
        If lcase(arrHeaders(i))= "product version" Then  
            GetProductVersion= objFolder.GetDetailsOf(objFolderItem, i)  
            Exit For  
        End If  
    Next  
End If  
End Function  

Kaynak , sizin için dosya sürümünü alabilen bir .vbs dosyasına bağlantıdır ve bunu alıp çıktıyı istediğiniz gibi kullanabilirsiniz.

Gemiler pencerelerin tüm sürümlerini lisanstan emin değil, çok taşınabilir, ancak exe veya DLL değil.


Orada birkaç cevap var, hangisini kastettiğinden emin değilim. Ancak, bazıları denedim, sabit kodlu notepad.exe yolu var gibi görünüyor. Bir parametre olarak dll / exe yolunu kabul etmek için onları sarmak için kolay bir yolu var mı? Tercihen standart çıktıya çıktı?
Alois Mahdal

Parametre olarak bir yol alır ve ürün sürümüGetProductVersion
soandos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.