python hook dll_Python——dll注入

本文介绍了DLL注入的原理,详细讲解了动态链接库在Windows系统中的作用,以及为什么需要DLL注入。DLL注入可以通过多种方法实现,如修改注册表、使用CreateRemoteThread等。文章还特别提到了Python的ctypes库在创建消息钩子(如SetWindowsHookEx)中的应用,以及DLL注入的优缺点和应用场景。最后,文章提到了实现DLL注入的代码组成部分以及所需的相关库和工具。
摘要由CSDN通过智能技术生成

dll攻击原理分析

什么是dll

动态链接库,是在微软Windows操作系统中实现共享函数库概念的一种方式。

这些库函数的扩展名是 ”.dll"、".ocx"(包含ActiveX控制的库)或者 ".drv"(旧式的系统驱动程序)。

为何有dll

由于进程的地址空间是独立的(保护模式),当多个进程共享相同的库时,每个库都在硬盘和进程彼此的内存存放一份的话,对于早期的计算机来说,无疑是一种极大的浪费,于是windows系统推出了dll机制,dll在硬盘上存为一个文件,在内存中使用一个实例(instance)。

详细如下:

在Windows操作系统中,运行的每一个进程都生活在自己的程序空间中(保护模式),每一个进程都认为自己拥有整个机器的控制权,

每个进程都认为自己拥有计算机的整个内存空间,这些假象都是操作系统创造的(操作系统控制CPU使得CPU启用保护模式)。

理论上而言,运行在操作系统上的每一个进程之间都是互不干扰的,即每个进程都会拥有独立的地址空间。比如说进程B修改了地址为0x4000000的数据,

那么进程C的地址为0x4000000处的数据并未随着B的修改而发生改变,并且进程C可能并不拥有地址为0x4000000的内存(操作系统可能没有为进程C映射这块内存)。

因此,如果某进程有一个缺陷覆盖了随机地址处的内存(这可能导致程序运行出现问题),那么这个缺陷并不会影响到其他进程所使用的内存。

什么是dll注入

我们可以利用dll机制来实现进程通信或控制其他进程的应用程序。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值