×

dll

什么是dll文件dll文件是什么意思?dll文件反编译成源代码

admin admin 发表于2023-03-22 14:14:05 浏览52 评论0

抢沙发发表评论

本文目录

什么是dll文件dll文件是什么意思


DLL(动态连接库),既然是动态,那么就是有静态连接库,我想如果这么说大家
会更明白:
也许有的人在DOS下编写过程序都明白这么一件事情,我写了一个程序,里面有一
个功能就是把屏幕的内容翻转在转90°打印出来,那么我需要把整个程序写好放
到我的所有代码中,但是如果我写另外一个程序的时候也有相通的功能,我可以
调用以前的程序这个功能吗?当然是不可以的了,所以我就要重新的写一次,如
果有5个需要调用这个功能的程序,我的这个功能函数需要20K的地方,那么我的
硬盘就有80K的垃圾出现(20k*5 - 20k),这仅仅是一个函数,大家是否可以数
清除WINDOWS如果这样来写,需要多少函数吗?你看看所有的按钮、滚动条、
Listbox\Textbox\checkBox\窗体、打印对话框、颜色对话框、打开、保存、另存
、字体对话框、文件的排列、拷贝、粘贴...... 这一切的一切是不是都需要在所
有的程序中都要写出来呢?如果真的是这个样子,那么我们的windows应该按TB来
计算了(1TB=1024GB),也许你说你的硬盘很大,那么他们还要在运行的时候占
用相同大下的内容呢!所以发展出来了,动态连接库(dll)这个感念:
动态连接,就是把这些相通的功能、函数都放到一种特殊形式的windwos可执行文
件中(dll),生成一个DLL的时候,程序员需要写出,其中包含那些函数需由其
他程序来访问。这个过程叫做对函数的“导出”
创建windows程序的时候,专门的连接程序对程序的对象文件进行扫描,并生成一
个列表,列出那些调用的函数在那个DLL那个位置,指定各个函数所在位置的过程
叫做对函数的“导入”,当程序运行的时候,一旦要求用到执行文件内部没有的
函数,windows就会自动装载动态连接库,使应用程序可以访问这些函数。此时,
每个函数的地址都会解析出来,并且以动态的方式连接到程序里--这便是术语
“动态连接”的由来。
另外还有一个好处,就是当你更新你的这个函数的版本和功能的时候,静态连接
所需要做的工作是多少(假设按windwos来说他有上千个这样的函数,一共有100
多个程序来使用,那静态连接需要100000次的更新,动态连接只需要1000次)
,从而也节省了内存的空间。
动态连接库不一定是DLL扩展名的,也可以是ocx、vbx、exe、drv 等等的
大家可以发现在调用WIN32 api的时候里面都会有说明是来自于那个dll等宿主文
件的
现在我就在这里讲讲一些标准的dll用途:
看下面这个API声明:
Public Declare Function GetWindowsDirectory Lib “kernel32“ Alias
“GetWindowsDirectoryA“ (ByVal lpBuffer As String, ByVal nSize As Long)
As Long
看见kernel32了吗,其实这个就是kernel32.dll的名字,你可以在你的硬盘里找
到他,这就是说GetWindowsDirectory这个函数是在kernel32.dll里面,他的别名
是GetWindowsDirectoryA,()中是他的参数,有两个一个是字符型,一个是长
整型,返回值也是长整型。lpBuffer ------- String,指定一个字串缓冲区,
用于装载Windows目录名。除非是根目录,否则目录中不会有一个中止用的“\”
字符nSize ---------- Long,lpBuffer字串的最大长度,返回值 为Long,复制
到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返
回lpBuffer要求的长度。零表示失败。
这就是API声明的意义所在!
DLL的说明
KERNEL32.DLL ---- 低级内核函数。使用他可以完成内存管理、任务管理、
资源控制等。
USER32.DLL------于windows管理有关的函数。消息、菜单、光标、计时器
、通信和其他大多数非现实函数都可以从这里找到
GDI32.DLL-------图形设备接口库。于设备输出有关的函数:大多数绘图
、显示场景、图元文件、坐标及其字体函数都可以从这梨找到。
COMDLG32.DLL\LZ32.DLL\VERSION.DLL\---这都是提供一些附加函数的库,包
括通用对话框、文件压缩、版本控制的支持。
COMCTL32.DLL --------一个新的windows控件集合,比如TreeView和RichTextBox
等等,最初这个好像是为了win95而制作的,但是现在也使用与NT下
MAPI32.DLL---------提供了一套电子邮件的专用函数
NETAPI32.DLL--------提供了一套访问和控制网络的函数
ODBC32.DLL--------(不用我再说了吧)ODBC功能的DLL之一
WINMM.DLL------(这可不是WINDOWS的MM)是多媒体控制访问函数集合
windows api正在快速发展和变化,是你我任何单个人都追赶不上的速度发展,幸
运的是我们不用掌握所有的windows API,只是掌握需要经常使用的WINDOWs api
和他的常规结构、基本感念就可以了,这亮点很重要。

dll文件反编译成源代码


1、首先在反编译工具中打开DLL文件。

2、然后用“程序集管理器”浏览DLL文件的节点。

3、双击某个节点查看它的代码,然后在右侧栏中,弄清楚不同的代码。

4、接着将代码导到Visual Basic中。

5、最后在Visual Studio中编辑代码,就完成了反编译DLL文件。


DLL是什么文件


是动态链接库。

动态链接库(英语:Dynamic-link library,缩写为DLL)是微软公司在微软视窗操作系统中实现共享函数库概念的一种实现方式。这些库函数的扩展名是.DLL、.OCX(包含ActiveX控制的库)或者.DRV(旧式的系统驱动程序)。

DLL的文件格式与视窗EXE文件一样——也就是说,等同于32位视窗的可移植执行文件(PE)和16位视窗的New Executable(NE)。作为EXE格式,DLL可以包括源代码、数据和资源的多种组合。

扩展资料

dll的背景

DLL的最初目的是节约应用程序所需的磁盘和内存空间。在一个传统的非共享库中,一部分代码简单地附加到调用的程序上。如果两个程序调用同一个子程序,就会出现两份那段代码。

相反,许多应用共享的代码能够切分到一个DLL中,在硬盘上存为一个文件,在内存中使用一个实例(instance)。DLL的广泛应用使得早期的视窗能够在紧张的内存条件下运行。

DLL提供了如模块化这样的共享库的普通好处。模块化允许仅仅更改几个应用程序共享使用的一个DLL中的代码和数据而不需要更改应用程序自身。

这种模块化的基本形式允许如Microsoft Office、Microsoft Visual Studio、甚至Microsoft Windows自身这样大的应用程序使用较为紧凑的补丁和服务包。

参考资料来源  百度百科-dll


VC++ Dll文件可以反编译吗


可以的。
1、Dll文件和EXE文件一样,都属于Windows可执行文件,都遵守PE文件格式。
2、静态反汇编可以通过IDA等软件来进行,动态反编译可以通过Windbg、Ollydbg来进行。以OllyDbg为例,把要反编译的DLL文件拖到其界面中即可看到其反汇编代码。


什么是.dll文件


DLL是一个包含可由多个程序同时使用的代码和数据的库。例如,在Windows操作系统中,Comdlg32 DLL执行与对话框有关的常见函数。因此,每个程序都可以使用该DLL中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。

DLL的优点

当程序使用DLL时,具有以下的优点:使用较少的资源,当多个程序使用同一个函数库时,DLL可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在 Windows操作系统上运行的程序。推广模块式体系结构DLL有助于促进模块式程序的开发。


DLL是什么意思


什么是
DLL?
DLL
是一个包含可由多个程序同时使用的代码和数据的库。例如,在
Windows
操作系统中,Comdlg32
DLL
执行与对话框有关的常见函数。因此,每个程序都可以使用该
DLL
中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
通过使用
DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计帐程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,您可能具有一个工资计算程序,而税率每年都会更改。当这些更改被隔离到
DLL
中以后,您无需重新生成或安装整个程序就可以应用更新。
下表说明了
Windows
操作系统中的一些作为
DLL
实现的文件:

ActiveX
控件
(.ocx)
文件
ActiveX
控件的一个示例是日历控件,它使您可以从日历中选择日期。

控制面板
(.cpl)
文件
.cpl
文件的一个示例是位于控制面板中的项。每个项都是一个专用
DLL。

设备驱动程序
(.drv)
文件
设备驱动程序的一个示例是控制打印到打印机的打印机驱动程序

可以反编译DLL文件吗


  dll是二进制代码,只可能反编译为汇编;
  但是,从原理上绝对可以,任何东西都是可逆的(包括时间,爱因斯坦就试图证明过),但是反编译的亢信息(符号及表达是不可逆的),也即编译是多对一,即多源码可编译成同一机器码,而同一机器不可能穷尽所有可能的源码(理论上可实现,但不可能做到),而且目前的反编译的软件反编译成的源码可读性太差。

dll修复工具哪个好


建议使用腾讯电脑管家
腾讯电脑管家电脑诊所针对commom.dll、MSVC**.dll、d3dx**.dll等常见的dll文件丢失问题,推出了一键修复功能。在网上下载安装腾讯电脑管家8.0版本后,打开程序,点击右上角“电脑诊所——软件问题——丢失dll文件”,进入dll一键修复区,找到相应要修复的dll选项,点击“立即修复”即可恢复正常。十分方便,建议试试。

怎样修复krptdll是什么软件


krpt.dll修复找不到krpt.dll文件是一款很实用的krpt.dll文件的修复工具,krpt.dlll是电脑系统中一个非常重要的dll文件,要是被删除的话可以下载krpt.dllV1.0 最新版进行修复。

krpt.dlll,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL是Dynamic Link Library的缩写,包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容,动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。

krpt.dllV1.0 直接来欧普软件园下载解压文件,然后拷贝该文件到系统目录里Windows95/98/Me系统,将它复制到C:\Windows\System目录下。

Windows NT/2000系统,将它复制到C:\WINNT\System32目录下,Windows XP/WIN7/win10系统64位系统对应64位dll文件,32位系统对应32位dll文件,将它复制到C:\Windows\System32目录下。

函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数,这样就完成了软件的修复。


DLL 是什么意思


DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。
DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。
DLL的全称是Dynamic Link Library, 中文叫做“动态链接文件”。在Windows操作系统中, DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。而有些DLL文件可以被许多程序共用。因此, 程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多, DLL文件也就会越来越多, 如果当你删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。
DLL是动态连接库。使用动态连接库的一些好处是:
1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。
2.在钩子程序过滤系统消息时必须使用动态连接库。
3.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作。而且,各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态连接库中,让小组的其他成员使用。
4.为了实现应用程序的国际化,往往需要使用动态连接库。使用动态连接库可以将针对某一国家、语言的信息存放在其中。对于不同的版本,使用不同的动态连接库。在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态连接库实现的。
VC++、C++ Builder、Delphi都可以编写DLL文件。Visual Basic 5.0以上版本也可以编写一种特殊的DLL,即ActiveX DLL。
DLL不是独立运行的程序,它是某个程序的一个部分,它只能由所属的程序调用。用户不能,也不需要打开它。