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.