标题: [文件操作] ldd - 查看 exe 所依赖的 dll [打印本页]
作者: tmplinshi 时间: 2012-10-30 08:48 标题: ldd - 查看 exe 所依赖的 dll
C:\>ldd
ldd for Windows, Version 1.0
usage:
ldd FILE...
C:\>
示例:
C:>ldd wget.exe curl.exe FLVExtractCL.exe
wget.exe
ADVAPI32.dll => C:\WINDOWS\system32\ADVAPI32.dll
GDI32.dll => C:\WINDOWS\system32\GDI32.dll
KERNEL32.DLL => C:\WINDOWS\system32\kernel32.dll
USER32.dll => C:\WINDOWS\system32\USER32.dll
WSOCK32.dll => C:\WINDOWS\system32\WSOCK32.dll
curl.exe
KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
LIBEAY32.dll => D:\wchx\command line tools\LIBEAY32.dll
SSLEAY32.dll => D:\wchx\command line tools\SSLEAY32.dll
WS2_32.dll => C:\WINDOWS\system32\WS2_32.dll
msvcrt.dll => C:\WINDOWS\system32\msvcrt.dll
wldap32.dll => C:\WINDOWS\system32\wldap32.dll
FLVExtractCL.exe
mscoree.dll => C:\WINDOWS\system32\mscoree.dll
C:\>
mscoree.dll 表示程序需要 .NET Framework。
--------------------------------------------
官网: https://code.google.com/p/win-ldd/
--------------------------------------------
注:11 楼有单文件版
MSVCP100.dll MSVCR100.dll.7z
http://pan.baidu.com/share/link?shareid=347430309&uk=1124163200
http://bcn.bathome.net/s/tool/index.html?key=ldd
作者: CrLf 时间: 2012-10-30 15:45
貌似需要 C++2010 支持
作者: tmplinshi 时间: 2012-10-30 16:02
本帖最后由 tmplinshi 于 2012-10-31 00:04 编辑
回复 2# CrLf
是的。
C:\>ldd ldd.exe
ldd.exe
KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
MSVCP100.dll => C:\WINDOWS\system32\MSVCP100.dll
MSVCR100.dll => C:\WINDOWS\system32\MSVCR100.dll
C:\>
我把这两个 dll 传上来吧。
作者: wc726842270 时间: 2012-10-30 16:10
作为CUI的检测工具应该说很不错。
作者: kidzgy 时间: 2012-10-30 16:35
dependency walker 可以胜任这个
作者: lllsoslll 时间: 2012-10-30 19:35
tasklist /m 可以间接实现,论坛有这个代码。。。
作者: CrLf 时间: 2012-10-30 19:47
回复 6# lllsoslll
这个好像是不用启动进程的
作者: tmplinshi 时间: 2012-10-30 22:36
tasklist /m 可以间接实现,论坛有这个代码。。。
lllsoslll 发表于 2012-10-30 19:35
tasklist /m 只能查看正在运行的程序吧。
作者: wc726842270 时间: 2012-10-31 03:53
本帖最后由 wc726842270 于 2012-10-31 03:55 编辑
有个小问题,它是不是只是显示现存的文件?还是只会显示所需的文件,
当然这个都可以弥补,不过有些麻烦
作者: tmplinshi 时间: 2012-10-31 07:41
本帖最后由 tmplinshi 于 2012-10-31 07:43 编辑
有个小问题,它是不是只是显示现存的文件?还是只会显示所需的文件,
当然这个都可以弥补,不过有些麻烦
wc726842270 发表于 2012-10-31 03:53
是显示所需的文件。例如,我把 iconv.exe 依赖的 dll 删除后:
C:\>ldd iconv.exe
iconv.exe
KERNEL32.dll => C:\WINDOWS\system32\kernel32.dll
libiconv2.dll =>
libintl3.dll =>
msvcrt.dll => C:\WINDOWS\system32\msvcrt.dll
C:\>
作者: Demon 时间: 2012-10-31 21:38
受不了,一个小工具还要两个DLL才能用,自己编译了一个单文件版。
http://bcn.bathome.net/s/tool/index.html?key=ldd
作者: tmplinshi 时间: 2012-11-1 08:36
回复 11# Demon
谢谢!
作者: yu2n 时间: 2012-11-4 17:44
本帖最后由 yu2n 于 2012-11-4 17:57 编辑
写了一个匹配的批处理,便于将找到的.dll文件复制出来。(支持直接拖放与手动输入单个文件)- cls&@echo off&title ldd for Windows, Version 1.0
- If '%1' EQU '' (
- set /p p=Drag and drop an .exe program files here:
- ) Else (
- set p=%1
- )
- If '%2' NEQ '' Exit
- If Not Exist "%~dp0ldd.exe" Exit
- FOR /F "tokens=1,* delims=^?^?" %%i in ('echo _??%p%') do (
- set creat_folder=%%~nj
- If /i "%%~xj" NEQ ".exe" Exit
- If Not Exist "%~dp0%%~nj" mkdir "%~dp0%%~nj"
- )
- FOR /F "skip=1 tokens=1,* delims=^=^> " %%i in ('cls^&"%~dp0ldd.exe" %p%') do (
- If Exist "%%j" (
- set/a a=a+1
- echo ^-^> Copy %%j
- copy "%%j" "%~dp0%creat_folder%">nul 2>nul
- ) Else (
- echo [x]File "%%j" Not Found !
- )
- )
- echo Done! The %a% dll files successfully copied
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |