关于DLL注入的理解

关于DLL注入的理解DLL注入方式较多,包括API拦截与替换、消息钩子、远程进程。这些注入都是针对第三方程序(下面简称目标程序)的操作。目标程序主要分为两种,解释型和编译型。解析型可以在解释权解释之前做很多事情,比较简单,也比较可行。编译型则无法在编译前做任何事情,因为目标程序一般是第三方编译完成之后发布出来的。编译完成后就是二进制代码(即使能反汇编),就不存在变量名、函数名等标识符,因为这些标识符已经转换成响应的地址。这种情况下,如果拿不到真正的地址,则即使注入到主线程(UI线程)中,依然没有任何作用。除非程序调用的dll包

大家好,又见面了,我是你们的朋友全栈君。

DLL注入方式较多,包括API拦截与替换、消息钩子、远程进程注入。通常这些注入都是针对第三方程序(下面简称目标程序)的操作。

目标程序主要分为两种,解释型和编译型

解析型可以在解释权解释之前做很多事情,解释之前的代码不是二进制代码,而是解释器可以看懂的代码,比较简单,也比较可行。

编译型则无法在编译前做任何事情,因为目标程序一般是第三方编译完成之后发布出来的。编译完成后就是二进制代码(即使能反汇编),就不存在变量名、函数名等标识符,因为这些标识符已经转换成相应的地址。这种情况下,如果拿不到真正的地址,则即使注入到主线程(UI线程)中,依然没有任何作用。除非程序调用的dll包含导出函数,我们可以实现函数地址的替换。

即使采用MFC框架提供的方式,也是对编译后的程序无能为力的,因为MFC框架也只是一段普通代码,并不是WIN API,无法获取OS执行过程中的任何消息或者改变OS执行过程中的任何操作。

Windows API中使用的是句柄,C/C++中使用的是指针。两者并没有什么关系。MFC中的对象既有指针,又有句柄,是因为这个对象留出了一个成员变量来存放WIndows窗体句柄(注意:windows窗体对象本身的指针是无法获取的,因为windows api只能获取窗体句柄)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145710.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux磁盘阵列

    Linux磁盘阵列一、磁盘阵列1基础知识磁盘阵列(RedundantArraysofIndependentDisks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。磁盘阵列还能利用同位检查(ParityCheck)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算

    2022年5月25日
    33
  • J2SE初识「建议收藏」

    J2SE初识「建议收藏」什么是J2SE?J2SE和Java有什么关系?什么是Java2?这三者有什么联系?为什么要有Java2?J2SE?我用一张图来解释其实Java2是Java的第二代J2SE是Java2的标准版,主要用于桌面应用软件的编程J2EE是Java2的企业版,主要用户分布式的网络程序开发,比如电子商务网站J2ME是Java2的微缩版,主要

    2025年6月12日
    0
  • KeyValuePair C#[通俗易懂]

    KeyValuePair C#[通俗易懂]前几天自学了keyvaluepair,在网上找到一篇很好的Blog,所以转载过来共享。转载地址:http://www.cnblogs.com/C#KeyValuePairKeyValuePairstorestwovaluestogether.Itisasinglegenericstruct.TheKeyValuePairtypeinSyste…

    2022年7月26日
    3
  • 2021-08-20

    2021-08-20福利iTunes12.6.5.3(企业版)下载!发表于:2018-09-2701:22:55来自威锋网页版7.8w326只看楼主本帖最后由扫除一切害人虫于2018-10-3104:24编辑iTunes12.6.5.3(企业版)注:这个版本的iTunes与macOSMojave不兼容。简单介绍一下:这个版本自带应用商店,APP可更新可下载,重刷系统后再也不必使用手机从已购里面一个个下载了。并且这个版本支持XSMAXIOS12.0DFU模式下刷机,可谓是喜欢

    2022年7月15日
    13
  • [分布式]:分布式系统的CAP理论

    [分布式]:分布式系统的CAP理论2000年7月,加州大学伯克利分校的EricBrewer教授在ACMPODC会议上提出CAP猜想。2年后,麻省理工学院的SethGilbert和NancyLynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。CAP理论概述一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition…

    2022年6月16日
    28
  • CAS单点登录原理解析

    CAS单点登录原理解析推荐阅读1.SpringBoot整合篇2.手写一套迷你版HTTP服务器3.记住:永远不要在MySQL中使用UTF-84.Springboot启动原理解析1、基于Cookie的单点登录的回顾基于Cookie的单点登录核心原理:将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名…

    2022年6月7日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号