首页
社区
课程
招聘
[分享]office 2016 excel卡死问题分析及粗暴解决办法
发表于: 2018-4-10 00:41 25842

[分享]office 2016 excel卡死问题分析及粗暴解决办法

2018-4-10 00:41
25842
最近需要编辑文档下载安装了x64的office 2016,操作系统是 64位 WIN10,在使用excel的时候出现偶发界面失去响应,整个进程卡死。查询各种资料后发现遇到的人还挺多的,但都没有具体的原因和靠谱的解决办法,求人不如求己,操起工具尝试看自己能否解决,以下是整个问题的分析和解决过程。
经过多次尝试重现问题后发现,进行下图方式的单元格拖动填充的时候问题必现;
使用windbg挂载进程多次调试后确认问题,主线程卡在一个系统API NtUserChangeClipboardChain ,调用栈如下:

win32u.dll!NtUserChangeClipboardChain+0x14

mso.dll!Ordinal4978+0x9e3

USER32.dll!CallWindowProcW+0x4dd

USER32.dll!CallWindowProcW+0x1cc

USER32.dll!GetTopWindow+0x153

ntdll.dll!KiUserCallbackDispatcher+0x24

win32u.dll!NtUserDestroyWindow+0x14

mso.dll!Ordinal253+0x68e

mso.dll!Ordinal1655+0xe4c

mso.dll!Ordinal1655+0xdf4

EXCEL.EXE!MdCallBack12+0x38a815

EXCEL.EXE!Osf::OSFCreateOsfOartGallery+0x772a8

EXCEL.EXE!MdCallBack+0x3aedc8

EXCEL.EXE+0x490e54

EXCEL.EXE!MdCallBack12+0x39fa0e

EXCEL.EXE+0xcaec7

EXCEL.EXE+0x666ed

EXCEL.EXE!MdCallBack+0x17e93c

EXCEL.EXE!MdCallBack+0x180da9

EXCEL.EXE!MdCallBack+0x174234

EXCEL.EXE!MdCallBack+0x1762cb

EXCEL.EXE+0x49057c

EXCEL.EXE+0xae97d

EXCEL.EXE+0x18b3c

USER32.dll!CallWindowProcW+0x4dd

USER32.dll!DispatchMessageW+0x1af

。。。。。

通过查文档得知该API  NtUserChangeClipboardChain作用是将窗口句柄从剪贴板监视链中移除,该API内部有涉及监视链窗口间的消息通信,猜测导致这个问题的原因可能是由于剪贴板监视链中的某些窗口消息处理有问题,从而导致该API发送消息无法返回导致线程阻塞。
从文档看这个API不是很重要的样子,我尝试直接将这个调用代码nop掉,需要补丁的dll文件路径为“C:\Program Files\Microsoft Office\root\vfs\ProgramFilesCommonX64\Microsoft Shared\OFFICE16\MSO.DLL”,然后用IDA加载dll设置基地址为0x7ffad7710000,将0x7ffad7adf17d地址的call代码直接nop,最终效果如下:
最后将补丁后的文件替换原文件后运行excel没有再出现异常的情况,初步进行各种编辑和保存也正常。 虽然办法简单粗暴 ,但是目前看问题姑且算是解决了,所以发帖纪录下,一方面看是否能帮助再次遇到相同问题的人;另一方面想和论坛各位大佬讨教讨教,确认下NtUserChangeClipboardChain卡死的原因。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2018-4-10 00:42 被ADMΙN编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 102
活跃值: (457)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
64位  office2016+win10,没有复现你说的问题
2018-4-10 06:27
0
雪    币: 35
活跃值: (1924)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个问题也不是每个电脑必现,可能是和某些第三方软件有关系
2018-4-10 21:10
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
逆向萌新,表示不明觉厉
2018-4-11 09:45
0
游客
登录 | 注册 方可回帖
返回
//