如何从Win32中的func ptr获取Module HANDLE?
发布时间:2020-12-14 04:12:17 所属栏目:Windows 来源:网络整理
导读:我正在为虚拟机进行本机调用绑定,其中一个功能是能够在运行时按名称查找标准libc函数.在 Windows上,这会变得有点麻烦,因为我需要获取当前在进程中加载??的msvcrt模块的句柄.通常这是msvcrt.dll,但它也可能是其他变种(msvcr100.dll等),如果使用具有不同名称的
我正在为虚拟机进行本机调用绑定,其中一个功能是能够在运行时按名称查找标准libc函数.在
Windows上,这会变得有点麻烦,因为我需要获取当前在进程中加载??的msvcrt模块的句柄.通常这是msvcrt.dll,但它也可能是其他变种(msvcr100.dll等),如果使用具有不同名称的变体,则对GetModuleHandle(“msvcrt”)的调用可能会失败.
我希望能够做的是反向查找,从libc中获取函数指针(我有很多)并获得提供它的模块的句柄.基本上,这样的事情: HANDLE hlibc = ReverseGetModuleHandle(fprintf); // Any func from libc should do the trick void *vfunc = GetProcAddress(hlibc); 在win32 API中是否有这样的东西,而不是下载到进程句柄和符号表的手动遍历?相反,如果我过度思考问题,是否有更简单的方法在win32上按名称查找libc函数? MEMORY_BASIC_INFORMATION mbi; HMODULE mod; if (VirtualQuery( vfunc,&mbi,sizeof(mbi) )) { mod = (HMODULE)mbi.AllocationBase; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用于Windows的命令行http服务器
- windows-server-2008 – 如何从网站安全地链接到Windows文件
- windows-server-2012-r2 – 如何在Windows Server 2012 r2中
- Test-Cluster Powershell cmdlet List vs Validate
- 如何在Windows 2003 Server中获取激活密钥
- windows – 如何导出URL重写规则?
- Exp2 后门原理与实践 20164309
- 条件转发器上的警告图标在Windows DNS管理器中的含义是什么
- Windows?2000日志的描述及删除
- 如何在Windows XP中从命令行打开“查找文件”对话框以搜索特
推荐文章
站长推荐
- 如何在Windows 8 XAML中激活控件的高度
- 在Windows和Linux上获取Python中唯一的计算机ID
- windows-server-2008 – Windows Server 2008上的
- windows-server-2008 – 从Windows 2008 R2 SP1分
- 从XP中隐藏或剪切的窗口复制内容?
- Windows server 2008 r2 dns域控与额外域控
- windows – Active Directory中是否有非DC KDC?
- windows – PATH_NOT_FOUND和NAME_NOT_FOUND之间
- Windows – 如何使批处理文件像使用Perl的简单gr
- Windows工作流(WF):将一个活动的输出作为序列中
热点阅读