您现在的位置是:测试开发营 > 系统运维
思维调试:理解 DDE 的初始化过程
测试开发营2025-11-26 23:01:16【系统运维】0人已围观
简介最近有人问我下面这个问题,我们依然可以使用之前我提到的 “思维调试” 来研究研究。我们碰到了一个技术问题。当在资源管理器中双击打开文档时,资源管理器不会启动我们的应用程序。更加奇怪的是,如果我们将一个
最近有人问我下面这个问题,调试我们依然可以使用之前我提到的理解 “思维调试” 来研究研究 。
我们碰到了一个技术问题。初始程当在资源管理器中双击打开文档时,化过资源管理器不会启动我们的调试应用程序。
更加奇怪的理解是 ,如果我们将一个调试器挂接到资源管理器进程 ,初始程并在 kernel32 模块的化过 CreateProcessW 处下断点,然后等待 CreateProcess 返回 ,调试并在调试器中继续执行 ,源码库理解则文档可以正常打开 。初始程但是化过 ,如果我们不做任何等待 ,调试应用程序也可以正常打开,理解但是初始程它不会加载文档,在这种情况下,我们得到了这样的错误信息:Windows 找不到 ‘abc.lit’。请确保你输入了正确的文档名称 ,然后重试 。
下面是云计算我们使用的命令行 :“F:\Program Files\LitSoft\LitWare\LitWare.exe” /dde到底是哪里出了问题呢 ?如果你仔细研究过 DDE 初始化的工作原理文章,那么我想你应该已经知道原因了。
回想一下,通过 DDE 打开文档是通过首先查找 DDE 服务器来完成的,如果未找到 ,则手动启动服务器并重试。上面的命令行显然已注册为与 ddeexec 关联的命令 。亿华云
我们有两个线索:首先是文档名称本身在命令行上不存在。(这不可能是直接执行,因为程序不知道它应该打开什么文档 !但是这条线索是命令行上的短语 /dde。显然,资源管理器尝试第二个 DDE 对话打开文档时出现问题 。让资源管理器等待几秒钟可以解决问题的事实使原因显而易见:DDE 服务器初始化和侦听自身的速度很慢。高防服务器资源管理器启动服务器并尝试与其通信 ,但服务器尚未准备就绪,因此不响应 DDE 启动 。
如何解决这个问题?
外壳程序假定 DDE 服务器在输入空闲时已准备好接受连接 。一旦 DDE 服务器上的 WaitForInputIdle 返回,资源管理器将第二次尝试启动 DDE 会话 。此修复程序是让应用程序在开始处理消息之前启动并运行其 DDE 服务器 。
我的猜测是应用程序将其 DDE 服务器移动到后台线程以提高启动性能,因为 DDE 服务器不参与正常的程序操作。服务器租用
但是这太糟糕了,当传递 /dde 标志时,程序忘记在输入空闲之前启动并运行 DDE 服务器 。让 DDE 服务器运行很重要 ,但它错过了正确的时间点。总结
如果你要实现了一个 DDE 服务器 ,请确保在主线程开始处理消息之前就启动它。否则 ,应用程序启动和尝试与之通信的外壳之间存在竞争条件。
很赞哦!(7)
热门文章
站长推荐
友情链接
- 2024年度威胁报告:网络安全设备成黑客首选突破口
- 研究人员利用 AI 越狱技术大量窃取 Chrome 信息
- 约22000名WAB客户受到针对第三方供应商的零日攻击的影响
- 第二届“长城杯”信息安全铁人三项赛(防护赛)总决赛圆满收官
- 浏览器加密钱包高危漏洞可致资金遭窃
- 深信服秋季新品重磅发布:安全GPT4.0数据安全大模型与分布式存储EDS新版本520,助力数字化更简单、更安全
- Sitecore 零日漏洞可让攻击者远程执行代码
- 网络安全技术:防火墙、VPN、入侵检测基础
- 黑客滥用 Cloudflare 隧道基础设施传播多种远程访问木马
- 万事达卡爆出致命DNS错误配置 企业服务器网站建设b2b信息平台亿华云香港物理机源码库云服务器







