如何将10.2调试事件获取DLL装载过程改写为一个长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计865个文字,预计阅读时间需要4分钟。
理解了如何通过调试事件输出当前进程中的存储器信息,那么实现加载DLL模块也会变得容易。主要使用+LOAD_DLL_DEBUG_EVENT这个通知事件,它可以检测到进程加载的模块信息。
理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实现进程模块加载的监控。
获取加载的动态链接库DLL的详细信息,具体实现细节如下:
- 首先,代码通过
GetFileSize函数获取目标DLL文件的大小,如果大小为0,则立即退出函数。 - 然后,代码调用
CreateFileMapping和MapViewOfFile函数创建了一个内存映射对象,该映射对象可以让代码访问DLL文件的内容。 - 随后,代码调用
GetMappedFileName函数获取该内存映射对象关联的DLL文件的路径,其中需要使用QueryDosDevice查询函数来确认磁盘符号对应的真实文件名称, 如果找到对应的真实文件名称,则可以更新原始路径为真实路径,这里用到了字符串操作函数_tcslen、 _tcsnicmp以及_tcsncpy等。
本文共计865个文字,预计阅读时间需要4分钟。
理解了如何通过调试事件输出当前进程中的存储器信息,那么实现加载DLL模块也会变得容易。主要使用+LOAD_DLL_DEBUG_EVENT这个通知事件,它可以检测到进程加载的模块信息。
理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用LOAD_DLL_DEBUG_EVENT这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实现进程模块加载的监控。
获取加载的动态链接库DLL的详细信息,具体实现细节如下:
- 首先,代码通过
GetFileSize函数获取目标DLL文件的大小,如果大小为0,则立即退出函数。 - 然后,代码调用
CreateFileMapping和MapViewOfFile函数创建了一个内存映射对象,该映射对象可以让代码访问DLL文件的内容。 - 随后,代码调用
GetMappedFileName函数获取该内存映射对象关联的DLL文件的路径,其中需要使用QueryDosDevice查询函数来确认磁盘符号对应的真实文件名称, 如果找到对应的真实文件名称,则可以更新原始路径为真实路径,这里用到了字符串操作函数_tcslen、 _tcsnicmp以及_tcsncpy等。

