window服务调试(二):调试windows服务方法
2021/8/24 7:05:42
本文主要是介绍window服务调试(二):调试windows服务方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
调试服务程序的方法有三种 直接设置EIP法 设置循环法 设置JIT法
一、直接设置EIP法
较为简单的服务程序,可以用这个方法,直接启动调试,用调试器设置当前EIP为svcMain的入口,调试功能
二、设置循环法
由于直接调试的服务程序与SCM(Services Control Manager)启动的程序表现不一样,所以我们用附加SCM启动的程序,但是有个问题是,一旦启动那么就会执行功能,我们如何动态调试前面的功能呢,其实很简单,我只要的服务程序的入口点设置无限循环如EB FE
,这个指令的意思是跳转到当前位置,这样就会陷入无限循环,这个时候附加后还原改动的代码就能调试完整的功能了
三、设置JIT法
设置JIT法就是设置默认调试器,每当系统接收到的程序不能自己处理的异常就会启动默认调试器,所以我们可以修改程序在合适的位置触发异常,这样当异常发生的时候就会自动打开调试器附加程序,这个时候附加后还原改动的代码就能调试完整的功能了
注意:
1.SCM开始启动服务后,默认等待30秒,若30秒后,服务程序没有设置启动标识为运行,SCM就会认为启动失败,这时我们可以修改注册表的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout
值可以设长一点,单位为秒
2.JIT的设置方法x64dbg和ollydeg都有自动设置
x64dbg:
菜单栏选择 选项(o)->选项(p)->杂项->将这份x64dbg设为即时调试器
ollydbg:
菜单栏选择 选项(T)->实时调试设置(J)->设置OllyICE为实时调试器
这篇关于window服务调试(二):调试windows服务方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署