dumpbin.exe найти существование зависимости - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно проверить, существуют ли зависимости исполняемого файла и, если возможно, правильная версия этой зависимости. Включая зависимости зависимости. Используя dumpbin.exe, я могу собрать зависимости exe или dll. Например

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin>dumpbin.exe /dependents  "C:\Program Files (x86)\Notepad++\notepad++.exe"
Microsoft (R) COFF/PE Dumper Version 14.00.24215.1
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file C:\Program Files (x86)\Notepad++\notepad++.exe

File Type: EXECUTABLE IMAGE

  Image has the following dependencies:

    COMCTL32.dll
    SHLWAPI.dll
    SHELL32.dll
    KERNEL32.dll
    USER32.dll
    GDI32.dll
    COMDLG32.dll
    ADVAPI32.dll
    ole32.dll

  Summary

       20000 .data
       52000 .rdata
       13000 .reloc
       86000 .rsrc
      10F000 .text

Я читаю вывод dumpbin.exe через Process.Start () в C # и анализирую возвращаемые данные, нет проблем. Я также могу проверить, существует ли файл, легко ... Однако вполне возможно, что в системе существует более одной зависимости зависимости. Как бы вы проверили наличие правильной зависимости или версии указанной зависимости? Это становится важным, поскольку валидация зависимостей также существует. Было бы неплохо, если бы был способ подняться выше как

"C:\Windows\System32\ole32.dll" 

Есть мысли по этому поводу? Заранее спасибо! (PS- если у меня это совершенно неправильно с точки зрения расположения dll, как будто оно может жить только в исполняемом пути .exe или system32, скажите, пожалуйста, спасибо)

1 Ответ

0 голосов
/ 08 июня 2019

Порядок загрузки для нескольких библиотек на тестируемом узле влияет на то, какая библиотека.

Методы выполнения:

Использовать загруженные зависимости sysinternals procmon.

Используйте windbg, запустив программу из windbg, чтобы увидеть сообщения загрузчика.

...