关于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pycharm的调试功能_安卓调试模式怎么打开

    pycharm的调试功能_安卓调试模式怎么打开Debug调试,是对于学习编程人员来说是一项重要的技能。只有当你学会debug了以后,才可以正确的知道程序的走向流程是如何的,DEBUG是排除程序故障的意思。debug则是通过工具来对代码进行调试,进而一步步找出程序中出现bug的位置,也就是程序中具体错误代码的位置。Pycharm中的debug模式首先,还是用示例说话,我们先写一段简短的代码,来帮助我们完成今天要讲的内容。初学者可能没见过for循环中的下划线‘_’,在Python中是占位符的意思,因…

    2022年8月28日
    5
  • 图标变成了一张白纸_文件图标变成白纸

    图标变成了一张白纸_文件图标变成白纸最近很多用户问怎么安装纯净版的win10系统,那么今天针对这个问题,和大家分享一下超详细的纯净版win10安装教程,手把手教学,大伙们赶紧收藏哦!如何安装?这一完整教程分为4个部分:准备工作→系统安装→设置桌面→驱动安装重点开始了,请做好笔记哦!Part1:准备工作1、制作U盘启动盘(PE系统的引导工具)第一步:准备一个8G以上的U盘,并做好U盘重要资料的备份,因为在制作的过程中U盘会…

    2022年10月19日
    5
  • Wscript.shell 详解

    Wscript.shell 详解Wscript.shellWscript.shell是Wshshell的ProIDWshshell是一个对象,存放在windows系统中的wshom.ocx文件中,可供在windows上运行的程序调用。他可对windows的外壳程序进行访问。对象(object)是一些相关变量和方法的软件集,或者说库。当你需要这个对象里面的变量,方法,功能的时候,你就可以使用相关语

    2025年7月11日
    4
  • SpringBoot——SpringBoot整合Swagger[通俗易懂]

    SpringBoot——SpringBoot整合Swagger[通俗易懂]SpringBoot——SpringBoot整合Swagger

    2022年4月23日
    74
  • visual studio2019的安装以及使用

    visual studio2019的安装以及使用一 下载安装包下载地址选择 visualstudio 的 community 版本二 下载好后运行三 组件的选择如果是用来学 C C 的话 选择以下两个就够了之后如果还需要其他一些功能的话 可以后续在进行添加 打开 visualstudio 进入修改四 进行安装如果不需要修改安装位置的话点击安装就可以了 不过由于 vs2019 占用的空间较大最好不要装在

    2025年7月4日
    4
  • 中间件技术及双十一实践·EagleEye篇「建议收藏」

    中间件技术及双十一实践·EagleEye篇「建议收藏」EagleEye——分布式调用的跟踪者转自:http://www.tuicool.com/articles/fuYz2i综述阿里巴巴电子商务平台现在是一个由很多个应用集群组成的非常复杂的分布式系统。这些应用里面主要有处理用户请求的前端系统和有提供服务的后端系统等,各个应用之间一般有RPC调用和异步消息通讯两种手段,RPC调用会产生一层调一层的嵌套,一个消息发布出来更会被多

    2022年8月16日
    9

发表回复

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

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