DLL劫持

DLL劫持是一种欺骗系统加载恶意DLL而非预期DLL的技术。文章详细介绍了DLL劫持的原理,包括Windows XP SP2之前的搜索顺序和之后的变化,以及Windows 7以上版本的KnownDLLs机制。讨论了DLL劫持与DLL注入的区别,并提出了两种攻击方案及通用免疫方案,但指出针对新的DLL劫持方式暂无通用防御方案。
摘要由CSDN通过智能技术生成

DLL劫持

DLL劫持原理

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去按照顺序搜索这些特定目录时下查找这个DLL,只要将恶意的DLL放在优先于正常DLL所在的目录,就能够欺骗系统优先加载恶意DLL,来实现"劫持"

原理虽然简单,但是劫持DLL的选取和编写则要有些技巧,不是所有的DLL都可以被劫持的,有些DLL是受系统保护的,譬如user32.dll等,这些是不能劫持的。在一些老的DLL劫持病毒里面一般是选取usp10.dll,lpk.dll等,原因很简单,一般的应用程序都会加载它们,而且没有被系统保护

简单总结下DLL劫持和DLL注入的区别:

DLL劫持 DLL注入
主动性 被动,等待目标运行 主动,目标必须已经在运行
是否需要跳板 不需要 需要,由第三方来帮助注入
是否容易拦截 不容易 容易
是否容易免疫 容易 不容易
DLL的编写要求 伪造真实DLL一样的导出函数表 可以按自己的流程写导出函数

DLL原理利用

windows xp sp2之前

Windows查找DLL的目录以及对应的顺序:

  1. 进程对应的应用程序所在目录;</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值