原理:
应用进程 SCM进程 服务进程
StartService() 创建进程,等待StartServiceCtrlDispatcher()返回 main->StartServiceCtrlDispatcher()
方法:
1.增加服务启动超时时间
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control] ServicesPipeTimeout 60*60*24*1000=86400000
重启系统,使之生效。
2.修改文件:EP设置无限循环
EP修改后的二机制:0xEB 0xFE(JMP 目前指令)
3.启动服务,附加至调试器
4.修改进程,删除无限循环(恢复EP指令)
5.调试分析
应用进程 SCM进程 服务进程
StartService() 创建进程,等待StartServiceCtrlDispatcher()返回 main->StartServiceCtrlDispatcher()
调用SvcMain,等待RUNNING状态返回 回调函数SvcMain()->
->RegisterServiceCtrlHandler()->
->SetServiceStatus(SERVICE_RUNNING)
SetServiceStatus() 回调函数SvcCtrlHandler方法:
1.增加服务启动超时时间
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control] ServicesPipeTimeout 60*60*24*1000=86400000
重启系统,使之生效。
2.修改文件:EP设置无限循环
EP修改后的二机制:0xEB 0xFE(JMP 目前指令)
3.启动服务,附加至调试器
4.修改进程,删除无限循环(恢复EP指令)
5.调试分析
6万+

被折叠的 条评论
为什么被折叠?



