进程卡住 线程栈分析 记录

nsi卸载进程卡住:

自卸载 调用的函数:MoveFileEx  (PendingFileRenameOperations  MOVEFILE_DELAY_UNTIL_REBOOT   开机延迟删除 )

使用Process Explorer查看进程:

卡住的两个线程。

查看线程栈:

SeAccessCheckWithHint+0xb4a 卡住。

https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/1edad401-396b-4d7a-b5e4-d16fd48ca120/shellexecuteex-hangs-in-openregstream

https://pastebin.com/md38525d

https://communities.vmware.com/thread/266408

查看 SeAccessCheckWithHint+0xb4a  以后有时间 再具体分析(应该跟 主机环境有关)

最后的结论是:0会话 启动gui进程 导致卡死

写了一个demo 进行排查 记录:

使用服务启动 gui进程 messageBox.exe

安装服务

服务启动配置:(启动MessageBox.exe 进程)

MessageBox.exe 正常启动:

启动服务 (根据配置启动MessageBox.exe):

用procexp查看  卡死线程

使用windbg 附加到 messageBox.exe(F6 )

 

查看线程(~)

 

查看线程0栈(~ 0 kv)

切换到线程0(~ 0 s)

查看线程0栈(kv)

查看MessageBoxIndirect( const MSGBOXPARAMS *lpmbp ) 

查看MSGBOXPARAMS  ( dd 0020f9b8  (上图 MessageBoxIndirectW 的参数) )

 

查看 szText  (du 013b2150)

查看szCaption (du 013b2180)

 

与上图的messageBox的内容一致  说明 MessageBoxIndirect 卡住了

ok

测试程序下载url:https://download.csdn.net/download/huanongying131/11228827

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值