DLL / EXE 세부 정보를 검사하는 멋진 명령 줄 방법은 무엇입니까?


13

대부분의 Windows 실행 파일 (DLL, EXE ...)에서 버전 및 기타 세부 사항은 "속성"( Alt+ Enter)의 "세부 사항"탭을 사용하여 볼 수 있습니다 .

Windows 7 amd64의 shell32.dll의 상세

궁금한 점이 있습니다.이 작업을 수행하는 명령 줄 방법이 있습니까? 특히 제품 버전에 관심이 있지만 다른 것도 유용 할 수 있습니다.

우선 순위에 따라 다음 특성이 바람직합니다.

  • exe / dll 경로를 매개 변수로 허용
  • 표준 출력으로 출력 ( |파이프 를 통해 나머지를 처리 ​​할 수 ​​있음 )
  • 지원되는 모든 Windows (XP +)에서 기본적으로 사용 가능
  • Windows Vista 이상에서 기본적으로 사용 가능
  • Windows XP에서 기본적으로 사용 가능
  • 상업 환경에서 사용 가능
  • 무료 라이센스 (GPL 유사)
  • 휴대용 (예 : 독립 실행 형 exe, DLL 포함)

답변:


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 : get-command가 임의의 실행 파일과 작동하려면 powershell v2가 필요합니다.
kreemoweet

나는 PowerShell을 V2가
soandos

좋아, 몰랐어 심지어 속성 창보다 조금 더 많은 정보를 반환합니다. 흥미로운 정보는 객체 의 FileInfoVersion속성에 캡슐화되어 ApplicationInfo있습니다.
mjsr

5

Microsoft의 DUMPBIN 유틸리티를 사용하십시오 .

유용한 옵션이 많이 있지만 원하는 작업에 따라 다릅니다.

그러나 무료는 아니지만 Windows SDK를 사용하면 자유롭게 얻을 수 있다고 생각합니다.


3
SDK로 자유롭게 얻을 수 있다면 왜 무료가 아닌가?
CJ7

4

당신은 사용할 수 sigcheck.exe의 일부 휴대용 도구 시스 인 터널 스위트 , 예를

$ 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

같은 XP 같은 Windows의 이전 버전에 대한 / / 2003 2K (여전히 새로운 작품), 사용 filever.exe도구 (체크 직접 링크 에서 exedll.info을 파일 등에 대한 특정 정보를 얻기 위해) :

  • 파일이 실행되는 플랫폼
  • 파일의 버전
  • 파일의 속성
  • 파일 타입
  • 파일의 언어
  • 파일이 운송 유형인지 디버그 유형인지
  • 파일 크기
  • 파일이 작성된 날짜
  • 파일의 경로

고려해야 할 다른 사람들 :

  • Microsoft COFF 이진 파일 덤프 (DUMPBIN.EXE)

    COFF (Common Object File Format) 2 진 파일에 대한 정보를 표시합니다. DUMPBIN을 사용하여 COFF 오브젝트 파일, COFF 오브젝트의 표준 라이브러리, 실행 파일 및 동적 링크 라이브러리 (DLL)를 검사 할 수 있습니다.

  • binwalk-지정된 CPU 파일에서 다양한 CPU 아키텍처에 공통적 인 실행 가능한 opcode를 검색합니다. 바이너리 파일에서 흥미로운 파일 / 데이터를 분석, 리버스 엔지니어링 및 추출하기위한 사용하기 쉬운 도구입니다.


더 많은 명령을 보려면 다음을 확인하십시오.


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 파일에 대한 링크이며, 원하는대로 출력을 사용할 수 있습니다.

배송은 모든 버전의 창에서 라이센스에 대해 확실하지 않으며 이식성이 뛰어나지 만 EXE 또는 DLL은 아닙니다.


거기에 몇 가지 답변이 있습니다. 무슨 대답인지 잘 모르겠습니다. 그러나 나는 그들 중 일부를 시도했는데 notepad.exe에 대한 경로가 하드 코딩 된 것 같습니다. dll / exe의 경로를 매개 변수로 사용할 수 있도록 감싸는 쉬운 방법이 있습니까? 표준 출력으로 출력하는 것이 바람직합니까?
Alois Mahdal

경로는 매개 변수로 사용되며 제품 버전은GetProductVersion
soandos
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.