บรรทัดคำสั่งที่ดีมีวิธีใดบ้างในการตรวจสอบรายละเอียด DLL / EXE


13

ด้วยโปรแกรมปฏิบัติการ Windows ส่วนใหญ่ (DLL, EXE ... ) คุณสามารถดูรุ่นและรายละเอียดอื่น ๆ ได้โดยใช้แท็บ "รายละเอียด" ใน "คุณสมบัติ" ( Alt+ Enter)

รายละเอียดของ shell32.dll จาก Windows 7 amd64

ฉันสงสัยว่า: มีวิธีบรรทัดคำสั่งในการทำเช่นนี้หรือไม่? ฉันสนใจรุ่นผลิตภัณฑ์เป็นพิเศษ แต่สิ่งอื่น ๆ ก็มีประโยชน์เช่นกัน

ต้องการคุณสมบัติต่อไปนี้ตามลำดับความสำคัญ:

  • ยอมรับเส้นทาง exe / dll เป็นพารามิเตอร์
  • เอาต์พุตไปยังเอาต์พุตมาตรฐาน (เพื่อให้คุณสามารถประมวลผลส่วนที่เหลือผ่าน|ไพพ์)
  • มีให้ใช้งานตามค่าเริ่มต้นใน Windows ที่รองรับทั้งหมด (XP +)
  • มีให้ใช้งานตามค่าเริ่มต้นใน Windows Vista +
  • เป็นค่าเริ่มต้นใน Windows XP
  • ใช้งานได้ในสภาพแวดล้อมเชิงพาณิชย์
  • ใบอนุญาตฟรี (เหมือน GPL)
  • พกพา (เช่น. standalone exe อาจมาพร้อมกับ DLL)

มีการถามเรื่องเครื่องมือกองซ้อนล้น: บรรทัดคำสั่งเพื่อถ่ายโอนข้อมูลรุ่น Windows DLL หรือไม่
Alois Mahdal

คำตอบ:


9

ใน PowerShell get-command "full-path-to-executable" | format-listจะทำเคล็ดลับ Powershell เป็นบรรทัดคำสั่งใหม่สำหรับ Vista และ Windows รุ่นใหม่กว่าสามารถติดตั้งได้ใน XP


ฉันไม่สามารถรับรหัสของคุณเพื่อทำงาน ...
soandos

ฉันได้เท่าget-command "$args[0]" | format-listที่ฉันได้บันทึกaaa.ps1และเรียกว่าpowershell -File aaa.ps1 shell32.dllแต่มันไม่ได้พิมพ์อะไร
Alois Mahdal

@soandos: ดูเหมือนว่าจะต้องใช้ powershell v2 เพื่อให้คำสั่ง get ทำงานกับไฟล์สั่งการโดยพลการ
kreemoweet

ฉันมี PowerShell v2
soandos

ดีฉันไม่ทราบว่ามันจะส่งคืนข้อมูลมากกว่าหน้าต่างคุณสมบัติ ข้อมูลที่น่าสนใจถูกห่อหุ้มในFileInfoVersionคุณสมบัติของApplicationInfoวัตถุ
mjsr

5

ใช้ไมโครซอฟท์ยูทิลิตี้ DUMPBIN

มีตัวเลือกที่มีประโยชน์มากมาย แต่ขึ้นอยู่กับว่าคุณต้องการทำอะไร

อย่างไรก็ตามมันไม่ฟรี แต่ฉันเชื่อว่าสามารถรับได้อย่างอิสระด้วย Windows SDK


3
ทำไมถึงไม่ฟรีหากสามารถรับ SDK ได้อย่างอิสระ?
CJ7

4

คุณสามารถใช้sigcheck.exeเครื่องมือพกพาซึ่งเป็นส่วนหนึ่งของSysinternals Suiteเช่น

$ 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

สำหรับ Windows รุ่นเก่าเช่น XP / 2k / 2003 (ยังคงใช้งานได้ใหม่) ให้ใช้filever.exeเครื่องมือ (ตรวจสอบลิงก์โดยตรงที่exedll.info ) เพื่อรับข้อมูลเฉพาะเกี่ยวกับไฟล์เช่น:

  • แพลตฟอร์มที่ไฟล์ทำงาน
  • เวอร์ชันของไฟล์
  • คุณสมบัติของไฟล์
  • ประเภทไฟล์
  • ภาษาของไฟล์
  • ไม่ว่าจะเป็นไฟล์ประเภทการจัดส่งสินค้าหรือประเภทการแก้ปัญหา
  • ขนาดไฟล์
  • วันที่สร้างไฟล์
  • เส้นทางของไฟล์

อื่น ๆ ที่จะต้องพิจารณา:

  • Microsoft COFF Binary ไฟล์ Dumper (DUMPBIN.EXE)

    แสดงข้อมูลเกี่ยวกับไฟล์ไบนารี Common Object Format (COFF) คุณสามารถใช้ DUMPBIN เพื่อตรวจสอบไฟล์วัตถุ COFF, ไลบรารีมาตรฐานของวัตถุ COFF, ไฟล์เรียกทำงานและไลบรารี dynamic-link (DLL)

  • binwalk- ค้นหาไฟล์ที่ระบุสำหรับ opcodes ที่ใช้งานได้ทั่วไปกับสถาปัตยกรรมซีพียูที่หลากหลาย เครื่องมือที่ใช้งานง่ายสำหรับการวิเคราะห์วิศวกรรมย้อนกลับและการแยกไฟล์ / ข้อมูลที่น่าสนใจจากไฟล์ไบนารี


สำหรับคำสั่งเพิ่มเติมให้ตรวจสอบ:


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  

แหล่งที่มาคือลิงก์ไปยังไฟล์. vbs ที่สามารถรับไฟล์เวอร์ชันสำหรับคุณและคุณสามารถใช้และใช้เอาต์พุตตามที่คุณต้องการ

เรือทุกรุ่นของ windows จะไม่แน่ใจเกี่ยวกับใบอนุญาตพกพามาก แต่ไม่ใช่ exe หรือ DLL


มีคำตอบอยู่สองสามข้อฉันไม่แน่ใจว่าคุณหมายถึงอะไร อย่างไรก็ตามฉันพยายามบางคนพวกเขาดูเหมือนจะมีเส้นทางไปยัง notepad.exe รหัสยาก มีวิธีง่าย ๆ ในการห่อเพื่อให้พวกเขายอมรับเส้นทางไปที่ dll / exe เป็นพารามิเตอร์หรือไม่ ควรส่งออกไปยังเอาต์พุตมาตรฐานหรือไม่
Alois Mahdal

ต้องใช้พา ธ เป็นพารามิเตอร์และเวอร์ชันผลิตภัณฑ์มีอยู่ในGetProductVersion
soandos
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.