[Windows编程] 监视DLL装载/卸载

CPU性能优化实战:从监控到根因,一套通用的排查与解决思路 CPU性能优化是提升软件运行效率的核心技术之一,其本质在于理解CPU时间如何被有效利用。从原理上讲,CPU作为计算机的运算核心,其性能瓶颈往往源于低效的算法、频繁的上下文切换或资源等待。在工程实践中,通过系统监控、采样剖析和根因分析,可以精准定位热点代码,从而实施针对性的优化,如改进数据结构或调整并发模型。这种系统性的性能调优方法,对于构建高响应、高可用的后端服务、移动应用乃至桌面程序都至关重要。本文以火焰图和async-profiler等工具为例,深入剖析了从Linux服务器到移动端App的通用CPU性能 阅读详情

Windows 驱动开发库里面提供了函数 LdrRegisterDllNotification , LdrUnregisterDllNotification , 可以让你监视进程装载/卸载DLL 的事件。 当你想在某个DLL被加载的时候Hook它的函数; 或者当你想在某个DLL推出之前做一些保存清理工作; 或者当你想阻止某个DLL 被加载(比如外挂) .... 这个机制正可以派上用场 。

 

 

以下是代码示例如何使用 LdrRegisterDllNotification , LdrUnregisterDllNotification 监听DLL装载/卸载。

 

  

 

运行程序, 输出如下。可以证实以上代码监听了 mshtml.dll 的装载和卸载。 而且系统自动装载的其他DLL也被监视到。

 

Dll Loaded: C:/Windows/system32/mshtml.dll
Dll Loaded: C:/Windows/system32/msls31.dll
Dll Loaded: C:/Windows/system32/VERSION.dll
Dll Unloaded: C:/Windows/system32/mshtml.dll
Dll Unloaded: C:/Windows/system32/VERSION.dll
Dll Unloaded: C:/Windows/system32/msls31.dll

 

 

>> 原创文章的版权属于作者,转载请注明出处和作者信息(http://blog.csdn.net/WinGeek/), 谢谢。 <<

 

 

监控程序dll 一个监控本地进程的程序。可以详细的监控出进程的CPU,内存,进程是否存在! 立即下载

相关推荐

API监听Dll的加载/卸载消息

本程序调用LdrRegisterDllNotification实现,详见MSDN:LdrUnregisterDllNotification 函数。本程序可以监控Dll的加载/卸载事件。例如本程序可以利用本程序实现反Dll注入。其他功能可自行拓展。

3.Linux基础开发⼯具【由浅入深-Linux】

Windows 环境中,我们习惯了双击 或 文件并一路点击“下一步”来安装软件。但在 Linux 的世界里,软件的分发和安装理念有着本质的不同。Linux 强调权限控制、模块化和依赖管理。为了帮您构建完整的 Linux 系统管理知识体系,我们可以将 Linux 下安装软件的方式归纳为五大主流阵营。这是 Linux 下最正统、也是日常使用频率最高的方式。它又细分为“在线仓库安装”和“本地包安装”两种场景。1. 在线仓库安装(如同手机自带的 App Store) 操作系统维护着一个庞大的软件云端仓库。通

插花弄玉的博客 470

膜拜菊苣的LM2

胡言乱语而已。 光那个Loader就看得我瞎眼了。那个LocaleEmulator.dll更搞得狗眼都睁不开了啊。。。 Loader就不多说了,也是改远程进程的EIP调用LdrLoadDll来载入LocaleEmulator.dll的,虽然我不懂为什么用上了Dbg相关的API,而且CreateProcess是用带有DBG标志来创建的。。 这个新的LM应该是不支持Win7以下系统的。 L

a1875566250的专栏 2281

C++ HOOK PC微信实现无限制多开,理论支持所有版本,本文使用微信 3.0.0.47

一个程序,如果想做单例,无非就是遍历进程,mutex 微信这里使用的就是mutex 互斥 微信启动的时候 会调用 CreateMutexW 来创建一个互斥句柄 具体的代码如下 CreateMutexW(0, FALSE, L"_WeChat_App_Instance_Identity_Mutex_Name"); ; 想要做破解这个也挺简单的 我这里做的是打开微信的时候,注入我自己的DLL,通过修改(_WeChat_App_Instance_Identity_Mutex_N...

Hellmessage 4902

Windows系统通用回调

本文将针对Windows操作系统所提供系统回调操作做逐一分析,以了解每个回调所能达成什么样的功能及效果。比如部分回调只是用于通知,我们只能通过此回调来了解某一类型事件的发生,只能做审计,拦截动作需要通过其它途径实现;也有回调可以实现即时拦截,通过回调即可阻止恶意程序的攻击企图。 Windows系统在内核及应用层均有提供回调机制,下面分为两部分作介绍: 1 内核回调 内核回调机制 OS版本 功能描述 备注 PsSetCreateProcessNotifyRoutine ...

whl0071的专栏 2685

API Monitor简易使用教程 监控Windows dll调用 监控Windows API调用 查看函数名,参数类型,参数,返回值

1、API Filter窗口:选定要监听的dll函数或windows API,可以打断点 选中并右键勾上Breakpoint 选 Before Call。1.改参数,最好新建memorry,在memorry里填上新值, 把参数名对应的Value地址改为新的memorry地址。3、Summary窗口:会列出所有调用的函数。点函数,查看函数名,参数类型,参数,返回值等。2、Monitor New Process 窗口 :选择要运行的exe。当调用到断点的函数调用时,会弹出对话框,可以修改参数。

chenhao0568的专栏 4436

CC文件监控通用DLL介绍:一款跨语言的Windows文件监控利器

CC文件监控通用DLL介绍:一款跨语言的Windows文件监控利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在软件开发领域,监控文件系统的变化是许多应用场景中不可或缺的功能。为此,C/C++文件监控通用DLL(以下简称CC文件监控DLL)应运而生。它是一款专为C/C++开发设计的文件监控通用库,其出色的跨语言兼容性使其能够被Python、C#、Java、Lua、...

gitblog_06761的博客 649

动态库的装载卸载

相关的三个函数: (LoadLibrary,GetProcAddress,FreeLibrary) 动态载入 DLL 动态载入方式是指在编译之前并不知道将会调用哪些 DLL 函数, 完全是在运行过程中根据需要决定应调用哪些函数。 方法是:用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入口地址。当一个 DLL 文...

dijie1999的博客 4315

动态链接库--载入、卸载

DLL载入方式: 应用程序能够调用一个DLL中的函数之前,必须将该DLL的文件映射到调用进程的地址空间中,可以通过两种方式:启动时隐式载入 或 运行时显示载入。 启动时隐式载入:需要 .h、.lib、.dll; 运行时显示载入:需要 .h、.dll;(.h只是告诉有哪些可调用符号,知道符号则可不添加) DLL显式载入和卸载: 通过 LoadLibrary 和 LoadLibrary...

weixin_34292287的博客 635
上一篇: [IE编程] IE8的SDK 下载
下一篇: [Windows编程] 使用API函数GetProcAddress的注意事项
西塞安全
博客等级 码龄20年 980粉丝 164原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值