【逆向】Windows服务简介

前言

本文主要是对windows服务的一个简介,包含基本概念与编写代码时的基本逻辑。

简介

服务控制器(SCM):

控制服务安装,删除,启动,停止等。。。
对系统中所有服务进行管理(包括驱动)。
SCM管理着系统中已经安装的服务程序和设备驱动程序数据库。
数据库中保存了,系统安装了哪些服务,每一个服务的详细信息(启动信息,安全属性,控制接口等)

服务分类:

1. 服务应用程序 (用户态服务需要遵守SCM接口规范)
2. 内核驱动服务程序

函数功能:

服务主函数(serviceMain):

1. 服务启动时执行的代码入口,由SCM调用

服务控制处理函数:
1. 注册控制处理函数
向SCM注册一个服务控制处理函数

2. 控制处理函数:
用于处理SCM向服务传递的控制请求(启动,停止等)

代码逻辑

 1 //===Main函数
 2 void main()
 3 {
 4     if(服务已创建)
 5     {
 6         //1. 向SCM注册服务主函数 serviceMain
 7     }
 8     else
 9     {
10         //1. sc.exe 创建服务
11         //2. API 创建服务
12     }
13 }
14 
15 //===服务主函数
16 void WINAPI serviceMain(DWORD argc,LPTSTR *argv)
17 {
18     //1. 注册服务控制处理函数
19     //2. 设置服务运行状态
20 }
21 
22 //===服务控制处理函数
23 void WINAPI serviceCtrlHandler(DWORD Opcode)
24 {
25     switch(Opcode)
26     {
27         case xxx:  //启动
28         case xxxx: //停止
29         case xxxxx://其他
30     }
31 }

猜你喜欢

转载自www.cnblogs.com/SunsetR/p/11978005.html
今日推荐