- DUMPBIN вам омогућава да наведете зависности DLL-ова или извршних датотека у виндовс.
- Опција /DEPENDENTS приказује библиотеке које су потребне датотеци.
- Могуће је аутоматизовати његову употребу из ПоверСхелл за сложене задатке.
- Друге корисне опције укључују /HEADERS, /EXPORTS или /IMPORTS.
Анализирање зависности DLL датотека је уобичајен задатак приликом истраживања понашања апликације, отклањања грешака у проблему учитавања библиотека или једноставно покушаја разумевања које додатне компоненте су потребне извршној датотеци да би правилно функционисала. У овом контексту, Microsoft-ов алат DUMPBIN постао је један од најкориснијих ресурса за оне који раде са бинарним датотекама у Windows-у, било да се ради о развоју, форензици, реверзном инжењерингу или одржавању софтвера.
КАНТА ЗА СМЕЋЕ, такође познат као Microsoft COFF Binary File Dumper, је алат командне линије команде укључен у развојно окружење Visual Studio. Омогућава вам да прегледате све врсте бинарних датотека компатибилних са COFF (Common Object File Format) форматом, као што су извршне датотеке (.exe), статичке библиотеке (.lib) или динамичке библиотеке (.dll). Међу његовим најчешће коришћеним функцијама, могуће је прегледајте зависности које DLL или извршна датотека треба да покрене.
Која је сврха прегледања зависности DLL датотека?
Када апликација избаци грешку која указује да не може да пронађе одређену DLL датотеку, прва ствар коју људи обично посумњају је да зависност није доступна на систему. Коришћење DUMPBIN-а у овим случајевима омогућава тачно идентификујте које друге библиотеке су потребне DLL датотеци, што помаже у решавању грешака при учитавању или дистрибуцији софтвера.
Поред тога, у пословним окружењима или пројектима где се целе апликације редистрибуирају, познавање потребних DLL датотека омогућава вам да их правилно укључите у инсталатер или да потврдите да су већ присутне на циљном систему.
Како приступити DUMPBIN-у
Најлакши начин за покретање овог алата је отвори Simbol sistema програмер за Visual StudioОво окружење је већ конфигурисано са свим потребним променљивим окружења, укључујући путању DUMPBIN.
На пример, за Visual Studio 2017 извршна датотека се обично налази на путањи као што је:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86
Када се једном налази у том директоријуму, сада можете позвати алатку на следећи начин:
dumpbin.exe /dependents путања до датотеке.dll
Команда DUMPBIN /DEPENDENTS

Опција /ИЗВИСАНИ ЧЛАНОВИ је одговоран за приказивање листа DLL библиотека из којих наведена датотека увози функцијеТо јест, оних од којих зависи његово исправно функционисање.
Ова команда не пружа информације о специфичним функцијама које се користе (за то би служила команда /IMPORTS), али је кључна за идентификујте које DLL датотеке треба да буду присутне у систему тако да извршење не буде неуспешно.
Прави пример излаза генерисаног покретањем:
dumpbin /ЗАВИСНИ MathClient.exe
Пружа излаз као што је следећи:
Дамп датотеке MathClient1322.exe Тип датотеке: ИЗВРШНА СЛИКА Слика има следеће зависности: MathLibrary.dll MSVCP140D.dll VCRUNTIME140D.dll ucrtbased.dll KERNEL32.dll
Ова имена датотека означавају DLL-ове који су потребни извршној датотеци MathClient1322.exe.
Друге корисне опције за DUMPBIN
Алат DUMPBIN укључује неколико корисних опција за програмере и безбедносни аналитичари, између осталих:
- /ЗАГЛАВЉА: Приказује заглавља датотека. Садржи информације као што су тип датотеке, архитектура итд.
- /СИМБОЛИ: Наведите табелу симбола, корисно за дебаговање или обрнути инжењеринг.
- /ИЗВОЗ: Приказује функције које је датотека извезла. То јест, оне које може да користи друга извршна датотека или DLL.
- /УВОЗ: Приказује специфичне функције које се увозе из других DLL-ова.
Практични пример из PowerShell-а
Поред коришћења DUMPBIN-а из командне линије, може се користити и из PowerShell-а, што га чини лаким за интеграцију у аутоматизоване скрипте или токове рада.
Типичан пример би био испитивање зависности DLL-а као што је zipfldr.dll се налази у C:\Windows\System32Сценарио би био следећи:
цд "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.13.26128\bin\Hostx86\x86" .\dumpbin.exe /dependents C:\Windows\System32\zipfldr.dll
Ова команда покреће DUMPBIN из PowerShell-а без икаквих проблема и директно приказује зависности.
Добијте имена извезених функција помоћу скрипте
Поред зависности, могуће је желети да знамо шта функције извозе DLL датотекуОво је кључно, на пример, приликом развоја апликација које треба директно да позивају спољне функције.
Из PowerShell-а можете покренути DUMPBIN користећи опцију /ИЗВОЗ а затим обрадите излаз да бисте добили имена функција. На пример:
$садржај = .\dumpbin.exe /exports C:\Windows\System32\zipfldr.dll
Излаз се затим пречишћава уклањањем празних редова и раде се стрингови како би се идентификовао релевантни одељак почевши од ordinal hint RVA name а завршава се у Summary.
Ова аутоматизована метода олакшава обављање ревизија, документације или валидација без визуелног прегледа.
Алтернативе за DUMPBIN
У неким случајевима, можда нећете желети да се ослоните на Visual Studio. Постоје екстерне алтернативе као зависности у облику DLL-ова који вам омогућавају да преузмете листу зависности датотеке из Visual Basic форме, као што је она која се нуди на recursosvisualbasic.com.ar.
Ова DLL датотека враћа низ са именима датотека од којих апликација зависи и које се могу позвати помоћу:
Листа = ЗависностиОбјеката
Поред тога, омогућава вам да отворите дијалог за избор циљне датотеке и региструјете DLL користећи regsvr32.
Случајеви употребе у анализи и дебаговању
Употреба DUMPBIN-а иде даље од основног развоја софтвера. Аналитичари малваре, истраживачи безбедности или чак ИТ техничари га користе да откријте недостајуће зависности, проверите потписе датотека или извршите обрнути инжењеринг сумњивих бинарних датотека.
На пример, користећи команду /ALL Можете добити све доступне информације о датотеци, укључујући зависности, дизасембловани ASM, директиве и секције. Међутим, препоручљивије је да користите одвојене команде и анализирати информације на организованији начин.
Уобичајена пракса је рад са /SECTIONS приликом анализе извршних датотека и покушаја разумевања њихове унутрашње структуре, помажући у идентификацији који део садржи код, податке, ресурсе итд.
Страствени писац о свету бајтова и технологије уопште. Волим да делим своје знање кроз писање, и то је оно што ћу радити на овом блогу, показивати вам све најзанимљивије ствари о гаџетима, софтверу, хардверу, технолошким трендовима и још много тога. Мој циљ је да вам помогнем да се крећете у дигиталном свету на једноставан и забаван начин.