Dependency Walter使用和DLL详细说明

上传人:M****1 文档编号:562721679 上传时间:2023-12-31 格式:DOCX 页数:7 大小:435.32KB
返回 下载 相关 举报
Dependency Walter使用和DLL详细说明_第1页
第1页 / 共7页
Dependency Walter使用和DLL详细说明_第2页
第2页 / 共7页
Dependency Walter使用和DLL详细说明_第3页
第3页 / 共7页
Dependency Walter使用和DLL详细说明_第4页
第4页 / 共7页
Dependency Walter使用和DLL详细说明_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Dependency Walter使用和DLL详细说明》由会员分享,可在线阅读,更多相关《Dependency Walter使用和DLL详细说明(7页珍藏版)》请在金锄头文库上搜索。

1、DependencyWalker使用说明一篇不错的文章,通俗易懂。在Windows世界中,有无数块活动的大陆,它们都有一个共同的名动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧!初窥门径:Windows的基石随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库,DLL是DynamicLinkLibrary(即动态链接库”)的缩写。从Microsoft公司推出首个版本的Windows以来,动态链接库就一直是这个操作系统的基础。1看看DLL里有什么与其用晦涩的专业术语来解决DLL是什么,不如先来看看DLL里有什么。DLL和EXE文件一

2、样,其中包含的也是程序的二进制执行代码和程序所需的资源(比如图标、对话框、字符串等),可是为什么要把代码放在DLL里面,而不是做成EXE呢?其实DLL中的代码是以API函数形式出现的,通俗地说,DLL中包含的程序代码都被做成了一个个小模块,应用程序通过按下所需DLL中特定的按钮,来调用DLL中这个按钮所代表的功能。在使用“记事本”等程序时,如果要保存文件或打开文件,就会弹出通用文件对话框,让我们选择文件位置。你可知道,这就是调用了系统底层DLL中的通用对话框界面。2系统中几个重要的DLLWindows中有3个非常重要的底层DLL:Kernel32.dll、User32.dll、GDI32.dl

3、l。其中Kernel32.dll顾名思义就是内核相关的功能,主要包含用于管理内存、进程和线程的函数而User32.dll中包含的则是用于执行用户界面任务的函数,比如把用户的鼠标点击操作传递给窗口,以便窗口根据用户的点击来执行预定的事件GDI32.dll的名称用了缩写,全称是GraphicalDeviceInterface(图形设备接口),包含用于画图和显示文本的函数,比如要显示一个程序窗口,就调用了其中的函数来画这个窗口。3为什么要用DLL刚才在谈到这个问题的时候,我们只是解释了DLL将程序代码封装成函数的原理。为什么封装成函数,就能成为系统中大量使用DLL的理由呢? 扩展应用程序由于DLL能

4、被应用程序动态载入内存。所以,应用程序可以在需要时才将DLL载入到内存中,这让程序的可维护性变得很高。比如QQ的视频功能需要升级,那么负责编写QQ的程序员不必将QQ所有代码都重写,只需将视频功能相关的DLL文件重写即可。 便于程序员合作这个和我们最终用户关系不大,仅供了解。我们都知道编程工具有很多,比如VB、VC、Delphi等,如果好几个人合作来编写一个大的程序,那么可能有的人用VB,有的人用VC,每人负责的部分所使用的编程语言都不同,究竟放在哪个编译器中进行编译呢?这就好比一群来自各个国家的人在共同编写一篇文章,如果他们所使用的语言都不同,写出来的文章怎么可能凑到一起呢?而有了DLL后,可

5、以让VC程序员写一个DLL,然后VB程序员在程序中调用,无需为怎么将它们都编译为一个单独的EXE而发愁了。 节省内存如果多个应用程序调用的是同一个动态链接库,那么这个DLL文件不会被重复多次装入内存中,而是由这些应用程序共享同一个已载入内存的DLL。就好比一个办公室中,很少会为每一个员工配置一台饮水机的,而是在一个公共位置放上一个饮水机,所有需要喝水的职员都可以共用这台饮水机,降低了成本又节约了空间。 共享程序资源包括刚才提到过的通用文件对话框在内,DLL文件提供了应用程序间共享资源的可能。资源可以是程序对话框、字符串、图标,或者声音文件等。 解决应用程序本地化问题在下载了某个程序的汉化包后,

6、打开汉化说明,经常可以看到用下载包中的DLL文件覆盖掉程序原来的DLL,汉化就完成了。这些程序都是将执行代码和应用程序界面分开编写了,所以汉化者只需简单地将其中和程序界面相关的DLL汉化并发布即可。求知若渴:探究DLL的真相谁知道DLL里究竟有多少函数,又有谁知道EXE调用了哪个DLL的哪些函数?其实,这个问题并不难解决。还记不记得本刊2004年第6期的无间盗IV盗亦有盗中介绍的分析EXE文件的工具DependencyWalker(以下简称Depends)今天我们要用它当探险工具,把DLL真相探个通通透透。1看看DLL里有多少函数第一步:下载并解压Depends,运行其中的depends.ex

7、e,然后选择菜单FileOpen”(文件-打开),在文件选择框中选中需要分析的DLL文件并打开,此处选择QQ目录下的QQZip.dll。第二步:在程序左侧的树状栏中就列出了这个DLL使用了哪些其他DLL的功能函数(原来DLL中还可以调用其他DLL9J,而右侧的两个分栏列表分别显示了函数输入及输出表,函数输出表即为该DLL提供给其他EXE或者DLL调用的函数的总列表。第三步:函数输出表的Function栏中即为输出函数的名称(见图1),在QQZip.dll中共发现了2个函数:Unzip、Zip。因此可以判断该DLL在QQ程序中负责压缩和解压缩的任务。2审审EXE究竟用了哪个DLL还是拿QQ来作为

8、例子,在Depends中打开QQ.exe,这时界面左侧的树状列表中显示的就是QQ.exe调用的DLL列表(见图2),如果展开这些DLL分支,还会发现其他的DLL,这就说明QQ调用的这些DLL文件还有可能(几乎是肯定)再调用别的DLL。这就好比买了一台新的DVD机,可能其中用的机芯是SONY的,而这个机芯里的一个小电容又有可能是别的公司的,这是同样的道理。上Jlor.3LLJ1电fAIIJ7?0C烈MFkl珅嬉IMINZIME巾Mh:述in卓娄辽SrOCKt:卩匸?CCrttMl:丄竝呦IIXEm9?CCKr-ptlLiieitmlCQ圧。烈2?0CY4二益诚口?wr?TrlTR:odTniFi

9、MID生巾肝一IlInIIr.tclTiIhIIr.tclIlAmIIr.tel=S=T忒Z駅*-dl:llrlh-1feirMdKJT.-dCAIIrlhS-Ahrlipf-.iIJAHWSr.兰gU=匚.04也tmEw1购贮也:2SfOCt-oLLidzcji竝迪菲AEEIZ2?0CEiuL二砧工辽加址违&?OCE;l氾HOCBi=tft5d.!I3nc-7nrit:-n.-ci:i;%B-i-W朋aiidujvHhU罔户列唸酬龟m二帯|UriluL反耳uJ2rc*)c()11弐匕M|1Mr5Li;0m3C33)田5=|血兀35)11砾seLCta3C3S)li-6-5i:Q兀4511航L

10、K11l.t155iHr|Tn.Hjiiin;iiiIIIzlII11)hllIE-:IIIMIlli12iDkCW如匚g)3(OkCOOz):0m3Ci:6:itOOkCLLH=匚克)5OOhCOO:)HE6BkCME)In.-rmv、1njucriiik;lzauiTii:5t-mfEt二|*11卅IT#II.IIVIMiiijlii4.:lNJ船工LRLZLL二ILLC6C05_3:3JLL门血1V?;了爺3.用DLL看穿EXE真面目刚才得到了QQ.exe所使用的DLL列表,其实通过这个列表,还能分析出很多别的信息。比如其中包含MFC42.dll,所以可以判断QQ.exe是采用VC(艮卩

11、VisualC+)编写的,而包含WSOCK32.dll则说明这个程序带有网络通讯功能(废话!QQ如果不能网络通讯还有什么用)。以下是一个简表,大家在分析别的EXE时可以根据其所使用的DLL来对其功能进行初步判断。DLL文件名可以判断出的EXE信息MFC42.dll使用VC5.0/6.0编写。VBRun*dll“*”代表数字版本号,使用VB3.0/4.0编写。MSVBVM50.dll使用VB5.0编写,在Windows98(SE)上自带该DLL。MSVBVM60.dll使用VB6.0编写,在WindowsMe/2000/XP等系统上自带该DLL。ADVAPI32.dll可能会进行注册表操作。WSOCK32.dll具备网络通讯功能。WS2_32.dll具备网络通讯功能。WININET.dll具备HTTP浏览、下载等功能,典型的例子是浏览器、下载工具。WINMM.dll具备多媒体播放能力。DDRAW.dll游戏、高级图像处理工具。D3D*.dll3D游戏,或者动画处理工具。4.DLL是个大宝库除供应用程序调用函数的DLL外,还有另一种用来保存资源的DLL,比如QQ目录下的QQRes.dll,用Depends打开后发现没有任何输出函数,难道是一个鸡肋DLL?可是改用资源工具ResourceHacker(下载地址:http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号