加载库vs加载二进制dll到进程
LoadLibrary vs loading binary dll into process?
我尝试使用ifstream
将我的dll文件的内容注入到远程进程中。我使用char*
缓冲区来存储dll的内容,然后使用WriteProcessMemory
将dll文件的二进制文件注入进程中。我使用CheatEngine查看VirtualAllocEx
结果所指向的内存区域,因此我知道数据已经写入,因为我看到了我所创建的一个函数的文本参数。我只是好奇它是什么,LoadLibrary
做不同于只是加载原始二进制的dll到进程。
简而言之,LoadLibrary
做了以下事情:
-
处理导入描述符表,加载任何依赖项(如果需要),并填写导入地址表(IAT)
-
将必要的信息写入进程环境块(PEB),以便您可以在模块列表中找到模块。
-
调用模块加载通知(通常在内核)
-
清理新模块上下文
-
创建一个激活上下文(如果有清单)。
-
调用入口点(
DllMain
),如果它存在
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- CoreCLR 中的检测探查器 - 将帮助程序程序集加载到 dotnet 进程的方法
- 如何将LLDB附加到C# .NET进程并调试动态加载的macOS捆绑包?
- 枚举已加载特定 DLL 的进程
- Visual Studio 在附加到进程时不会加载模块
- Linux 进程加载程序在 C++
- 简单的进程加载程序内存映射
- 如何在DLL中找到加载它的进程
- 使用execvp();执行进程时加载用户环境;
- 如何判断共享库在进程地址空间中的加载位置
- 如何附加到加载我的DLL并调试它的进程
- 如何防止一个特定的DLL加载到我的进程
- 如何在vc++中在多个进程中加载单个DLL
- 知道哪个Mac进程正在加载我的库框架
- 我可以从运行时加载的共享对象访问宿主进程的符号吗?任何选择
- 在进程启动时加载依赖缓存
- 调用由另一个进程加载的DLL中的函数
- 加载库vs加载二进制dll到进程
- 加载进程以运行webrequest