`

深入浅出windows的DLL文件

阅读更多

DLL实际上是动态链接库的缩写从windows1.0开始,动态链接库就是整个操作系统的基础,那么这有什么作用呢?在dos时代,程序员是通过编写程序来达到预期的目的的,每实现一个目的就需要编写一个程序,这样下去,简单的还好,要是复杂的程序话,那乞不是既浪费时间,又浪费青春。于是聪明的程序员们想出了一个办法,把的实现一定功能的程序模块存放在一个文件当中,以API函数形式存放在dll当中,当编写程序的时候,需要用到这个功能,那么直接从这个文件当中调用就可以了,于是就出现了dll——动态连接库。

        那么动态连接库有什么作用呢?

        优点之一上面已经提过了,程序员把一些模块压入dll文件之后,在要运行程序的时候只需要调用动态链接库就可以了,而并不需要把dll加载到内存中,节省了大量的内存空间,可以方便运行其他的程序,许多朋友在关机的时候,一直关不了,整的郁闷,其实就是因为系统所调用的dll太多,导致了计算机性能的骤减,其实只需要把一些无关紧要的dll删除掉就可以了。

        优点之二在一个很大的游戏中,通常需要调用许许多多的动态链接库来给玩家一个美观震撼的效果,《极品飞车9——最高通缉》让本文作者我感受到了一种从来没有感受过的感觉,那种感觉就象是初恋的味道,画面效果棒极了。可是要实现这样一个效果,需要许多程序员编写不同的dll来互相协助,那么这些dll可以用 vc++,vb,Delphi,asm等等来完成,只要每个程序员负责编写一个功能,这样只要调用在一起就方便多了,节省了大量的人力,物力,财力。

        既然dll有这么多好处,而且又这么方便,我那木马的程序员又做出过什么呢?他只不过调用了系统的dll函数罢了(windwos系统中有3个非常重要 dllkernel32.dlluser32.dllgdi32.dll其中包括windows系统诸多功能的函数)呵呵,其实话不能这样说。木马的编写者也需要有很深的工夫哦,那么我们现在以黑客之门做为一个例子来看看。这个例子需要的工具depend walker.

        我们首先来看看用depend walker打开黑客之门的动态链接库

        我们发现,在左边的hkdoordll.dll下面的树状结构,显示出了黑客之门所调用的dll列表,从这里不难发现,其实dll也可以调用dll.那么 dll我们可以把他看做是一个exe文件,只是少了一个入口函数而已(就暂且这样理解)分支下有分支,而右边中间的那4个东东,这个是dll的输出函数表,在function栏目下的是输出函数的名称,因此,我们可以很容易发现,黑客之门hkdoordll.dll主要负责4个方面的任务。 DllRegisterServer DllUnRegisterServer ServiceMain DllCanUnloadNow 然而这对于一个后门来说已经够了,这需要作者有足够的编程知识,我们再一次向作者致敬。分享了这样一个环保无污染的后门。

        通过对上面的知识的理解。我们可以发现其实,dll可真算是一个大宝库,不要对他太狠,一看到可疑的就丢到垃圾筒里去了。其实dll文件还可以盗用哦。

        我们用他来打开黑客之门的dll,可以看到他的版权等等,对于有位图,音乐,图表,对话框的dll,我们也可以看到他里面的全部内容。我们可以修改版权,更换位图,更换音乐,更换对话框,总之只有你想不到的,没有你做不到的。

        那么既然dll被这样多程序调用,如果结束掉这个木马后门dll的调用过程,那么这个后门是不是没用啦,那回答当然是肯定的,那么如何知道DLL文件被几个程序使用呢?

        我们只需要:

        运行Regedit进入HKEY_LOCAL_MACHINE\Software\Microsrft\Windows\Current-

        Version\SharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。

        嘿嘿,这下知道window优化大师那分析dll的原理了吧。

        经常看到有人求助:我的搜索栏什么也不能显示了,怎么办啊?

        其实那是因为dll没有注册造成的。

        只需要在开始——运行—然后注册两个dll然后重新启动就可以了,具体方法是:

        regsvr32 vbscript

        regsvr32 jscript

        当你看到跳出个对话框,里面写着,vbscript 中的dllregister server成功的时候,说明已经注册成功了

        什么?还要注册?或许你看到这里开始疑问了,这什么注册啊?是不是象进入一个论坛,需要注册一个帐号才能进入一样呢?

        其实系统里面的dll是分为两类的。一类是需要注册的,一类是不需要注册的。

        大多数都是通过命令regsvr32来注册的。而windows为了减少所调用的dll的数量,提升计算机的性能以及速度。通常只把几个重要的dll默认就注册了,不常用的dll需要你自己去注册。而注册之后,系统就可以调用他了,从而具有了相应的功能。

        而当你认为你的计算机所调用的无用dll太多的时候,可以通过命令regsvr32 /u dll的名称来反注册。

        有些朋友的爱机会出现这样的情况,在启动的时候,错误对话框中提示DLL文件丢失。这是因为在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“ 开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“System.ini”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。 <script type="text/javascript"></script>

分享到:
评论

相关推荐

    VC++动态链接库(DLL)编程深入浅出(zz).doc

    【VC++动态链接库(DLL)编程深入浅出】 动态链接库(DLL)在Windows编程中扮演着重要的角色,它是一种代码和数据共享的方式。DLL文件可以被多个应用程序同时使用,减少了内存占用,并且允许开发者在不修改已发布程序的...

    深入浅出Windows XP系统文件保护功能

    ### 深入浅出Windows XP系统文件保护功能 #### 一、Windows 文件保护(WFP)概述 在深入探讨Windows XP系统文件保护功能之前,我们先了解什么是**Windows 文件保护**(Windows File Protection, WFP),这是一个重要...

    VC++动态链接库(DLL)编程深入浅出(全).pdf

    ### VC++动态链接库(DLL)编程深入浅出 #### 1. 概念与历史沿革 在软件开发领域,动态链接库(Dynamic Linkable Library,简称DLL)是一种非常重要的资源封装形式,广泛应用于Windows操作系统环境下的软件开发中。...

    dll编程深入浅出(含源代码)

    总之,“dll编程深入浅出(含源代码)”涵盖了DLL的基础知识、核心技术以及高级应用,适合有一定Windows编程基础的学习者进一步提升。通过学习和实践,你将能够熟练地编写和使用DLL,提升你的Windows程序设计能力。

    深入浅出 Windows MFC 程序设计

    《深入浅出 Windows MFC 程序设计》是一本专为Windows环境下使用Microsoft Foundation Class (MFC) 库进行应用程序开发的书籍。MFC 是微软提供的一套面向对象的类库,它基于C++语言,封装了Windows API,使得开发者...

    VC 动态链接库(dll)编程深入浅出.pdf

    ### VC++动态链接库(DLL)编程深入浅出 #### 1. 概念与背景 **动态链接库**(Dynamic Linkable Library, DLL)是一种在Windows操作系统中广泛使用的软件组件形式,它可以被多个应用程序共享使用。DLL文件包含了可执行...

    深入浅出Visual_C++动态链接库(Dll)编程.pdf

    ### 深入浅出Visual C++ 动态链接库(DLL)编程 #### 基础概念 在深入探讨动态链接库(DLL)之前,我们先简要回顾一下库的基本概念及其发展历史。库是一种封装了代码和数据的集合体,它允许开发者重用这些代码而无需...

    VC++动态链接库(DLL)编程深入浅出

    《VC++动态链接库(DLL)编程深入浅出》是一本专注于探讨VC++环境下动态链接库(DLL)开发技术的专业书籍。DLL是Windows操作系统中的一种重要机制,它允许多个应用程序共享同一段代码和数据,从而节省内存、提高系统...

    dll编程深入浅出含代码-个人整合

    《DLL编程深入浅出》是一本关于动态链接库(DLL)编程的综合资源,由个人整合而成,包含多个示例代码和详细解释。这个压缩包提供了深入理解DLL编程的宝贵资料,适合对Windows编程有一定基础的开发者进行学习和研究。...

    DLL编程深入浅出

    ### DLL编程深入浅出 #### 1. 概念与发展历程 DLL(Dynamic Link Library)是一种常见的软件组件形式,它可以被视为一种存储库,提供了一系列可以直接使用的变量、函数或类。DLL的发展经历了从“无库—静态链接库...

    VC++动态链接库(DLL)编程深入浅出,DLL编写教程 两篇

    这条命令会将cpp编译为obj文件,若不使用/c参数则cl还会试图继续将obj链接为exe,但是这里是一个dll,没有main函数,因此会报错。不要紧,继续使用链接命令。 Link /dll dll_nolib.obj 这条命令会生成dll_nolib.dll...

    VC++动态链接库(DLL)编程深入浅出 中老鳥必備.pdf

    "VC++动态链接库(DLL)编程深入浅出 中老鳥必備" 动态链接库(DLL)是一种共享代码的方式,可以提供一些可以直接拿来用的变量、函数或类。与静态链接库相比,动态链接库不必被包含在最终 EXE 文件中,EXE 文件执行时...

    VC++动态链接库(DLL)编程深入浅出(全).zip

    本资料集《VC++动态链接库(DLL)编程深入浅出(全).zip》将全面深入地探讨这一主题。 首先,我们要理解动态链接库与静态链接库的区别。静态链接库(.lib文件)在编译时与可执行文件合并,形成一个独立的、不依赖外部...

    VC++动态链接库(dll)编程深入浅出 的源代码

    本篇文章将深入探讨使用VC++进行DLL编程的关键知识点,基于《VC++动态链接库(dll)编程深入浅出》一书中的源代码。 1. DLL的基本概念与创建: - DLL是一个包含可由多个程序同时使用的函数和资源的库。在VC++中,...

    深入浅出Visual C++动态链接库(DLL)编程(pdf版+word版+全部源码).rar

    《深入浅出Visual C++动态链接库(DLL)编程》是一本专为C++程序员设计的教程,旨在帮助读者理解并掌握DLL(Dynamic Link Library)的开发技术。DLL是Windows操作系统中的一个重要特性,它允许多个应用程序共享同一段...

    深入浅出windows mfc程序设计

    《深入浅出Windows MFC程序设计》是一本专为初学者设计的教程,旨在帮助读者理解和掌握Microsoft Foundation Classes (MFC)库,这是微软提供的一个用于构建Windows应用程序的强大工具集。MFC是C++的一个类库,它封装...

    dll编程深入浅出+例子源代码

    本资料“dll编程深入浅出”结合实例源代码,旨在帮助读者全面理解DLL的原理与实践。 一、DLL的基本概念 DLL文件包含一组函数和数据,这些资源在运行时可以被多个程序动态地链接和使用。与静态链接库(.lib)不同,...

    dll编程深入浅出

    《DLL编程深入浅出》是一本专为程序员设计的深入探讨动态链接库(DLL)编程技术的教程。DLL是Windows操作系统中的一个重要特性,它允许多个应用程序共享同一块内存中的代码和数据,从而节省系统资源,提高程序运行...

Global site tag (gtag.js) - Google Analytics