初识动态链接库(DLL)

Ustinain 等级 447 1 0

初识DLL

DLL是Dynamic link Library 的缩写以为动态链接库。

在Windows中,许多的应用程序并不是一个完整的可执行文件,会被分成一些相对独立的动态链接库,如DLL文件,放置于系统中 比如: Windows系统是许多动态链接库(DLL)组成的 初识动态链接库(DLL) 是Windows最基本的应用程序

但我们执行运行某一个应用程序的时候,相应的DLL文件就会被程序调用,一个应用程序可以调用多个DLL,同样 一个DLL文件可以被多个应用程序所调用这样的DLL文件被称为共享DLL文件

如果感染了共享DLL,在重启电脑的时候,所有调用它的都会被感染

它允许程序共享执行特殊任务所必需的代码和其他资源,比较大的应用程序都有很多模块(动态链接库)组成,这些模块分别完成相对独立的功能,他们彼此写作来完成整个系统软件的工作 初识动态链接库(DLL)

Windows 系统平台上提供了一种完全不同的较为有效的变成和原型环境,你可以将独立的程序模块创建为较小的DLL文件,并可对他们单独编译和测试,在运行的时候,只有exe程序需要调用盗这些dll模块的情况下,系统才会将他们装在到内存空间中,这种方式不仅间少了exe文件的大小和内存空间的需求,而且可以使这些dll模块同时被多个应用程序调用,Windows本身就将一些主要的系统功能以dll文件的形式所实现。

一般来说,dll是一种磁盘文件,以dll、drv、fon、sys和诸多以.exe为扩展名的系统文件都可以是dll(动态链接库)

dll,算是一种windwows自带的程序编程接口,它是由全局数据、服务函数和资源组成,在运行时被系统加载到调用进程的虚拟空间中,称为进程的一部分

初识动态链接库(DLL)

PS:

  1. 如果以其他dll之间没有冲突,该文件通常映射到进程虚拟空间的同一地址
  2. dll模块包含各种到处函数,用于向外界提供服务,一个dll在内存中只有一个实例,多个应用程序调用同一个
  3. dll实现了代码封装性
  4. dll的编制与句题的编程语言及编译器勿关,C、C++、C#、易语言、python、VB、delphi
  5. dll模块需要的堆栈内存都是从运行进程堆栈中分配出来的
  6. dll函数中的代码所创建的任何对象(包括变量)都归调用它的进程线程所有
收藏
评论区

相关推荐

初识动态链接库(DLL)
初识DLLDLL是Dynamic link Library 的缩写以为动态链接库。在Windows中,许多的应用程序并不是一个完整的可执行文件,会被分成一些相对独立的动态链接库,如DLL文件,放置于系统中比如:Windows系统是许多动态链接库(DLL)组成的是Windows最基本的应用程序但我们执行运行某一个应用程序的时候,相应的DLL文件就会被程
木马病毒你需要知道的15个技术点。
木马病毒方式1:模块通过三方签名过杀毒检测,注册表进行开机启动,通过url进行数据传递,释放不同exe或者文件进行木马功能,感染的dll数据会通过加密,会通过注入explorer.exe,services.exe,spoolsv.exe进行功能实现。木马病毒方式2: 通过向系统进程services.exe, explorer.exe,svchost.exe注
关于我想要编写dll文件这件事
0x1前言首先我们要用C、C编写dll,肯定是需要一个合适的编写软件,什么!?你不知道什么是dll,那你这有必要去看看我得上一篇了虽然篇幅不长,但是可以让你对dll有个大致得印象,由于本人用的CLion 2019的版本的,至于为什么不用VS,因为里面配置过于繁琐,很不友好,CLion安装包以及破解 群文件都有,可以去下载直接使用。话不多说,进入今天
dll导出函数
导出函数的概念为什么要导出函数,导出来用来干什么? 前面我们说过,初识DLL,当我们执行某一个程序的时候,相应的dll文件会被调用,一个程序可以调用多个dll,一个dll也可以被多个应用程序调用那么它是调用了全部的东西吗,还是调用了内部一些不为人知的东西举一个例子:你去便利店买水果,你和售货员说,你要买下整个便利店,那么她还以为你是个神经病,肯定不会卖,你要
WPS2010版本DLL劫持漏洞复现(plgpf.dll)
WPS Office plgpf.dll DLL劫持漏洞 原理简单说就是 exe 文件寻找 DLL 库会优先在当前目录下寻找,若 DLL 库未经过校验或者寻找 DLL 路径不是绝对路径,容易导致 DLL 被本地攻击者劫持 漏洞描述+ CVE 编号:CVE 2010 5208+ WPS office 套件应用程序在加载外部库 (DLL) 时通过了一个不合格
利用CreateRemoteThread( ) 实现远程线程注入
前言首先想法是 强制创建一个目标进程的线程,把我自己的恶意DLL加载进去被注入的DLL拥有目标进程内存的访问权限,所以我们可以通过该向某个进程注入DLL时的方法主要有以下三种:• 创建远程线程(CreateRemoteThread() API)• 使用注册表(AppInitDLLs值)• 消息钩取(SetWindowsHookEx()) 小试牛刀目前尝试第一
IOS Theos Tweak 之 HelloWorld
一、目标Theos是什么?是一套跨平台的开发工具套件,不仅可以开发Ios,Mac、Windows和Linux也可以的哦,开源免费。Tweak是什么?可以理解成动态链接库,有搞过Windows下dll注入的同学应该可以秒懂了。Android的同学可以把它理解成IOS下的Xposed。HelloWorld是什么?是萌新程序员的信仰,在一个平台写下HelloWor