程序加载DLL会有一个优先级顺序,其中,最先加载的是同一目录下的DLL,DLL劫持的原理是在程序的同目录下放一个自己写的DLL,让程序将我们伪造的DLL加载进去,然后在我们的DLL里调用真正DLL的函数。

借助 AheadLib 工具我们可以很方便的伪造DLL。比如,我们想劫持user32.dll,只需将user32.dll的路径填入,然后生成CPP代码。


看一下生成的代码,由于user32.dll里面函数很多,有1213个,所以代码非常长。

接下来,创建一个DLL项目,将代码放进去编译,设置项目编码为多字节字符集,关闭预编译选项,即生成了一个伪造的user32.dll。


我们可以在DllMain里添加想要的功能。


注意,如果我们的程序是32位,则要拿SysWOW64下的winspool.drv,并对Load函数代码做如下修改:

// 加载原始模块inline BOOL WINAPI Load(){TCHAR tzPath[MAX_PATH];TCHAR tzTemp[MAX_PATH * 2];BOOL bIsWow64 = FALSE;IsWow64Process((HANDLE)-1, &bIsWow64);if (bIsWow64){GetSystemWow64Directory(tzPath, MAX_PATH);}else{GetSystemDirectory(tzPath, MAX_PATH);}lstrcat(tzPath, TEXT("\\winspool.drv"));m_hModule = LoadLibrary(tzPath);if (m_hModule == NULL){wsprintf(tzTemp, TEXT("无法加载 %s,程序无法正常运行。"), tzPath);MessageBox(NULL, tzTemp, TEXT("AheadLib"), MB_ICONSTOP);}return (m_hModule != NULL);}

先判断当前进程32位还是64位,然后获取相应的目录。32位程序调用GetSystemDirectory,得到的是system32目录,那么HOOK就会失败。

使用AheadLib生成DLL劫持代码相关推荐

  1. NTA告警引发的dll劫持思考(溯源)

    目录 溯源 DLL DLL Hijacking Vulnerability(DLL劫持漏洞) DLL劫持攻击 转发式劫持 DLL劫持防御 某天在客户局点巡检时,NTA设备发现了CS的告警:定位了被入侵 ...

  2. c语言劫持dll写法,[原创]DLL劫持生成器 源码开放(纯WINDOWS SDK)+ 实例分析

    本菜最近学习了什么DLL注入啊,hook啊(r3)的相关技术,觉得很好玩,于是深入发现还有DLL劫持这种东西觉得挺好玩的,加上最近看到各种木马分析报告中都还有发现有利用白加黑的现象.于是自己想找几个来 ...

  3. 一种通用DLL劫持技术研究

    通用DLL劫持技术研究 by anhkgg 2018年11月29日 写在前面 Dll劫持相信大家都不陌生,理论就不多说了.Dll劫持的目的一般都是为了自己的dll模块能够在别人进程中运行,然后做些不可 ...

  4. [DLL劫持] 3 DLL劫持之实践 例子

    该系列文章是依据本人平时对动态链接库的学习,归纳总结,所做的学习笔记.如有错误或待改善之处,请留下您宝贵的意见或建议.   先说说DLL劫持的原理吧,以下这段来自百度百科对DLL劫持原理的说明: 由于 ...

  5. 从hook007学习dll劫持自启动方式

    转载来自:http://blogs.360.cn/360safe/2016/10/24/hook007autostart/ https://blog.51cto.com/2817071/710911 ...

  6. Windows 下的 7 种 DLL 劫持技术

    本文讲的是Windows 下的 7 种 DLL 劫持技术,在本文中,我将列出半打可以在Windows运行用户模式的进程中使用DLL注入技术.也许可能会有更多类似的技术,但我正在和你分享的是我所拥有的第 ...

  7. dll注入工具_bypassUAC amp;amp; DLL劫持

    0x11 UAC简介 用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制.其原理是通知用户是否对应用程 ...

  8. 老树开新花:DLL劫持漏洞新玩法

      DLL劫持漏洞已经是一个老生常谈,毫无新鲜感的话题了.DLL劫持技术也已经是黑客们杀人越货,打家劫舍必备的武器.那么,随着Win10的诞生,微软是否已经修复了此漏洞?同时在当前的安全环境下,DLL ...

  9. 操作系统权限提升(十五)之绕过UAC提权-基于白名单DLL劫持绕过UAC提权

    系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权 操作系统权限提升(十四)之绕过UAC提权-基于白名 ...

最新文章

  1. 《Java 8 实战》(二)—— Lambda
  2. navicat的使用
  3. 妨碍你成为CCIE的10个不良习惯
  4. Thymeleaf——使用模板动态生成JavaScript脚本文件
  5. Python基础之:函数
  6. 企业级 Spring Boot 教程 (十四)用restTemplate消费服务
  7. Effective Java~38. 用接口模拟可扩展的enum
  8. Python 配置文件之ConfigParser模块(实例、封装)
  9. 基于深度学习的番茄叶片分割算法在手机上的应用(GDL+复杂背景只分割叶片有意义?)
  10. C#将word转换为HTML格式
  11. 2015-2016前端知识体系(转)
  12. 回撤率 python 平台_python夏普率、最大回撤计算
  13. 【51nod-1521】一维战舰
  14. errorcode 微信分享_分享错误码
  15. Programming TCP/IP Windows Sockets in C++
  16. Laravel和Doctrine的测试驱动开发
  17. IOL2020中国初选第一题题解
  18. 【编程实践】为了带你搞懂RPC,我们手写了一个RPC框架
  19. asp计算机房预约系统源码,(机房)实验室预约管理系统
  20. C++ define用法

热门文章

  1. python执行shell命令查看输出_python 运行 shell 命令并捕获输出_python_酷徒编程知识库...
  2. ML:MLOps系列讲解之《MLOps Stack Canvas堆栈画布之MLOps Stack CanvasCRISP-ML(Q)》解读
  3. AI公开课:19.04.04李航—字节跳动AILab总监《深度学习与自然语言处理:评析与展望》课堂笔记以及个人感悟
  4. Python3.x 发送邮件
  5. 蓝桥杯_算法训练_Torry的困惑(基本型)
  6. python3 邮件方式发送测试报告
  7. 【转】Linux Netfilter实现机制和扩展技术
  8. linux下的/dev/shm/ 以及与swap目录的区别【转】
  9. jenkins配置小结
  10. EXPRESS.JS再出发