不使用 LoadLibrary() 函数来加载 Win32/64 DLL 动态链接库

本文介绍了如何不使用LoadLibrary()函数来加载动态链接库,详细阐述了手动加载DLL的步骤,包括映射DLL、重定位、解析依赖等。并提到了手动加载带来的挑战,如没有有效的HMODULE,资源处理困难,以及对SEH和CRT的支持问题。还提供了一个C/C++示例,并警告这种方法的使用限制。
摘要由CSDN通过智能技术生成

前言


迟早会有不少人开始思考如何不使用 LoadLibrary() 来加载动态链接库。好吧,也许不是那么多人。。。与使用常规的 LoadLibrary() 调用来加载动态链接库的场景相比,它有几个优点,但在编写动态链接库(取决于它实现了什么)时会引入一些不便。尽管如此,如果你想了解幕后发生了什么,这个技巧能够作为指南为你提供很好的建议。我自己就用它来写 C/C++ 的动态链接库,而不是偏移量无关的汇编(一个游戏外挂中所用),那是后话了。

实现


加载动态链接库最重要的步骤是:

映射或者加载动态链接库到内存中。

通过动态链接库中的重定位表(如果存在的话)在动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值