c++ 获取指针属于哪个模块
2023-09-14 08:58:44 时间
MODULEINFO GetPtrModuleBase(void* ptr, DWORD pid)
{
MODULEINFO mi{ 0 };
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, pid);
if (hSnap != INVALID_HANDLE_VALUE)
{
MODULEENTRY32 me;
me.dwSize = sizeof(me);
if (Module32First(hSnap, &me))
{
do {
if (ptr >= me.modBaseAddr && ptr < me.modBaseAddr + me.modBaseSize)
{
mi.lpBaseOfDll = (LPVOID)me.modBaseAddr;
mi.SizeOfImage = me.modBaseSize;
break;
}
} while (Module32Next(hSnap, &me));
}
}
CloseHandle(hSnap);
return mi;
}
void hello(){}
MODULEINFO mi = GetPtrModuleBase(hello, GetCurrentProcessId());
printf("%p\n", mi.lpBaseOfDll);
相关文章
- C++学习——c++逗号操作符说明(附加全部运算符优先级)
- 腾讯云COS C++ SDK使用记录
- EasyC++75,继承(二)
- 从 C++ 到 Go
- c++获取子类窗口句柄位置_C++中各种获取窗口句柄的方法「建议收藏」
- 如何在VS中清空cin缓冲区(C++)
- C++ socket epoll初识
- C++stl库_c++库
- C++ 中用于动态内存的 的 new 和 delete 运算符
- c++的链表-链表入门(C++)
- C/C++ 进程/线程/模块遍历
- C/C++遍历某进程的模块
- 【C++修炼之路】17.二叉搜索树
- C++桩模块和驱动模块详解
- C++学生信息管理系统演示和说明(文件版)
- C++ cout格式化输出(输出格式)完全攻略
- 基于ProtobufC++serialize到char*的实现方法分析
- C++的头文件和实现文件详解
- VC++角色游戏中的人物初始化模块代码实例
- C++快速排序的分析与优化详解