├── .hgignore ├── Assets ├── .readme.txt ├── action_go.bmp ├── action_go.gif ├── action_stop.bmp ├── action_stop.gif ├── bullet_server.png ├── bullet_user.ico ├── disconnect.ico ├── disconnect_16.png ├── firewall.ico ├── firewall_16.png ├── ip.ico ├── ip_16.png ├── lightning.ico ├── lightning_16.png ├── network_adapter.ico ├── network_adapter_16.png ├── network_cloud.ico ├── network_cloud_16.png ├── network_clouds.ico ├── network_clouds_16.png ├── network_ethernet.ico ├── network_ethernet_16.png ├── network_firewall.ico ├── network_firewall_16.png ├── network_ip.ico ├── network_ip_16.png ├── pci.ico ├── pci_16.png ├── report.ico ├── report_16.png ├── script_yellow.ico ├── script_yellow_16.png ├── script_yellow_computer_16.png ├── script_yellow_server2_16.png ├── script_yellow_server_16.png ├── script_yellow_user_16.png └── shield.bmp ├── DeviceInterfaceClasses.txt ├── Docs ├── readme.md └── screenshots │ ├── colors1.png │ ├── drivers1.png │ ├── main01.png │ ├── main03.png │ ├── main05.png │ ├── notes1.png │ ├── qfilter.png │ ├── rename1.png │ ├── restoreconf1.png │ ├── security2.png │ ├── triggers1.png │ ├── triggers2.png │ └── triggers3.png ├── Forms ├── Viper.DependencyList.dfm ├── Viper.DependencyList.pas ├── Viper.MainForm.dfm ├── Viper.MainForm.pas ├── Viper.MainTriggerList.dfm ├── Viper.MainTriggerList.pas ├── Viper.RestoreServiceConfig.dfm ├── Viper.RestoreServiceConfig.pas ├── Viper.RichEditEx.dfm ├── Viper.RichEditEx.pas ├── Viper.ScheduledTasks.dfm ├── Viper.ScheduledTasks.pas ├── Viper.ScheduledTasksMain.dfm ├── Viper.ScheduledTasksMain.pas ├── Viper.ServiceEdit.dfm ├── Viper.ServiceEdit.pas ├── Viper.ServiceList.dfm ├── Viper.ServiceList.pas ├── Viper.ServiceTriggerList.dfm ├── Viper.ServiceTriggerList.pas ├── Viper.Settings.dfm ├── Viper.Settings.pas ├── Viper.StyleEdit.dfm ├── Viper.StyleEdit.pas ├── Viper.StyleSettings.dfm ├── Viper.StyleSettings.pas ├── Viper.TriggerDataItemEditor.dfm ├── Viper.TriggerDataItemEditor.pas ├── Viper.TriggerEditor.dfm ├── Viper.TriggerEditor.pas ├── Viper.TriggerImport.dfm ├── Viper.TriggerImport.pas ├── Viper.TriggerImportList.dfm ├── Viper.TriggerImportList.pas ├── Viper.TriggerList.dfm └── Viper.TriggerList.pas ├── Locales └── Strings.RUS.txt ├── Project ├── AclUi.pas ├── CommonResources.dfm ├── CommonResources.pas ├── EtwUtils.pas ├── GuidDict.pas ├── RegExport.pas ├── RegFile.pas ├── SecEdit.pas ├── ServiceHelper.pas ├── SetupApiHelper.pas ├── ShellUtils.pas ├── SvcCat.pas ├── SvcEntry │ ├── MemSvcEntry.pas │ ├── OsSvcEntry.pas │ ├── RegFileSvcEntry.pas │ ├── ServiceProperties.txt │ └── SvcEntry.pas ├── TriggerExport.pas ├── TriggerUtils.pas ├── Viper.Log.dfm ├── Viper.Log.pas ├── Viper.ServiceImport.dfm ├── Viper.ServiceImport.pas ├── Viper.dpr ├── Viper.dproj ├── Viper_Icon.ico ├── WinApiHelper.pas ├── WnfUtils.pas └── taskschd.pas ├── RpcInterfaces.txt ├── SvcData Format.txt ├── SvcData ├── AppVClient.txt ├── Core │ ├── BDESVC.txt │ ├── EFS.txt │ ├── EventLog │ │ ├── EventLog.txt │ │ └── WecSvc.txt │ ├── FontCache.txt │ ├── KTM │ │ ├── KtmRm.txt │ │ ├── MSDTC.txt │ │ └── readme │ ├── Performance │ │ ├── PerfHost.txt │ │ ├── pla.txt │ │ └── wmiApSrv.txt │ ├── Power.txt │ ├── ProtectedStorage.txt │ ├── RPC │ │ ├── COMSysApp.txt │ │ ├── DcomLaunch.txt │ │ ├── EventSystem.txt │ │ ├── RpcEptMapper.txt │ │ ├── RpcLocator.txt │ │ ├── RpcSs.txt │ │ ├── SENS.txt │ │ └── readme │ ├── SamSs.txt │ ├── Schedule.txt │ ├── Security │ │ ├── CryptSvc.txt │ │ ├── KeyIso.txt │ │ ├── NgcCtnrSvc.txt │ │ ├── NgcSvc.txt │ │ └── readme │ ├── SysMain.txt │ ├── TBS.txt │ ├── Themes.txt │ ├── TrkWks.txt │ ├── UxSms.txt │ ├── VaultSvc.txt │ ├── Winmgmt.txt │ └── vds.txt ├── Defender │ ├── AppIDSvc.txt │ ├── BFE.txt │ ├── MpsSvc.txt │ ├── Sense.txt │ ├── WPCSvc.txt │ ├── WdNisSvc.txt │ ├── WinDefend.txt │ ├── readme │ └── wscsvc.txt ├── Development │ ├── IpOverUsbSvc.txt │ ├── MDM.txt │ ├── Te.Service.txt │ ├── VsEtwService120.txt │ └── fussvc.txt ├── Diagnostics │ ├── Compability │ │ ├── AeLookupSvc.txt │ │ ├── PcaSvc.txt │ │ └── UI0Detect.txt │ ├── DPS.txt │ ├── DcpSvc.txt │ ├── DiagTrack.txt │ ├── WdiServiceHost.txt │ ├── WdiSystemHost.txt │ ├── WerSvc.txt │ ├── diagnosticshub.standardcollector.service.txt │ ├── readme │ ├── wercplsupport.txt │ └── wisvc.txt ├── Enterprise │ ├── AppMgmt.txt │ ├── AxInstSV.txt │ ├── DmEnrollmentSvc.txt │ ├── EntAppSvc.txt │ ├── Netlogon.txt │ ├── StorSvc.txt │ ├── WPDBusEnum.txt │ ├── dmwappushservice.txt │ ├── gpsvc.txt │ ├── hkmsvc.txt │ ├── napagent.txt │ └── readme ├── Hardware │ ├── Bluetooth │ │ ├── BthHFSrv.txt │ │ └── bthserv.txt │ ├── DeviceAssociationService.txt │ ├── DeviceInstall.txt │ ├── DsmSvc.txt │ ├── Fax.txt │ ├── Mobile │ │ ├── PhoneSvc.txt │ │ └── RmSvc.txt │ ├── PlugPlay.txt │ ├── Printers │ │ ├── PrintNotify.txt │ │ └── Spooler.txt │ ├── Sensors │ │ ├── SensorDataService.txt │ │ ├── SensorService.txt │ │ └── SensrSvc.txt │ ├── ShellHWDetection.txt │ ├── Smartcards │ │ ├── CertPropSvc.txt │ │ ├── SCPolicySvc.txt │ │ ├── SCardSvr.txt │ │ └── ScDeviceEnum.txt │ ├── TabletInputService.txt │ ├── WbioSrvc.txt │ ├── WcsPlugInService.txt │ ├── WiaRpc.txt │ ├── hidserv.txt │ ├── irmon.txt │ ├── readme │ ├── stisvc.txt │ └── wudfsvc.txt ├── HyperV │ ├── HvHost.txt │ ├── vmicguestinterface.txt │ ├── vmicheartbeat.txt │ ├── vmickvpexchange.txt │ ├── vmicrdv.txt │ ├── vmicshutdown.txt │ ├── vmictimesync.txt │ ├── vmicvmsession.txt │ └── vmicvss.txt ├── IIS │ ├── AppHostSvc.txt │ ├── IISADMIN.txt │ ├── WMSvc.txt │ └── w3logsvc.txt ├── Indexing │ ├── CISVC.txt │ └── WSearch.txt ├── Kiosk │ ├── RetailDemo.txt │ ├── embeddedmode.txt │ └── shpamsvc.txt ├── Licensing │ ├── ClipSvc.lnk │ ├── LicenseManager.txt │ ├── WatAdminSvc.txt │ ├── sppsvc.txt │ └── sppuinotify.txt ├── Logon │ ├── AppInfo.txt │ ├── AppReadiness.txt │ ├── LSM.txt │ ├── ProfSvc.txt │ ├── SENS.lnk │ ├── Terminal Services │ │ ├── SessionEnv.txt │ │ ├── TermService.txt │ │ └── UmRdpService.txt │ ├── UserManager.txt │ └── seclogon.txt ├── Maintenance │ ├── SDRSVC.txt │ ├── VSS.txt │ ├── W32Time.txt │ ├── defragsvc.txt │ ├── fhsvc.txt │ ├── readme │ ├── svsvc.txt │ ├── swprv.txt │ ├── tzautoupdate.txt │ └── wbengine.txt ├── Multimedia │ ├── AudioEndpointBuilder.txt │ ├── Audiosrv.txt │ ├── MMCSS.txt │ ├── Mcx2Svc.txt │ ├── THREADORDER.txt │ ├── WMPNetworkSvc.txt │ ├── ehRecvr.txt │ ├── ehSched.txt │ └── readme ├── NET │ ├── FontCache3.0.0.0.txt │ ├── aspnet_state.txt │ ├── clr_optimization_v2.0.50727_32.txt │ ├── clr_optimization_v2.0.50727_64.txt │ ├── clr_optimization_v4.0.30319_32.txt │ ├── clr_optimization_v4.0.30319_64.txt │ ├── idsvc.txt │ └── readme ├── Networking │ ├── AJRouter.txt │ ├── Connectivity │ │ ├── NcaSvc.txt │ │ ├── NlaSvc.txt │ │ ├── Wcmsvc.txt │ │ ├── WinHttpAutoProxySvc.txt │ │ ├── iphlpsvc.txt │ │ ├── netman.txt │ │ ├── netprofm.txt │ │ └── nsi.txt │ ├── Dhcp.txt │ ├── Distributed Access │ │ ├── CscService.txt │ │ └── PeerDistSvc.txt │ ├── Dnscache.txt │ ├── EapHost.txt │ ├── HomeGroup │ │ ├── HomeGroupListener.txt │ │ └── HomeGroupProvider.txt │ ├── ICS │ │ ├── ALG.txt │ │ ├── SharedAccess.txt │ │ └── icssvc.txt │ ├── IKEEXT.txt │ ├── MSMQ │ │ ├── MSMQ.txt │ │ ├── MSMQTriggers.txt │ │ ├── NetMsmqActivator.txt │ │ ├── NetPipeActivator.txt │ │ ├── NetTcpActivator.txt │ │ ├── NetTcpPortSharing.txt │ │ └── WAS.txt │ ├── Mobile │ │ └── SmsRouter.txt │ ├── NetSetupSvc.txt │ ├── NfsClnt.txt │ ├── P2Psvc │ │ ├── PNRPAutoReg.txt │ │ ├── PNRPsvc.txt │ │ ├── p2pimsvc.txt │ │ └── p2psvc.txt │ ├── PolicyAgent.txt │ ├── QWAVE.txt │ ├── RemoteAccess.txt │ ├── SNMP.txt │ ├── SNMPTrap.txt │ ├── Samba │ │ ├── Browser.txt │ │ ├── LanmanServer.txt │ │ ├── LanmanWorkstation.txt │ │ ├── lmhosts.txt │ │ └── readme │ ├── Services │ │ ├── RemoteRegistry.txt │ │ ├── ftpsvc.txt │ │ └── simtcp.txt │ ├── Telephony │ │ ├── RasAuto.txt │ │ ├── RasMan.txt │ │ ├── SstpSvc.txt │ │ ├── TapiSrv.txt │ │ └── readme │ ├── UPNP │ │ ├── FDResPub.txt │ │ ├── IPBusEnum.txt │ │ ├── SSDPSRV.txt │ │ ├── fdPHost.txt │ │ ├── readme │ │ └── upnphost.txt │ ├── WebClient.txt │ ├── WinRM.txt │ ├── WlanSvc.txt │ ├── WwanSvc.txt │ ├── dot3svc.txt │ ├── lltdsvc.txt │ └── wcncsvc.txt ├── Third Party │ ├── AdobeFlashPlayerUpdateSvc.txt │ ├── CTAudSvcService.txt │ ├── DirMngr.txt │ ├── FLEXnet Licensing Service.txt │ ├── HPSIService.txt │ ├── Hardware │ │ ├── Net Driver HPZ12.txt │ │ ├── Pml Driver HPZ12.txt │ │ ├── Stereo Service.txt │ │ ├── UMVPFSrv.txt │ │ ├── VIAKaraokeService.txt │ │ ├── nvUpdatusService.txt │ │ └── nvsvc.txt │ ├── IAStorDataMgrSvc.txt │ ├── IDriverT.txt │ ├── ImDskSvc.txt │ ├── MySQL.txt │ ├── Office │ │ ├── ose.txt │ │ ├── ose64.txt │ │ └── osppsvc.txt │ ├── PSEXESVC.txt │ ├── Samsung UPD Service2.txt │ ├── SkypeUpdate.txt │ ├── Steam Client Service.txt │ ├── TeamViewer.txt │ ├── TeamViewer7.txt │ ├── VPNManager.txt │ ├── WsAppService.txt │ ├── WsDrvInst.txt │ ├── Xbox Live │ │ ├── CDPSvc.txt │ │ ├── XblAuthManager.txt │ │ ├── XblGameSave.txt │ │ └── XboxNetApiSvc.txt │ ├── dbupdate.txt │ ├── dbupdatem.txt │ ├── gupdate.txt │ ├── gupdatem.txt │ └── rpcapd.txt ├── UevAgentService.txt ├── VMWare │ ├── VGAuthService.txt │ ├── VMAuthdService.txt │ ├── VMTools.txt │ ├── VMUSBArbService.txt │ ├── VMnetDHCP.txt │ ├── VMware NAT Service.txt │ ├── VMware Physical Disk Helper Service.txt │ ├── VMwareHostd.txt │ ├── readme │ └── vmvss.txt ├── WinRT │ ├── AppXSvc.txt │ ├── BrokerInfrastructure.txt │ ├── CDPUserSvc.txt │ ├── ClipSVC.txt │ ├── CoreMessagingRegistrar.txt │ ├── DevQueryBroker.txt │ ├── DsSvc.txt │ ├── MessagingService.txt │ ├── NcbService.txt │ ├── OneSyncSvc.txt │ ├── PimIndexMaintenanceSvc.txt │ ├── StateRepository.txt │ ├── SystemEventsBroker.txt │ ├── TimeBrokerSvc.txt │ ├── UnistoreSvc.txt │ ├── UserDataSvc.txt │ ├── WSService.txt │ ├── WpnService.txt │ ├── WpnUserService.txt │ ├── tiledatamodelsvc.txt │ └── wlidsvc.txt ├── Windows Update │ ├── AppMgmt.lnk │ ├── AppReadiness.lnk │ ├── BITS.txt │ ├── DsmSvc.lnk │ ├── InstallService.txt │ ├── TrustedInstaller.txt │ ├── UsoSvc.txt │ ├── dosvc.txt │ ├── msiserver.txt │ ├── readme │ └── wuauserv.txt └── cbdhsvc.txt ├── WnfStateNames.txt └── readme.md /.hgignore: -------------------------------------------------------------------------------- 1 | syntax:glob 2 | 3 | # Object files 4 | *.dcu 5 | *.obj 6 | *.dcuil 7 | 8 | # Map files 9 | *.map 10 | *.tds 11 | *.rsm 12 | *.dsm 13 | 14 | # Don't import tlbs, import idls from which they're generated 15 | *.tlb 16 | 17 | # Delphi history 18 | __history 19 | ~history 20 | *.~* 21 | 22 | # Cache/temp/local files 23 | *.local 24 | *.identcache 25 | *.drc 26 | *.cbk 27 | *.dsk 28 | Profiling 29 | Dcu 30 | 31 | # Log files (no need to version these) 32 | *.log 33 | *.Log 34 | 35 | # Projects are stored now 36 | # *.groupproj 37 | # *.dproj 38 | 39 | # Older projects are not stored 40 | *.bdsgroup 41 | *.bdsproj 42 | *.bpg 43 | 44 | # *.res files are mostly auto-regenerated, 45 | # so ignore unless explicitly asked to store, to avoid confusion. 46 | *.res 47 | 48 | # Other permanent stuff we don't save 49 | dunit.ini 50 | *.vlb 51 | *.dof 52 | 53 | # Windows junk 54 | */*/Thumbs.db 55 | 56 | # Binaries 57 | *.dpl 58 | *.bpl 59 | *.dcp 60 | *.dcpil 61 | 62 | # Release 63 | *.exe 64 | *.lay 65 | *.pkg 66 | *.uni 67 | *.CHK 68 | *.chr 69 | *.dic 70 | *.edc 71 | *.res 72 | Project/Win32* 73 | Project/Win64* -------------------------------------------------------------------------------- /Assets/.readme.txt: -------------------------------------------------------------------------------- 1 | Assets used: 2 | * fatcows icon pack 3 | * famfamfam-mini icon pack -------------------------------------------------------------------------------- /Assets/action_go.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/action_go.bmp -------------------------------------------------------------------------------- /Assets/action_go.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/action_go.gif -------------------------------------------------------------------------------- /Assets/action_stop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/action_stop.bmp -------------------------------------------------------------------------------- /Assets/action_stop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/action_stop.gif -------------------------------------------------------------------------------- /Assets/bullet_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/bullet_server.png -------------------------------------------------------------------------------- /Assets/bullet_user.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/bullet_user.ico -------------------------------------------------------------------------------- /Assets/disconnect.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/disconnect.ico -------------------------------------------------------------------------------- /Assets/disconnect_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/disconnect_16.png -------------------------------------------------------------------------------- /Assets/firewall.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/firewall.ico -------------------------------------------------------------------------------- /Assets/firewall_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/firewall_16.png -------------------------------------------------------------------------------- /Assets/ip.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/ip.ico -------------------------------------------------------------------------------- /Assets/ip_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/ip_16.png -------------------------------------------------------------------------------- /Assets/lightning.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/lightning.ico -------------------------------------------------------------------------------- /Assets/lightning_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/lightning_16.png -------------------------------------------------------------------------------- /Assets/network_adapter.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_adapter.ico -------------------------------------------------------------------------------- /Assets/network_adapter_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_adapter_16.png -------------------------------------------------------------------------------- /Assets/network_cloud.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_cloud.ico -------------------------------------------------------------------------------- /Assets/network_cloud_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_cloud_16.png -------------------------------------------------------------------------------- /Assets/network_clouds.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_clouds.ico -------------------------------------------------------------------------------- /Assets/network_clouds_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_clouds_16.png -------------------------------------------------------------------------------- /Assets/network_ethernet.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_ethernet.ico -------------------------------------------------------------------------------- /Assets/network_ethernet_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_ethernet_16.png -------------------------------------------------------------------------------- /Assets/network_firewall.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_firewall.ico -------------------------------------------------------------------------------- /Assets/network_firewall_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_firewall_16.png -------------------------------------------------------------------------------- /Assets/network_ip.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_ip.ico -------------------------------------------------------------------------------- /Assets/network_ip_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/network_ip_16.png -------------------------------------------------------------------------------- /Assets/pci.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/pci.ico -------------------------------------------------------------------------------- /Assets/pci_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/pci_16.png -------------------------------------------------------------------------------- /Assets/report.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/report.ico -------------------------------------------------------------------------------- /Assets/report_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/report_16.png -------------------------------------------------------------------------------- /Assets/script_yellow.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow.ico -------------------------------------------------------------------------------- /Assets/script_yellow_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow_16.png -------------------------------------------------------------------------------- /Assets/script_yellow_computer_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow_computer_16.png -------------------------------------------------------------------------------- /Assets/script_yellow_server2_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow_server2_16.png -------------------------------------------------------------------------------- /Assets/script_yellow_server_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow_server_16.png -------------------------------------------------------------------------------- /Assets/script_yellow_user_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/script_yellow_user_16.png -------------------------------------------------------------------------------- /Assets/shield.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Assets/shield.bmp -------------------------------------------------------------------------------- /Docs/readme.md: -------------------------------------------------------------------------------- 1 | Viper features 2 | ============== 3 | 4 | * Start, stop or reconfigure multiple services at once 5 | * Change start mode from right-click menu 6 | 7 | ![](screenshots/main03.png) 8 | 9 | * Quicksearch - filter as you type 10 | 11 | ![](screenshots/qfilter.png) 12 | 13 | * Colors - customize how services look in different states 14 | 15 | ![](screenshots/colors1.png) 16 | 17 | * Soft refresh - update service list without losing the context 18 | 19 | * Drivers can be shown alongside services 20 | 21 | ![](screenshots/drivers1.png) 22 | 23 | Security editor 24 | --------------- 25 | 26 | * Change service access permissions 27 | 28 | * Unlock protected services with one click 29 | 30 | ![](screenshots/security2.png) 31 | 32 | 33 | Service triggers 34 | ---------------- 35 | 36 | * Service triggers in the bottom pane - with user-friendly names where possible. 37 | 38 | ![](screenshots/triggers2.png) 39 | 40 | * Triggers are reflected in the list 41 | 42 | ![](screenshots/triggers1.png) 43 | 44 | * Trigger browser is also available 45 | 46 | ![](screenshots/triggers3.png) 47 | 48 | 49 | Categories 50 | ---------- 51 | 52 | * Group your services as you see fit 53 | 54 | * Drag and drop services between folders 55 | 56 | * Rename your services without affecting their Windows registration data. 57 | 58 | ![](screenshots/rename1.png) 59 | 60 | * Write custom user-defined notes 61 | 62 | ![](screenshots/notes1.png) 63 | 64 | 65 | Management 66 | ------------ 67 | 68 | * Save and load services auto-start configuration 69 | 70 | ![](screenshots/restoreconf1.png) 71 | 72 | * Export the service and/or delete it 73 | -------------------------------------------------------------------------------- /Docs/screenshots/colors1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/colors1.png -------------------------------------------------------------------------------- /Docs/screenshots/drivers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/drivers1.png -------------------------------------------------------------------------------- /Docs/screenshots/main01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/main01.png -------------------------------------------------------------------------------- /Docs/screenshots/main03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/main03.png -------------------------------------------------------------------------------- /Docs/screenshots/main05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/main05.png -------------------------------------------------------------------------------- /Docs/screenshots/notes1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/notes1.png -------------------------------------------------------------------------------- /Docs/screenshots/qfilter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/qfilter.png -------------------------------------------------------------------------------- /Docs/screenshots/rename1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/rename1.png -------------------------------------------------------------------------------- /Docs/screenshots/restoreconf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/restoreconf1.png -------------------------------------------------------------------------------- /Docs/screenshots/security2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/security2.png -------------------------------------------------------------------------------- /Docs/screenshots/triggers1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/triggers1.png -------------------------------------------------------------------------------- /Docs/screenshots/triggers2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/triggers2.png -------------------------------------------------------------------------------- /Docs/screenshots/triggers3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Docs/screenshots/triggers3.png -------------------------------------------------------------------------------- /Forms/Viper.DependencyList.dfm: -------------------------------------------------------------------------------- 1 | inherited DependencyList: TDependencyList 2 | end 3 | -------------------------------------------------------------------------------- /Forms/Viper.MainTriggerList.dfm: -------------------------------------------------------------------------------- 1 | inherited MainTriggerList: TMainTriggerList 2 | inherited Tree: TVirtualStringTree 3 | Columns = < 4 | item 5 | Position = 0 6 | Width = 236 7 | WideText = 'Trigger' 8 | end 9 | item 10 | Position = 1 11 | Width = 100 12 | WideText = 'Action' 13 | end 14 | item 15 | Position = 2 16 | Width = 150 17 | WideText = 'Service' 18 | end 19 | item 20 | Position = 3 21 | Width = 300 22 | WideText = 'Params' 23 | end> 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /Forms/Viper.RestoreServiceConfig.dfm: -------------------------------------------------------------------------------- 1 | object RestoreServiceConfigForm: TRestoreServiceConfigForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsDialog 5 | Caption = 'Restore Service Config' 6 | ClientHeight = 308 7 | ClientWidth = 386 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poOwnerFormCenter 16 | OnDestroy = FormDestroy 17 | OnShow = FormShow 18 | DesignSize = ( 19 | 386 20 | 308) 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | object Label1: TLabel 24 | Left = 8 25 | Top = 8 26 | Width = 355 27 | Height = 26 28 | Caption = 29 | 'You are ready to restore the startup configuration for the follo' + 30 | 'wing list of services:' 31 | WordWrap = True 32 | end 33 | object Label2: TLabel 34 | Left = 8 35 | Top = 244 36 | Width = 121 37 | Height = 13 38 | Anchors = [akLeft, akBottom] 39 | Caption = 'Do you want to proceed?' 40 | end 41 | object lbList: TListBox 42 | Left = 8 43 | Top = 40 44 | Width = 370 45 | Height = 198 46 | Anchors = [akLeft, akTop, akRight, akBottom] 47 | ItemHeight = 13 48 | TabOrder = 0 49 | end 50 | object btnOK: TButton 51 | Left = 222 52 | Top = 275 53 | Width = 75 54 | Height = 25 55 | Anchors = [akRight, akBottom] 56 | Caption = 'OK' 57 | Default = True 58 | TabOrder = 1 59 | OnClick = btnOKClick 60 | end 61 | object btnCancel: TButton 62 | Left = 303 63 | Top = 275 64 | Width = 75 65 | Height = 25 66 | Anchors = [akRight, akBottom] 67 | Cancel = True 68 | Caption = 'Cancel' 69 | TabOrder = 2 70 | OnClick = btnCancelClick 71 | end 72 | end 73 | -------------------------------------------------------------------------------- /Forms/Viper.RichEditEx.dfm: -------------------------------------------------------------------------------- 1 | object RichEditFrame: TRichEditFrame 2 | Left = 0 3 | Top = 0 4 | Width = 320 5 | Height = 240 6 | TabOrder = 0 7 | object mmNotes: TRichEdit 8 | Left = 0 9 | Top = 0 10 | Width = 320 11 | Height = 240 12 | Align = alClient 13 | BevelInner = bvNone 14 | BevelOuter = bvNone 15 | BorderStyle = bsNone 16 | Color = clBtnFace 17 | ReadOnly = True 18 | ScrollBars = ssVertical 19 | TabOrder = 0 20 | ExplicitLeft = -529 21 | ExplicitTop = 70 22 | ExplicitWidth = 849 23 | ExplicitHeight = 138 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /Forms/Viper.RichEditEx.pas: -------------------------------------------------------------------------------- 1 | unit Viper.RichEditEx; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, 7 | Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls; 8 | 9 | type 10 | TRichEditFrame = class(TFrame) 11 | mmNotes: TRichEdit; 12 | protected 13 | procedure CreateWnd; override; 14 | procedure WmNotify(var Msg: TWMNotify); message WM_NOTIFY; 15 | end; 16 | 17 | implementation 18 | uses RichEdit, ShellUtils; 19 | 20 | {$R *.dfm} 21 | 22 | procedure TRichEditFrame.CreateWnd; 23 | var mask: Integer; 24 | begin 25 | inherited; 26 | mask := SendMessage(mmNotes.Handle, EM_GETEVENTMASK, 0, 0); 27 | SendMessage(mmNotes.Handle, EM_SETEVENTMASK, 0, mask or ENM_LINK); 28 | SendMessage(mmNotes.Handle, EM_AUTOURLDETECT, Integer(True), 0); 29 | end; 30 | 31 | procedure TRichEditFrame.WmNotify(var Msg: TWMNotify); 32 | var p: TENLink; 33 | strURL: string; 34 | begin 35 | if Msg.NMHdr^.code = EN_LINK then begin 36 | p := TENLink(Pointer(TWMNotify(Msg).NMHdr)^); 37 | if p.msg = WM_LBUTTONDOWN then begin 38 | SendMessage(mmNotes.Handle, EM_EXSETSEL, 0, LongInt(@(p.chrg))); 39 | strURL := mmNotes.SelText; 40 | ShellUtils.ShellOpen(strURL); //could've also just called some event 41 | end 42 | end; 43 | inherited; 44 | end; 45 | 46 | 47 | end. 48 | -------------------------------------------------------------------------------- /Forms/Viper.ScheduledTasks.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Forms/Viper.ScheduledTasks.pas -------------------------------------------------------------------------------- /Forms/Viper.ScheduledTasksMain.dfm: -------------------------------------------------------------------------------- 1 | inherited ScheduledTasksMainForm: TScheduledTasksMainForm 2 | end 3 | -------------------------------------------------------------------------------- /Forms/Viper.ScheduledTasksMain.pas: -------------------------------------------------------------------------------- 1 | unit Viper.ScheduledTasksMain; 2 | { 3 | Inherits from common ScheduledTasksForm to add application-wide functionality. 4 | } 5 | 6 | interface 7 | 8 | uses 9 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Viper.ScheduledTasks, Viper.MainForm; 10 | 11 | type 12 | TScheduledTasksMainForm = class(TScheduledTasksForm) 13 | public 14 | constructor Create(AOwner: TComponent); override; 15 | destructor Destroy; override; 16 | protected 17 | procedure UMClear(var Message: TMessage); message UM_CLEAR; 18 | procedure UMRefresh(var Message: TMessage); message UM_REFRESH; 19 | procedure UMQuickFilterChanged(var Message: TMessage); message UM_QUICKFILTER_CHANGED; 20 | procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED; 21 | procedure ViewOnActivate; 22 | procedure ViewOnDeactivate; 23 | end; 24 | 25 | var 26 | ScheduledTasksMainForm: TScheduledTasksMainForm; 27 | 28 | 29 | implementation 30 | uses Menus, Winapi.WinSvc; 31 | 32 | {$R *.dfm} 33 | 34 | constructor TScheduledTasksMainForm.Create(AOwner: TComponent); 35 | var mi: TMenuItem; 36 | begin 37 | inherited; 38 | MainForm.RegisterView(Self); 39 | 40 | mi := TMenuItem.Create(nil); 41 | mi.Caption := '-'; 42 | MainForm.miTools.Add(mi); 43 | 44 | mi := TMenuItem.Create(nil); 45 | mi.Action := aOpenSchedulerRegistry; 46 | MainForm.miTools.Add(mi); 47 | 48 | mi := TMenuItem.Create(nil); 49 | mi.Action := aOpenSchedulerFolder; 50 | MainForm.miTools.Add(mi); 51 | 52 | mi := TMenuItem.Create(nil); 53 | mi.Action := aOpenSchedulerMMC; 54 | MainForm.miTools.Add(mi); 55 | end; 56 | 57 | destructor TScheduledTasksMainForm.Destroy; 58 | begin 59 | MainForm.UnregisterView(Self); 60 | inherited; 61 | end; 62 | 63 | procedure TScheduledTasksMainForm.CMShowingChanged(var Message: TMessage); 64 | begin 65 | if Self.Showing then 66 | Self.ViewOnActivate 67 | else 68 | Self.ViewOnDeactivate; 69 | inherited; 70 | end; 71 | 72 | procedure TScheduledTasksMainForm.ViewOnActivate; 73 | begin 74 | //Self.Reload; 75 | //MainForm.SetDetailsPaneFocusedService(Self.GetFocusedService); 76 | end; 77 | 78 | procedure TScheduledTasksMainForm.ViewOnDeactivate; 79 | begin 80 | end; 81 | 82 | procedure TScheduledTasksMainForm.UMClear(var Message: TMessage); 83 | begin 84 | Self.Clear; 85 | end; 86 | 87 | procedure TScheduledTasksMainForm.UMRefresh(var Message: TMessage); 88 | begin 89 | if not Self.Visible then exit; 90 | Self.Reload; 91 | // Self.FilterTriggers; 92 | end; 93 | 94 | procedure TScheduledTasksMainForm.UMQuickFilterChanged(var Message: TMessage); 95 | begin 96 | // Self.FilterTriggers; 97 | end; 98 | 99 | { 100 | procedure TScheduledTasksMainForm.FilterTriggers(); 101 | begin 102 | //If it's invisible it's going to be filtered when it's reloaded 103 | if not Self.Visible then exit; 104 | Self.ApplyFilter(FilterTriggers_Callback, nil); 105 | end; 106 | 107 | procedure TScheduledTasksMainForm.FilterTriggers_Callback(Sender: TBaseVirtualTree; Node: PVirtualNode; Data: Pointer; var Abort: Boolean); 108 | var triggerData: PNdTriggerFacet; 109 | svc: TExtServiceEntry; 110 | isService: boolean; 111 | isVisible: boolean; 112 | filterText: string; 113 | begin 114 | triggerData := Sender.GetNodeData(Node); 115 | 116 | svc := TExtServiceEntry(MainForm.Services.Find(triggerData.Trigger.ServiceName)); 117 | if svc = nil then begin 118 | //Maybe someone created a service while we weren't reloading? Show for now. 119 | Sender.IsVisible[Node] := true; 120 | exit; 121 | end; 122 | 123 | isService := (svc.Status.dwServiceType and SERVICE_WIN32 <> 0); 124 | isVisible := true; 125 | 126 | //Filter out drivers if disabled 127 | if not MainForm.aShowDrivers.Checked and not isService then 128 | isVisible := false; 129 | 130 | //Quickfilter 131 | filterText := AnsiLowerCase(string(MainForm.QuickFilter).Trim()); 132 | if filterText <> '' then 133 | if not AnsiLowerCase(svc.ServiceName).Contains(filterText) 134 | and not AnsiLowerCase(svc.DisplayName).Contains(filterText) 135 | and not AnsiLowerCase(triggerData.Description).Contains(filterText) 136 | and not AnsiLowerCase(triggerData.Params).Contains(filterText) 137 | and not AnsiLowerCase(TriggerActionToString(triggerData.Action)).Contains(filterText) then 138 | isVisible := false; 139 | 140 | Sender.IsVisible[Node] := isVisible; 141 | end; 142 | } 143 | 144 | 145 | end. 146 | -------------------------------------------------------------------------------- /Forms/Viper.ServiceEdit.pas: -------------------------------------------------------------------------------- 1 | unit Viper.ServiceEdit; 2 | { 3 | A form to view/edit certain service parameters. 4 | Works on any TServiceEntry descendant. Tries to be smart and update things 5 | in batches. 6 | } 7 | 8 | interface 9 | 10 | uses 11 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 12 | Dialogs, ComCtrls, ExtCtrls, StdCtrls, SvcEntry; 13 | 14 | type 15 | TServiceEditForm = class(TForm) 16 | pnlFooter: TPanel; 17 | pcPages: TPageControl; 18 | tsGeneral: TTabSheet; 19 | btnOk: TButton; 20 | btnCancel: TButton; 21 | btnApply: TButton; 22 | edtServiceDLL: TEdit; 23 | cbServiceDllUnloadOnStop: TCheckBox; 24 | edtServiceMain: TEdit; 25 | lblServiceMain: TLabel; 26 | lblServiceDLL: TLabel; 27 | lblExecutableFile: TLabel; 28 | edtExecutableFile: TEdit; 29 | edtDescription: TMemo; 30 | lblDescription: TLabel; 31 | lblDisplayName: TLabel; 32 | edtDisplayName: TEdit; 33 | edtServiceName: TEdit; 34 | lblServiceName: TLabel; 35 | lblServiceType: TLabel; 36 | cbServiceType: TComboBox; 37 | procedure FormShow(Sender: TObject); 38 | procedure btnApplyClick(Sender: TObject); 39 | procedure btnOkClick(Sender: TObject); 40 | protected 41 | FService: TServiceEntry; 42 | procedure Reload; 43 | 44 | protected 45 | FHasChanges: boolean; 46 | procedure SetHasChanges(const AValue: boolean); 47 | procedure SaveChanges; 48 | 49 | public 50 | class function EditService(AOwner: TComponent; const AService: TServiceEntry): TModalResult; 51 | property HasChanges: boolean read FHasChanges write SetHasChanges; 52 | 53 | end; 54 | 55 | var 56 | ServiceEditForm: TServiceEditForm; 57 | 58 | implementation 59 | 60 | {$R *.dfm} 61 | 62 | { 63 | SERVICE_KERNEL_DRIVER = $00000001; 64 | SERVICE_FILE_SYSTEM_DRIVER = $00000002; 65 | SERVICE_ADAPTER = $00000004; 66 | SERVICE_RECOGNIZER_DRIVER = $00000008; 67 | SERVICE_DRIVER = (SERVICE_KERNEL_DRIVER or 68 | SERVICE_FILE_SYSTEM_DRIVER or 69 | SERVICE_RECOGNIZER_DRIVER); 70 | 71 | SERVICE_WIN32_OWN_PROCESS = $00000010; 72 | SERVICE_WIN32_SHARE_PROCESS = $00000020; 73 | SERVICE_WIN32 = (SERVICE_WIN32_OWN_PROCESS or 74 | SERVICE_WIN32_SHARE_PROCESS); 75 | 76 | SERVICE_INTERACTIVE_PROCESS = $00000100; 77 | 78 | SERVICE_USER_SERVICE = $00000040; //set for user service prototypes AND instances 79 | SERVICE_USERSERVICE_INSTANCE = $00000080; //set only for instances 80 | 81 | SERVICE_USER_SHARE_PROCESS = (SERVICE_USER_SERVICE or 82 | SERVICE_WIN32_SHARE_PROCESS); 83 | SERVICE_USER_OWN_PROCESS = (SERVICE_USER_SERVICE or 84 | SERVICE_WIN32_OWN_PROCESS); 85 | 86 | SERVICE_INTERACTIVE_PROCESS = $00000100; 87 | SERVICE_PKG_SERVICE = $00000200; 88 | 89 | Kernel driver 90 | File system driver 91 | Recognizer driver 92 | Adapter 93 | 94 | Service (standalone) 95 | Service (shared) 96 | 97 | [ ] Interactive 98 | [ ] Per-user 99 | 100 | 101 | } 102 | 103 | 104 | class function TServiceEditForm.EditService(AOwner: TComponent; const AService: TServiceEntry): TModalResult; 105 | var Instance: TServiceEditForm; 106 | begin 107 | Instance := TServiceEditForm.Create(AOwner); 108 | try 109 | Instance.FService := AService; 110 | Result := Instance.ShowModal; 111 | finally 112 | FreeAndNil(Instance); 113 | end; 114 | end; 115 | 116 | procedure TServiceEditForm.FormShow(Sender: TObject); 117 | begin 118 | Self.Reload; 119 | end; 120 | 121 | //Reloads all data from FService and discards any changes 122 | procedure TServiceEditForm.Reload; 123 | var ii: TServiceImageInformation; 124 | begin 125 | edtServiceName.Text := FService.ServiceName; 126 | edtDisplayName.Text := FService.DisplayName; 127 | edtDescription.Text := FService.Description; 128 | 129 | ii := FService.ImageInformation; 130 | edtExecutableFile.Text := ii.ImagePath; 131 | edtServiceDLL.Text := ii.ServiceDll; 132 | 133 | Self.HasChanges := false; 134 | end; 135 | 136 | procedure TServiceEditForm.SetHasChanges(const AValue: boolean); 137 | begin 138 | FHasChanges := AValue; 139 | Self.btnApply.Enabled := AValue; 140 | end; 141 | 142 | procedure TServiceEditForm.btnApplyClick(Sender: TObject); 143 | begin 144 | SaveChanges; 145 | end; 146 | 147 | procedure TServiceEditForm.btnOkClick(Sender: TObject); 148 | begin 149 | SaveChanges; 150 | ModalResult := mrOk; 151 | end; 152 | 153 | procedure TServiceEditForm.SaveChanges; 154 | begin 155 | //TODO: Save changes. 156 | Self.HasChanges := false; 157 | end; 158 | 159 | 160 | 161 | end. 162 | -------------------------------------------------------------------------------- /Forms/Viper.ServiceTriggerList.dfm: -------------------------------------------------------------------------------- 1 | inherited ServiceTriggerList: TServiceTriggerList 2 | inherited PopupMenu: TPopupMenu 3 | object miAddTrigger: TMenuItem [0] 4 | Action = aAddTrigger 5 | end 6 | inherited miImportTrigger: TMenuItem [1] 7 | end 8 | object N1: TMenuItem [2] 9 | Caption = '-' 10 | end 11 | inherited miCopy: TMenuItem [3] 12 | end 13 | inherited miEditTrigger: TMenuItem [4] 14 | end 15 | inherited miEnableTrigger: TMenuItem [5] 16 | end 17 | inherited miExportTrigger: TMenuItem [6] 18 | end 19 | object miExportAllTriggers: TMenuItem [7] 20 | Action = aExportAllTriggers 21 | end 22 | inherited miDisableTrigger: TMenuItem [8] 23 | end 24 | inherited miDeleteTrigger: TMenuItem [9] 25 | end 26 | inherited N2: TMenuItem [10] 27 | Visible = False 28 | end 29 | end 30 | inherited ActionList: TActionList 31 | object aAddTrigger: TAction [10] 32 | Category = 'Modify' 33 | Caption = 'Add...' 34 | OnExecute = aAddTriggerExecute 35 | end 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /Forms/Viper.ServiceTriggerList.pas: -------------------------------------------------------------------------------- 1 | unit Viper.ServiceTriggerList; 2 | { 3 | Trigger list for a particular service only. 4 | } 5 | 6 | interface 7 | 8 | uses 9 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, 10 | VirtualTrees, ImgList, WinSvc, ServiceHelper, Vcl.Menus, System.Actions, Vcl.ActnList, 11 | TriggerUtils, Viper.TriggerList, Vcl.ExtCtrls; 12 | 13 | type 14 | TServiceTriggerList = class(TTriggerList) 15 | miAddTrigger: TMenuItem; 16 | N1: TMenuItem; 17 | aAddTrigger: TAction; 18 | miExportAllTriggers: TMenuItem; 19 | procedure aAddTriggerExecute(Sender: TObject); 20 | procedure TreeChange(Sender: TBaseVirtualTree; Node: PVirtualNode); 21 | procedure aImportTriggerExecute(Sender: TObject); 22 | protected 23 | //We need to be able to reload and edit 24 | FServiceName: string; 25 | FScmHandle: SC_HANDLE; 26 | FServiceHandle: SC_HANDLE; 27 | FOwnsServiceHandle: boolean; 28 | public 29 | procedure Initialize; 30 | destructor Destroy; override; 31 | procedure SetService(ServiceName: string; ServiceHandle: SC_HANDLE = 0); 32 | procedure Reload; override; 33 | end; 34 | 35 | var 36 | ServiceTriggerList: TServiceTriggerList; 37 | 38 | implementation 39 | uses UITypes, TriggerExport, Viper.TriggerEditor, Viper.TriggerImport; 40 | 41 | {$R *.dfm} 42 | 43 | procedure TServiceTriggerList.Initialize; 44 | begin 45 | //Hide service name column and move action column to the first place 46 | //We can't put this in Create because this needs to happen after the property loading. 47 | Self.Tree.Header.Columns[Self.colService].Options := 48 | Self.Tree.Header.Columns[Self.colService].Options - [coVisible]; 49 | Self.Tree.Header.Columns[Self.colAction].Position := 0; 50 | end; 51 | 52 | destructor TServiceTriggerList.Destroy; 53 | begin 54 | //Free service handle if we own it: 55 | SetService('', 0); 56 | inherited; 57 | end; 58 | 59 | procedure TServiceTriggerList.SetService(ServiceName: string; ServiceHandle: SC_HANDLE = 0); 60 | begin 61 | if Self.FServiceHandle <> 0 then begin 62 | if Self.FOwnsServiceHandle then begin 63 | CloseServiceHandle(Self.FServiceHandle); 64 | CloseServiceHandle(Self.FScmHandle); 65 | end; 66 | Self.FServiceHandle := 0; 67 | Self.FScmHandle := 0; 68 | end; 69 | 70 | Self.FServiceName := ServiceName; 71 | if FServiceName = '' then begin 72 | Self.FServiceHandle := 0; 73 | Self.FOwnsServiceHandle := false; 74 | end else 75 | if ServiceHandle <> 0 then begin 76 | Self.FServiceHandle := ServiceHandle; 77 | Self.FOwnsServiceHandle := false; 78 | end else begin 79 | OpenScmAndService(Self.FScmHandle, Self.FServiceHandle, ServiceName); 80 | Self.FOwnsServiceHandle := true; 81 | end; 82 | 83 | //Do reload even if service==nil because we need to update popup commands 84 | Reload; 85 | end; 86 | 87 | procedure TServiceTriggerList.Reload; 88 | begin 89 | Clear; 90 | 91 | //Here we need triggers for exactly one service 92 | if FServiceName <> '' then 93 | LoadTriggersForService(FServiceName, FServiceHandle); 94 | 95 | //Reset the popup menu 96 | //We'd like to put this into FormCreate, but there's no FormCreates for TFrames. 97 | TreeChange(Tree, nil); 98 | end; 99 | 100 | procedure TServiceTriggerList.TreeChange(Sender: TBaseVirtualTree; 101 | Node: PVirtualNode); 102 | var HaveService: boolean; 103 | begin 104 | inherited; 105 | HaveService := Self.FServiceName <> ''; 106 | aAddTrigger.Visible := HaveService; 107 | aImportTrigger.Visible := HaveService; 108 | end; 109 | 110 | procedure TServiceTriggerList.aAddTriggerExecute(Sender: TObject); 111 | var EditForm: TTriggerEditorForm; 112 | TriggerData: PSERVICE_TRIGGER; 113 | begin 114 | EditForm := TTriggerEditorForm.Create(Self); 115 | try 116 | TriggerData := nil; 117 | if not IsPositiveResult(EditForm.EditTrigger(TriggerData)) 118 | or (TriggerData = nil) //safety 119 | then exit; 120 | finally 121 | FreeAndNil(EditForm); 122 | end; 123 | 124 | //Add the given trigger 125 | try 126 | //We only have a handle with read access, so reopen 127 | with OpenService2(Self.FServiceName, 128 | STANDARD_RIGHTS_REQUIRED or SC_MANAGER_CONNECT, 129 | SERVICE_QUERY_CONFIG or SERVICE_CHANGE_CONFIG) do 130 | begin 131 | AddServiceTriggers(SvcHandle, [TriggerData^]); 132 | TriggerUtils.TriggerListChanged(Self, Self.FServiceName); 133 | end; 134 | finally 135 | FreeMem(TriggerData); 136 | end; 137 | 138 | //Reload the triggers 139 | //We could just parse the newly created trigger, but lets KISS for now 140 | Self.Reload; 141 | end; 142 | 143 | procedure TServiceTriggerList.aImportTriggerExecute(Sender: TObject); 144 | begin 145 | //Single trigger version 146 | Self.TryImportTriggers(Self.FServiceName); 147 | end; 148 | 149 | 150 | end. 151 | -------------------------------------------------------------------------------- /Forms/Viper.Settings.dfm: -------------------------------------------------------------------------------- 1 | object SettingsForm: TSettingsForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Settings' 5 | ClientHeight = 124 6 | ClientWidth = 348 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poOwnerFormCenter 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | DesignSize = ( 18 | 348 19 | 124) 20 | PixelsPerInch = 96 21 | TextHeight = 13 22 | object lblPortableModeDesc: TLabel 23 | Left = 16 24 | Top = 31 25 | Width = 324 26 | Height = 26 27 | Anchors = [akLeft, akTop, akRight] 28 | AutoSize = False 29 | Caption = 30 | 'If set, settings will be stored in an ini file in the applicatio' + 31 | 'n folder.' 32 | WordWrap = True 33 | end 34 | object cbPortableMode: TCheckBox 35 | Left = 8 36 | Top = 8 37 | Width = 332 38 | Height = 17 39 | Anchors = [akLeft, akTop, akRight] 40 | Caption = 'Store settings in a portable way' 41 | TabOrder = 0 42 | end 43 | object btnCancel: TButton 44 | Left = 265 45 | Top = 91 46 | Width = 75 47 | Height = 25 48 | Anchors = [akRight, akBottom] 49 | Cancel = True 50 | Caption = 'Cancel' 51 | TabOrder = 2 52 | OnClick = btnCancelClick 53 | end 54 | object btnOk: TButton 55 | Left = 184 56 | Top = 91 57 | Width = 75 58 | Height = 25 59 | Anchors = [akRight, akBottom] 60 | Caption = 'OK' 61 | Default = True 62 | TabOrder = 1 63 | OnClick = btnOkClick 64 | end 65 | end 66 | -------------------------------------------------------------------------------- /Forms/Viper.StyleEdit.dfm: -------------------------------------------------------------------------------- 1 | object StyleEditForm: TStyleEditForm 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsDialog 5 | Caption = 'Style editor' 6 | ClientHeight = 199 7 | ClientWidth = 290 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poOwnerFormCenter 16 | DesignSize = ( 17 | 290 18 | 199) 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | object lblBgColor: TLabel 22 | Left = 8 23 | Top = 11 24 | Width = 60 25 | Height = 13 26 | Caption = 'Background:' 27 | end 28 | object lblFontColor: TLabel 29 | Left = 8 30 | Top = 41 31 | Width = 26 32 | Height = 13 33 | Caption = 'Font:' 34 | end 35 | object btnOk: TButton 36 | Left = 90 37 | Top = 166 38 | Width = 89 39 | Height = 25 40 | Anchors = [akRight, akBottom] 41 | Caption = 'OK' 42 | Default = True 43 | ModalResult = 1 44 | TabOrder = 0 45 | ExplicitLeft = 144 46 | ExplicitTop = 341 47 | end 48 | object btnCancel: TButton 49 | Left = 193 50 | Top = 166 51 | Width = 89 52 | Height = 25 53 | Anchors = [akRight, akBottom] 54 | Cancel = True 55 | Caption = 'Cancel' 56 | ModalResult = 2 57 | TabOrder = 1 58 | ExplicitLeft = 247 59 | ExplicitTop = 341 60 | end 61 | object cbBgColor: TColorBox 62 | Left = 111 63 | Top = 8 64 | Width = 171 65 | Height = 22 66 | Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbCustomColor, cbPrettyNames, cbCustomColors] 67 | Anchors = [akLeft, akTop, akRight] 68 | TabOrder = 2 69 | ExplicitWidth = 150 70 | end 71 | object cbFontColor: TColorBox 72 | Left = 111 73 | Top = 38 74 | Width = 171 75 | Height = 22 76 | Style = [cbStandardColors, cbExtendedColors, cbSystemColors, cbCustomColor, cbPrettyNames, cbCustomColors] 77 | Anchors = [akLeft, akTop, akRight] 78 | TabOrder = 3 79 | ExplicitWidth = 150 80 | end 81 | object cbBold: TCheckBox 82 | Left = 111 83 | Top = 66 84 | Width = 171 85 | Height = 17 86 | Anchors = [akLeft, akTop, akRight] 87 | Caption = 'Bold' 88 | TabOrder = 4 89 | ExplicitWidth = 150 90 | end 91 | object cbItalic: TCheckBox 92 | Left = 111 93 | Top = 89 94 | Width = 171 95 | Height = 17 96 | Anchors = [akLeft, akTop, akRight] 97 | Caption = 'Italic' 98 | TabOrder = 5 99 | ExplicitWidth = 150 100 | end 101 | object cbStrikeOut: TCheckBox 102 | Left = 111 103 | Top = 135 104 | Width = 171 105 | Height = 17 106 | Anchors = [akLeft, akTop, akRight] 107 | Caption = 'Strike-out' 108 | TabOrder = 7 109 | ExplicitWidth = 149 110 | end 111 | object cbUnderline: TCheckBox 112 | Left = 111 113 | Top = 112 114 | Width = 171 115 | Height = 17 116 | Anchors = [akLeft, akTop, akRight] 117 | Caption = 'Underline' 118 | TabOrder = 6 119 | ExplicitWidth = 149 120 | end 121 | end 122 | -------------------------------------------------------------------------------- /Forms/Viper.StyleEdit.pas: -------------------------------------------------------------------------------- 1 | unit Viper.StyleEdit; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls; 8 | 9 | type 10 | TStyleEditForm = class(TForm) 11 | btnOk: TButton; 12 | btnCancel: TButton; 13 | lblBgColor: TLabel; 14 | lblFontColor: TLabel; 15 | cbBgColor: TColorBox; 16 | cbFontColor: TColorBox; 17 | cbBold: TCheckBox; 18 | cbItalic: TCheckBox; 19 | cbStrikeOut: TCheckBox; 20 | cbUnderline: TCheckBox; 21 | protected 22 | function GetFontStyles: TFontStyles; 23 | procedure SetFontStyles(const Value: TFontStyles); 24 | public 25 | property FontStyles: TFontStyles read GetFontStyles write SetFontStyles; 26 | end; 27 | 28 | implementation 29 | 30 | {$R *.dfm} 31 | 32 | function TStyleEditForm.GetFontStyles: TFontStyles; 33 | begin 34 | Result := []; 35 | if cbBold.Checked then Result := Result + [fsBold]; 36 | if cbItalic.Checked then Result := Result + [fsItalic]; 37 | if cbUnderline.Checked then Result := Result + [fsUnderline]; 38 | if cbStrikeOut.Checked then Result := Result + [fsStrikeOut]; 39 | end; 40 | 41 | procedure TStyleEditForm.SetFontStyles(const Value: TFontStyles); 42 | begin 43 | cbBold.Checked := (fsBold in Value); 44 | cbItalic.Checked := (fsItalic in Value); 45 | cbUnderline.Checked := (fsUnderline in Value); 46 | cbStrikeOut.Checked := (fsStrikeOut in Value); 47 | end; 48 | 49 | end. 50 | -------------------------------------------------------------------------------- /Forms/Viper.TriggerDataItemEditor.dfm: -------------------------------------------------------------------------------- 1 | object TriggerDataItemEditor: TTriggerDataItemEditor 2 | Left = 0 3 | Top = 0 4 | BorderStyle = bsDialog 5 | Caption = 'Edit data item' 6 | ClientHeight = 123 7 | ClientWidth = 344 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'Tahoma' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | Position = poOwnerFormCenter 16 | OnCreate = FormCreate 17 | OnDestroy = FormDestroy 18 | DesignSize = ( 19 | 344 20 | 123) 21 | PixelsPerInch = 96 22 | TextHeight = 13 23 | object lblValue: TLabel 24 | Left = 8 25 | Top = 21 26 | Width = 30 27 | Height = 13 28 | Caption = 'Value:' 29 | end 30 | object lblDataType: TLabel 31 | Left = 8 32 | Top = 48 33 | Width = 52 34 | Height = 13 35 | Caption = 'Data type:' 36 | end 37 | object btnOk: TButton 38 | Left = 180 39 | Top = 90 40 | Width = 75 41 | Height = 25 42 | Anchors = [akRight, akBottom] 43 | Caption = 'OK' 44 | Default = True 45 | TabOrder = 2 46 | OnClick = btnOkClick 47 | ExplicitLeft = 208 48 | ExplicitTop = 172 49 | end 50 | object btnCancel: TButton 51 | Left = 261 52 | Top = 90 53 | Width = 75 54 | Height = 25 55 | Anchors = [akRight, akBottom] 56 | Cancel = True 57 | Caption = 'Cancel' 58 | ModalResult = 2 59 | TabOrder = 3 60 | ExplicitLeft = 289 61 | ExplicitTop = 172 62 | end 63 | object cbType: TComboBox 64 | Left = 180 65 | Top = 45 66 | Width = 156 67 | Height = 21 68 | Style = csDropDownList 69 | Anchors = [akTop, akRight] 70 | TabOrder = 1 71 | end 72 | object edtValue: TEdit 73 | Left = 56 74 | Top = 18 75 | Width = 280 76 | Height = 21 77 | Anchors = [akLeft, akTop, akRight] 78 | TabOrder = 0 79 | end 80 | end 81 | -------------------------------------------------------------------------------- /Forms/Viper.TriggerDataItemEditor.pas: -------------------------------------------------------------------------------- 1 | unit Viper.TriggerDataItemEditor; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 | Dialogs, StdCtrls, WinSvc; 8 | 9 | type 10 | TTriggerDataItemEditor = class(TForm) 11 | btnOk: TButton; 12 | btnCancel: TButton; 13 | lblValue: TLabel; 14 | lblDataType: TLabel; 15 | cbType: TComboBox; 16 | edtValue: TEdit; 17 | procedure FormCreate(Sender: TObject); 18 | procedure FormDestroy(Sender: TObject); 19 | procedure btnOkClick(Sender: TObject); 20 | protected 21 | FData: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM; 22 | procedure ReloadTypes; 23 | procedure LoadData; 24 | procedure SaveData; 25 | public 26 | function GetData: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM; 27 | procedure CopyData(const AData: PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM); 28 | 29 | end; 30 | 31 | var 32 | TriggerDataItemEditor: TTriggerDataItemEditor; 33 | 34 | implementation 35 | uses UniStrUtils, ServiceHelper, TriggerUtils; 36 | 37 | {$R *.dfm} 38 | 39 | procedure TTriggerDataItemEditor.FormCreate(Sender: TObject); 40 | begin 41 | ReloadTypes; 42 | FData.dwDataType := SERVICE_TRIGGER_DATA_TYPE_STRING; 43 | FData.cbData := 0; 44 | FData.pData := nil; 45 | LoadData; //load the default state in case we're called for new item 46 | end; 47 | 48 | procedure TTriggerDataItemEditor.FormDestroy(Sender: TObject); 49 | begin 50 | if FData.pData <> nil then 51 | Self.CopyData(nil); 52 | end; 53 | 54 | function TTriggerDataItemEditor.GetData: SERVICE_TRIGGER_SPECIFIC_DATA_ITEM; 55 | begin 56 | Result := FData; 57 | end; 58 | 59 | procedure TTriggerDataItemEditor.CopyData(const AData: PSERVICE_TRIGGER_SPECIFIC_DATA_ITEM); 60 | begin 61 | if FData.pData <> nil then 62 | FreeStandaloneTriggerDataItem(FData); 63 | 64 | if AData <> nil then 65 | FData := CopyTriggerDataItem(AData^); 66 | 67 | LoadData; 68 | end; 69 | 70 | procedure TTriggerDataItemEditor.ReloadTypes; 71 | begin 72 | cbType.Clear; 73 | cbType.AddItem(sTriggerDataTypeBinary, TObject(SERVICE_TRIGGER_DATA_TYPE_BINARY)); 74 | cbType.AddItem(sTriggerDataTypeString, TObject(SERVICE_TRIGGER_DATA_TYPE_STRING)); 75 | cbType.AddItem(sTriggerDataTypeLevel, TObject(SERVICE_TRIGGER_DATA_TYPE_LEVEL)); 76 | cbType.AddItem(sTriggerDataTypeKeywordAny, TObject(SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY)); 77 | cbType.AddItem(sTriggerDataTypeKeywordAll, TObject(SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL)); 78 | end; 79 | 80 | //Loads any values in the form from the associated FData structure. 81 | procedure TTriggerDataItemEditor.LoadData; 82 | var i, idx: integer; 83 | begin 84 | idx := -1; 85 | for i := 0 to cbType.Items.Count-1 do 86 | if cardinal(cbType.Items.Objects[i]) = FData.dwDataType then begin 87 | idx := i; 88 | break; 89 | end; 90 | if idx >= 0 then begin 91 | cbType.Style := csDropDownList; 92 | cbType.ItemIndex := idx; 93 | end else begin 94 | cbType.Style := csDropDown; 95 | cbType.Text := IntToStr(idx); 96 | end; 97 | 98 | case FData.dwDataType of 99 | SERVICE_TRIGGER_DATA_TYPE_STRING: edtValue.Text := FData.StringValue; 100 | SERVICE_TRIGGER_DATA_TYPE_LEVEL: edtValue.Text := IntToStr(FData.ByteValue); 101 | SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY: edtValue.Text := IntToHex(FData.Int64Value, 2); 102 | SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL: edtValue.Text := IntToHex(FData.Int64Value, 2); 103 | else 104 | //SERVICE_TRIGGER_DATA_TYPE_BINARY as well as any unknown types 105 | edtValue.Text := FData.HexValue; 106 | end; 107 | end; 108 | 109 | resourcestring 110 | sPleaseSelectDataType = 'Please select a data type'; 111 | 112 | //Verifies any values entered in the form and saves them into an associated FData structure. 113 | procedure TTriggerDataItemEditor.SaveData; 114 | var tmpInt: int64; 115 | begin 116 | //cbType can be in drop-down mode (the default) or free editing mode (if the data type was unusual) 117 | if cbType.ItemIndex >= 0 then 118 | FData.dwDataType := cardinal(cbType.Items.Objects[cbType.ItemIndex]) 119 | else 120 | if cbType.Style = csDropDownList then 121 | raise Exception.Create(sPleaseSelectDataType) 122 | else 123 | FData.dwDataType := StrToInt(cbType.Text); //free edited type must be int 124 | 125 | //Convert textual value into the appropriate data format 126 | //FData is allocated by us so can resize. 127 | case FData.dwDataType of 128 | SERVICE_TRIGGER_DATA_TYPE_STRING: FData.SetStringValue(edtValue.Text); 129 | SERVICE_TRIGGER_DATA_TYPE_LEVEL: begin 130 | tmpInt := StrToInt(edtValue.Text); 131 | if (tmpInt < 0) or (tmpInt > 255) then 132 | raise Exception.Create('Illegal value for a byte'); 133 | FData.SetByteValue(tmpInt); 134 | end; 135 | //The following two are edited as hex 136 | SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ANY: FData.SetInt64Value(StrToInt64('$'+edtValue.Text)); 137 | SERVICE_TRIGGER_DATA_TYPE_KEYWORD_ALL: FData.SetInt64Value(StrToInt64('$'+edtValue.Text)); 138 | else //Binary / unknown 139 | FData.SetHexValue(edtValue.Text); 140 | end; 141 | end; 142 | 143 | procedure TTriggerDataItemEditor.btnOkClick(Sender: TObject); 144 | begin 145 | SaveData; 146 | ModalResult := mrOk; 147 | end; 148 | 149 | end. 150 | -------------------------------------------------------------------------------- /Forms/Viper.TriggerImport.dfm: -------------------------------------------------------------------------------- 1 | object TriggerImportForm: TTriggerImportForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Import triggers' 5 | ClientHeight = 343 6 | ClientWidth = 517 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | Padding.Left = 5 14 | Padding.Top = 5 15 | Padding.Right = 5 16 | Padding.Bottom = 5 17 | OldCreateOrder = False 18 | Position = poOwnerFormCenter 19 | PixelsPerInch = 96 20 | TextHeight = 13 21 | object lblPrompt: TLabel 22 | AlignWithMargins = True 23 | Left = 8 24 | Top = 8 25 | Width = 501 26 | Height = 13 27 | Margins.Bottom = 9 28 | Align = alTop 29 | Caption = 'Choose triggers to import:' 30 | Font.Charset = DEFAULT_CHARSET 31 | Font.Color = clWindowText 32 | Font.Height = -11 33 | Font.Name = 'Tahoma' 34 | Font.Style = [fsBold] 35 | ParentFont = False 36 | ExplicitWidth = 148 37 | end 38 | object pnlButtons: TPanel 39 | AlignWithMargins = True 40 | Left = 5 41 | Top = 312 42 | Width = 507 43 | Height = 26 44 | Margins.Left = 0 45 | Margins.Top = 9 46 | Margins.Right = 0 47 | Margins.Bottom = 0 48 | Align = alBottom 49 | BevelOuter = bvNone 50 | TabOrder = 0 51 | DesignSize = ( 52 | 507 53 | 26) 54 | object btnOk: TButton 55 | Left = 348 56 | Top = 0 57 | Width = 75 58 | Height = 25 59 | Anchors = [akTop, akRight] 60 | Caption = 'Import' 61 | Default = True 62 | ModalResult = 1 63 | TabOrder = 0 64 | end 65 | object btnCancel: TButton 66 | Left = 429 67 | Top = 0 68 | Width = 75 69 | Height = 25 70 | Anchors = [akTop, akRight] 71 | Cancel = True 72 | Caption = 'Cancel' 73 | ModalResult = 2 74 | TabOrder = 1 75 | end 76 | end 77 | inline TriggerList: TTriggerImportList 78 | Left = 5 79 | Top = 30 80 | Width = 507 81 | Height = 273 82 | Align = alClient 83 | TabOrder = 1 84 | ExplicitLeft = 5 85 | ExplicitTop = 30 86 | ExplicitWidth = 507 87 | ExplicitHeight = 273 88 | inherited Tree: TVirtualStringTree 89 | Width = 507 90 | Height = 273 91 | ExplicitTop = 3 92 | ExplicitWidth = 507 93 | ExplicitHeight = 273 94 | end 95 | end 96 | end 97 | -------------------------------------------------------------------------------- /Forms/Viper.TriggerImportList.dfm: -------------------------------------------------------------------------------- 1 | inherited TriggerImportList: TTriggerImportList 2 | inherited Tree: TVirtualStringTree 3 | Header.Options = [hoColumnResize, hoDrag, hoShowSortGlyphs, hoVisible] 4 | PopupMenu = nil 5 | TreeOptions.MiscOptions = [toAcceptOLEDrop, toCheckSupport, toFullRepaintOnResize, toInitOnSave, toReportMode, toToggleOnDblClick, toWheelPanning, toEditOnClick] 6 | Columns = < 7 | item 8 | Position = 0 9 | Width = 250 10 | WideText = 'Trigger' 11 | end 12 | item 13 | Position = 1 14 | Width = 100 15 | WideText = 'Action' 16 | end 17 | item 18 | Position = 2 19 | Width = 150 20 | WideText = 'Service' 21 | end 22 | item 23 | Position = 3 24 | Width = 300 25 | WideText = 'Params' 26 | end> 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /Forms/Viper.TriggerImportList.pas: -------------------------------------------------------------------------------- 1 | unit Viper.TriggerImportList; 2 | { 3 | TriggerList for TriggerImport form. 4 | We have to inherit from it to reimplement Reload(), or it'll reload the live 5 | triggers. 6 | } 7 | 8 | interface 9 | 10 | uses 11 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 12 | Dialogs, Actions, ActnList, Menus, VirtualTrees, TriggerExport, 13 | Viper.TriggerList, Vcl.ExtCtrls; 14 | 15 | type 16 | //Additional data associated with the nodes. Goes after the inherited node data. 17 | TNdTriggerImportData = record 18 | //Turns out we don't need anything special 19 | end; 20 | PNdTriggerImportData = ^TNdTriggerImportData; 21 | 22 | TTriggerImportList = class(TTriggerList) 23 | procedure TreeGetNodeDataSize(Sender: TBaseVirtualTree; 24 | var NodeDataSize: Integer); 25 | protected 26 | FInheritedNodeDataSize: integer; 27 | public 28 | constructor Create(AOwner: TComponent); override; 29 | function GetTriggerImportData(Node: PVirtualNode): PNdTriggerImportData; inline; 30 | procedure Reload; override; 31 | function Add(const ATrigger: TRegTriggerEntry; AGrayedOut: boolean = false): PVirtualNode; reintroduce; 32 | end; 33 | 34 | var 35 | TriggerImportList: TTriggerImportList; 36 | 37 | implementation 38 | 39 | {$R *.dfm} 40 | 41 | constructor TTriggerImportList.Create(AOwner: TComponent); 42 | begin 43 | inherited; 44 | Self.FEntryMode := emChildEntries; 45 | end; 46 | 47 | procedure TTriggerImportList.TreeGetNodeDataSize(Sender: TBaseVirtualTree; 48 | var NodeDataSize: Integer); 49 | begin 50 | inherited; 51 | Self.FInheritedNodeDataSize := NodeDataSize; 52 | Inc(NodeDataSize, SizeOf(TNdTriggerImportData)); 53 | end; 54 | 55 | //Retrieves additional data this module associates with the nodes. It goes after the inherited node data. 56 | function TTriggerImportList.GetTriggerImportData(Node: PVirtualNode): PNdTriggerImportData; 57 | begin 58 | Result := Tree.GetNodeData(Node); 59 | if Result <> nil then 60 | Result := PNdTriggerImportData(NativeUint(Result) + FInheritedNodeDataSize); 61 | end; 62 | 63 | procedure TTriggerImportList.Reload; 64 | begin 65 | //Do nothing -- we're reloaded from the outside. 66 | end; 67 | 68 | resourcestring 69 | sServiceNotFound = '%s - not found'; 70 | 71 | //Adds a new imported trigger entry. The underlying PSERVICE_TRIGGER must remain valid until Clear() 72 | function TTriggerImportList.Add(const ATrigger: TRegTriggerEntry; AGrayedOut: boolean): PVirtualNode; 73 | var Trigger: TNdTrigger; 74 | ChildNode: PVirtualNode; 75 | begin 76 | //Do not copy the data 77 | Trigger := TNdTrigger.Create(ATrigger.Trigger, {OwnsData=}false); 78 | if not AGrayedOut then 79 | Trigger.ServiceName := ATrigger.ServiceName 80 | else 81 | Trigger.ServiceName := Format(sServiceNotFound, [ATrigger.ServiceName]); 82 | Trigger.Index := ATrigger.Index; 83 | 84 | Result := inherited Add(Trigger); 85 | 86 | Tree.IsDisabled[Result] := AGrayedOut; 87 | Tree.CheckType[Result] := ctCheckBox; 88 | if AGrayedOut then 89 | Tree.CheckState[Result] := csUncheckedNormal 90 | else 91 | Tree.CheckState[Result] := csCheckedNormal; 92 | for ChildNode in Tree.ChildNodes(Result) do //multi-entry triggers may spawn child nodes 93 | Tree.IsDisabled[ChildNode] := AGrayedOut; 94 | end; 95 | 96 | 97 | end. 98 | -------------------------------------------------------------------------------- /Locales/Strings.RUS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Locales/Strings.RUS.txt -------------------------------------------------------------------------------- /Project/CommonResources.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Project/CommonResources.pas -------------------------------------------------------------------------------- /Project/EtwUtils.pas: -------------------------------------------------------------------------------- 1 | unit EtwUtils; 2 | // Event Tracing for Windows 3 | 4 | interface 5 | uses Windows; 6 | 7 | const 8 | TDH_DLL = 'tdh.dll'; 9 | 10 | type 11 | TRACE_PROVIDER_INFO = packed record 12 | ProviderGuid: TGUID; 13 | SchemaSource: ULONG; 14 | ProviderNameOffset: ULONG; 15 | end; 16 | PTRACE_PROVIDER_INFO = ^TRACE_PROVIDER_INFO; 17 | 18 | PROVIDER_ENUMERATION_INFO = packed record 19 | NumberOfProviders: ULONG; 20 | Padding: ULONG; 21 | function GetTraceProviderInfo(const Index: integer): PTRACE_PROVIDER_INFO; inline; 22 | property TraceProviderInfo[const Index: integer]: PTRACE_PROVIDER_INFO read GetTraceProviderInfo; 23 | end; 24 | PPROVIDER_ENUMERATION_INFO = ^PROVIDER_ENUMERATION_INFO; 25 | 26 | type 27 | TTdhEnumerateProviders = function(pBuffer: PPROVIDER_ENUMERATION_INFO; pBufferSize: PULONG): ULONG; stdcall; 28 | 29 | var 30 | TdhEnumerateProviders: TTdhEnumerateProviders = nil; 31 | 32 | function LoadEtw: boolean; 33 | 34 | implementation 35 | 36 | function PROVIDER_ENUMERATION_INFO.GetTraceProviderInfo(const Index: integer): PTRACE_PROVIDER_INFO; 37 | begin 38 | Result := PTRACE_PROVIDER_INFO(NativeUInt(@Self)+SizeOf(Self)+Index*SizeOf(TRACE_PROVIDER_INFO)); 39 | end; 40 | 41 | var 42 | hTdhDll: HMODULE = 0; 43 | 44 | function LoadEtw: boolean; 45 | var hLib: HMODULE; 46 | begin 47 | if hTdhDll <> 0 then begin 48 | Result := true; 49 | exit; 50 | end; 51 | 52 | hLib := LoadLibrary(TDH_DLL); 53 | if hLib = 0 then begin 54 | Result := false; 55 | exit; 56 | end; 57 | 58 | //Load functions. 59 | //It's not a problem if someone is loading these in parallel: the values will be the same 60 | TdhEnumerateProviders := GetProcAddress(hlib, 'TdhEnumerateProviders'); 61 | 62 | {$IFDEF WIN64} 63 | if InterlockedCompareExchange64(Int64(hTdhDll), hLib, 0) <> 0 then 64 | {$ELSE} 65 | if InterlockedCompareExchange(Integer(hTdhDll), hLib, 0) <> 0 then 66 | {$ENDIF} 67 | FreeLibrary(hLib); 68 | Result := true; 69 | end; 70 | 71 | end. 72 | -------------------------------------------------------------------------------- /Project/GuidDict.pas: -------------------------------------------------------------------------------- 1 | unit GuidDict; 2 | { 3 | Resolves GUIDs to strings 4 | } 5 | 6 | interface 7 | uses SysUtils, Generics.Collections; 8 | 9 | type 10 | TGuidDictionary = class(TDictionary) 11 | public 12 | procedure LoadFromFile(const AFilename: string); 13 | end; 14 | 15 | EInvalidFormat = class(Exception); 16 | 17 | implementation 18 | uses Classes; 19 | 20 | procedure TGuidDictionary.LoadFromFile(const AFilename: string); 21 | var lines: TStringList; 22 | ln: string; 23 | i, i_pos: integer; 24 | guid: TGuid; 25 | begin 26 | lines := TStringList.Create; 27 | try 28 | lines.LoadFromFile(AFilename); 29 | for i := 0 to lines.Count-1 do begin 30 | ln := lines[i]; 31 | 32 | //Remove comments 33 | i_pos := pos('#', ln); 34 | if i_pos > 0 then 35 | delete(ln, i_pos, MaxInt); 36 | ln := Trim(ln); 37 | if ln = '' then continue; 38 | 39 | //Split 40 | i_pos := pos('=', ln); 41 | if i_pos <= 0 then 42 | raise EInvalidFormat.Create(''); 43 | 44 | guid := StringToGuid('{'+Trim(copy(ln, 1, i_pos-1))+'}'); 45 | ln := Trim(copy(ln, i_pos+1, MaxInt)); 46 | 47 | Self.AddOrSetValue(guid, ln); 48 | end; 49 | finally 50 | FreeAndNil(lines); 51 | end; 52 | end; 53 | 54 | end. 55 | -------------------------------------------------------------------------------- /Project/SetupApiHelper.pas: -------------------------------------------------------------------------------- 1 | unit SetupApiHelper; 2 | //Delphi lacks SetupApi conversion, so we port what we need explicitly. 3 | 4 | interface 5 | uses Windows; 6 | 7 | const 8 | setupapi = 'SetupApi.dll'; 9 | 10 | type 11 | HDEVINFO = Pointer; 12 | 13 | const 14 | ERROR_INVALID_CLASS = $E0000206; //often returned by Di* 15 | 16 | 17 | // Flags controlling what is included in the device information set built 18 | // by SetupDiGetClassDevs 19 | const 20 | DIGCF_DEFAULT = $00000001; // only valid with DIGCF_DEVICEINTERFACE 21 | DIGCF_PRESENT = $00000002; 22 | DIGCF_ALLCLASSES = $00000004; 23 | DIGCF_PROFILE = $00000008; 24 | DIGCF_DEVICEINTERFACE = $00000010; 25 | 26 | function SetupDiGetClassDevsW(ClassGuid: PGUID; const Enumerator: PWideChar; 27 | hwndParent: HWND; Flags: DWORD): HDEVINFO; stdcall; external setupapi; 28 | 29 | function SetupDiDestroyDeviceInfoList(DeviceInfoSet: HDEVINFO): BOOL; stdcall; external setupapi; 30 | 31 | type 32 | TSPDevInfoData = packed record 33 | cbSize: NativeUInt; 34 | ClassGuid: TGUID; 35 | DevInst: DWORD; // DEVINST handle 36 | Reserved: ULONG_PTR; 37 | end; 38 | PSPDevInfoData = ^TSPDevInfoData; 39 | 40 | function SetupDiEnumDeviceInfo(DeviceInfoSet: HDEVINFO; 41 | MemberIndex: DWORD; var DeviceInfoData: TSPDevInfoData): BOOL; stdcall; external setupapi; 42 | 43 | type 44 | TSPDeviceInterfaceData = packed record 45 | cbSize: NativeUInt; 46 | InterfaceClassGuid: TGUID; 47 | Flags: DWORD; 48 | Reserved: ULONG_PTR; 49 | end; 50 | PSPDeviceInterfaceData = ^TSPDeviceInterfaceData; 51 | 52 | function SetupDiEnumDeviceInterfaces(DeviceInfoSet: HDEVINFO; 53 | DeviceInfoData: PSPDevInfoData; const InterfaceClassGuid: TGUID; 54 | MemberIndex: DWORD; var DeviceInterfaceData: TSPDeviceInterfaceData): BOOL; stdcall; external setupapi; 55 | 56 | 57 | function SetupDiGetDeviceInterfaceClassDescription(const DiClassGuid: TGUID; out Description: string): boolean; 58 | 59 | 60 | function SetupDiGetClassDescriptionW(ClassGuid: PGUID; ClassDescription: PChar; 61 | ClassDescriptionSize: DWORD; RequiredSize: PDWORD): BOOL; stdcall; external setupapi; 62 | 63 | function TrySetupDiGetClassDescriptionStr(const ClassGuid: TGUID; out Description: string): boolean; 64 | function SetupDiGetClassDescriptionStr(const ClassGuid: TGUID): string; 65 | 66 | implementation 67 | uses SysUtils; 68 | 69 | { 70 | See: 71 | https://msdn.microsoft.com/en-us/windows/hardware/drivers/install/accessing-device-interface-class-properties 72 | https://www.codeproject.com/articles/14412/enumerating-windows-device 73 | } 74 | 75 | function SetupDiGetDeviceInterfaceClassDescription(const DiClassGuid: TGUID; out Description: string): boolean; 76 | var hDi: HDEVINFO; 77 | did: TSPDevInfoData; 78 | begin 79 | //Query the default interface for the device interface class 80 | hDi := SetupDiGetClassDevsW(@DiClassGuid, nil, 0, DIGCF_DEVICEINTERFACE or DIGCF_DEFAULT); 81 | if hDi = HDEVINFO(INVALID_HANDLE_VALUE) then begin 82 | Result := false; 83 | exit; 84 | end; 85 | try 86 | //Query the first device in the result set 87 | did.cbSize := sizeof(did); 88 | if not SetupDiEnumDeviceInfo(hDi, 0, did) then begin 89 | Result := false; 90 | exit; 91 | end; 92 | 93 | Result := TrySetupDiGetClassDescriptionStr(did.ClassGuid, Description); 94 | finally 95 | SetupDiDestroyDeviceInfoList(hDi); 96 | end; 97 | end; 98 | 99 | 100 | function TrySetupDiGetClassDescriptionStr(const ClassGuid: TGUID; out Description: string): boolean; 101 | var sz: DWORD; 102 | begin 103 | sz := 255; 104 | SetLength(Description, sz); 105 | 106 | if not SetupDiGetClassDescriptionW(@ClassGuid, PChar(Description), sz, @sz) then begin 107 | if GetLastError <> ERROR_MORE_DATA then begin 108 | Result := false; 109 | exit; 110 | end; 111 | SetLength(Description, sz); 112 | if not SetupDiGetClassDescriptionW(@ClassGuid, PChar(Description), sz, @sz) then begin 113 | Result := false; 114 | exit; 115 | end; 116 | end; 117 | SetLength(Description, sz); 118 | Result := true; 119 | end; 120 | 121 | function SetupDiGetClassDescriptionStr(const ClassGuid: TGUID): string; 122 | begin 123 | if not TrySetupDiGetClassDescriptionStr(ClassGuid, Result) then 124 | RaiseLastOsError(); 125 | end; 126 | 127 | end. 128 | -------------------------------------------------------------------------------- /Project/ShellUtils.pas: -------------------------------------------------------------------------------- 1 | unit ShellUtils; 2 | 3 | interface 4 | 5 | function RestartAsAdmin: integer; 6 | 7 | procedure ShellOpen(const sCommand: string; const sParams: string = ''); 8 | procedure ExplorerAtFile(const AFilename: string); 9 | procedure RegeditAtKey(const key: string); 10 | 11 | implementation 12 | uses SysUtils, Windows, ShellAPI, Registry, FilenameUtils; 13 | 14 | function RunAsAdmin(const aFile: string; const aParameters: string = ''; Handle: HWND = 0): integer; 15 | var sei: TShellExecuteInfo; 16 | begin 17 | FillChar(sei, SizeOf(sei), 0); 18 | 19 | sei.cbSize := SizeOf(sei); 20 | sei.Wnd := Handle; 21 | sei.fMask := SEE_MASK_FLAG_DDEWAIT or SEE_MASK_FLAG_NO_UI; 22 | sei.lpVerb := 'runas'; 23 | sei.lpFile := PChar(aFile); 24 | sei.lpParameters := PChar(aParameters); 25 | sei.nShow := SW_SHOWNORMAL; 26 | 27 | if not ShellExecuteEx(@sei) then 28 | Result := GetLastError() 29 | else 30 | Result := 0; 31 | end; 32 | 33 | //Caller has to manually terminate this instance as we don't know if it prefers System.Exit() 34 | //or Application.Terminate() here. 35 | function RestartAsAdmin: integer; 36 | begin 37 | Result := RunAsAdmin(AppFilename(), GetCommandLine()); 38 | end; 39 | 40 | 41 | procedure ShellOpen(const sCommand: string; const sParams: string = ''); 42 | begin 43 | ShellExecute(0, 'open', PChar(sCommand), PChar(sParams), '', SW_SHOW); 44 | end; 45 | 46 | procedure ExplorerAtFile(const AFilename: string); 47 | begin 48 | ShellExecute(0, '', PChar('explorer.exe'), PChar('/select,"'+AFilename+'"'), 49 | '', SW_SHOW); 50 | end; 51 | 52 | //Opens registry editor at the specific key 53 | procedure RegeditAtKey(const key: string); 54 | var reg: TRegistry; 55 | begin 56 | reg := TRegistry.Create; 57 | try 58 | reg.RootKey := HKEY_CURRENT_USER; 59 | reg.OpenKey('Software', true); 60 | reg.OpenKey('Microsoft', true); 61 | reg.OpenKey('Windows', true); 62 | reg.OpenKey('CurrentVersion', true); 63 | reg.OpenKey('Applets', true); 64 | reg.OpenKey('Regedit', true); 65 | reg.WriteString('Lastkey', key); 66 | WinExec(PAnsiChar(AnsiString('regedit.exe')), SW_SHOW); 67 | finally 68 | FreeAndNil(reg); 69 | end; 70 | end; 71 | 72 | end. 73 | -------------------------------------------------------------------------------- /Project/SvcEntry/ServiceProperties.txt: -------------------------------------------------------------------------------- 1 | Service properties and where to find them 2 | There are two ways to access services: through SCM API and through Registry. This document lists all known service properties and how to access them both ways. 3 | 4 | BASIC INFO 5 | QueryServiceConfig() / ChangeServiceConfig(): 6 | https://docs.microsoft.com/en-us/windows/desktop/api/winsvc/ns-winsvc-_query_service_configa 7 | 8 | SCM param Type Registry param 9 | ServiceType DWORD Type Normal SERVICE_TYPE enum + SERVICE_INTERACTIVE_PROCESS 10 | StartType DWORD Start 11 | ErrorControl DWORD ErrorControl IGNORE/NORMAL/SEVERE/CRITICAL -- see QueryServiceConfig docs 12 | BinaryPathName string ImagePath 13 | LoadOrderGroup string Group 14 | TagId DWORD Tag Only used for drivers 15 | Dependencies string DependOnService, DependOnGroup 16 | ServiceStartName string ObjectName Win32: User name with which to start the service 17 | Kernel: Driver object name that the system uses to load the device driver 18 | Password string ? Password for the above user (empty for system accounts) 19 | DisplayName string DisplayName 20 | 21 | For svchost-based services, in either / or /Parameters: 22 | ServiceDll 23 | ServiceDllUnloadOnStop 24 | ServiceMain 25 | Svchost-based services should be SERVICE_WIN32_SHARE_PROCESS, normal ones - SERVICE_WIN32_OWN_PROCESS. 26 | 27 | 28 | EXTENDED INFO 29 | QueryServiceConfig2() / ChangeServiceConfig2() 30 | 31 | SERVICE_CONFIG_DESCRIPTION: 32 | Description string Description 33 | 34 | SERVICE_CONFIG_FAILURE_ACTIONS: 35 | SERVICE_FAILURE_ACTIONS 36 | dwResetPeriod dword 37 | lpRebootMsg string RebootMessage 38 | lpCommand string FailureCommand 39 | cActions dword 40 | lpsaActions LPSC_ACTION 41 | SC_ACTION 42 | Type_: SC_ACTION_TYPE; 43 | Delay: DWORD; 44 | 45 | FailureActions: 40 bytes 46 | I think this is a SERVICE_FAILURE_ACTIONS + 3xSC_ACTION together, with dynamic 47 | fields simply containing trash. 48 | ResetPeriod dword reset the failure counter after %1 ms 49 | trash? dword 50 | trash? dword 51 | trash? 03 00 00 00 dword 52 | trash? 14 00 00 00 dword maybe offset of the first SC_ACTION from the start? 53 | 3x 54 | Type dword SC_ACTION_TYPE 55 | Delay dword delay in ms 56 | MMC Services Snap-in only shows one "delay" that's applied to all 3 cases, but 57 | until you edit them, many services actually have different times (e.g. 2+3). 58 | If any of the actions is "Reboot", they all get the "delay before reboot" set 59 | in the additional windows. 60 | 61 | SERVICE_CONFIG_FAILURE_ACTIONS_FLAG: 62 | SERVICE_FAILURE_ACTIONS_FLAG 63 | fFailureActionsOnNonCrashFailures Bool FailureActionsOnNonCrashFailures 64 | That's the checkbox under the normal failure actions in the MMC Snap-In. 65 | } 66 | 67 | 68 | SERVICE_CONFIG_DELAYED_AUTO_START_INFO (SERVICE_DELAYED_AUTOSTART_INFO): 69 | DelayedAutostart boolean DelayedAutoStart 70 | 71 | SERVICE_CONFIG_SERVICE_SID_INFO (SERVICE_SID_INFO): 72 | ServiceSidType dword ServiceSidType SERVICE_SID_TYPE_* NONE/UNRESTRICTED/RESTRICTED 73 | 74 | SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO: 75 | RequiredPrivileges array RequiredPrivileges 76 | 77 | SERVICE_CONFIG_PRESHUTDOWN_INFO: 78 | PreshutdownTimeout dword PreshutdownTimeout 79 | 80 | 81 | { 82 | SERVICE_CONFIG_TRIGGER_INFO 83 | \Triggers 84 | SERVICE_CONFIG_TRIGGER_INFO 85 | } 86 | //TODO 87 | 88 | { 89 | SERVICE_CONFIG_PREFERRED_NODE: 90 | SERVICE_PREFERRED_NODE_INFO 91 | usPreferredNode ushort PreferredNode 92 | fDelete bool 93 | } -------------------------------------------------------------------------------- /Project/Viper.Log.dfm: -------------------------------------------------------------------------------- 1 | object LogForm: TLogForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Log' 5 | ClientHeight = 300 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object memo: TMemo 17 | Left = 0 18 | Top = 0 19 | Width = 635 20 | Height = 300 21 | Align = alClient 22 | ReadOnly = True 23 | ScrollBars = ssVertical 24 | TabOrder = 0 25 | end 26 | end 27 | -------------------------------------------------------------------------------- /Project/Viper.Log.pas: -------------------------------------------------------------------------------- 1 | unit Viper.Log; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 | 9 | type 10 | TLogForm = class(TForm) 11 | memo: TMemo; 12 | public 13 | procedure Log(const msg: string); overload; inline; 14 | end; 15 | 16 | var 17 | LogForm: TLogForm; 18 | 19 | procedure Log(const msg: string); overload; inline; 20 | 21 | implementation 22 | 23 | {$R *.dfm} 24 | 25 | procedure Log(const msg: string); 26 | begin 27 | LogForm.Log(msg); 28 | end; 29 | 30 | procedure TLogForm.Log(const msg: string); 31 | begin 32 | memo.Lines.Add(msg); 33 | end; 34 | 35 | end. 36 | -------------------------------------------------------------------------------- /Project/Viper.ServiceImport.dfm: -------------------------------------------------------------------------------- 1 | object ServiceImportForm: TServiceImportForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'Import services' 5 | ClientHeight = 354 6 | ClientWidth = 477 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Position = poOwnerFormCenter 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | OnShow = FormShow 18 | PixelsPerInch = 96 19 | TextHeight = 13 20 | object pcPages: TPageControl 21 | Left = 0 22 | Top = 0 23 | Width = 477 24 | Height = 313 25 | ActivePage = tsServices 26 | Align = alClient 27 | Style = tsFlatButtons 28 | TabOrder = 0 29 | object tsServices: TTabSheet 30 | Caption = 'tsServices' 31 | TabVisible = False 32 | DesignSize = ( 33 | 469 34 | 303) 35 | object Label1: TLabel 36 | Left = 3 37 | Top = 3 38 | Width = 121 39 | Height = 13 40 | Caption = 'Select services to import:' 41 | end 42 | object rbAddAndUpdateServices: TRadioButton 43 | Left = 3 44 | Top = 22 45 | Width = 460 46 | Height = 17 47 | Anchors = [akLeft, akTop, akRight] 48 | Caption = 'Add services and update existing services' 49 | Checked = True 50 | TabOrder = 0 51 | TabStop = True 52 | end 53 | object rbUpdateServicesOnly: TRadioButton 54 | Left = 3 55 | Top = 45 56 | Width = 460 57 | Height = 17 58 | Anchors = [akLeft, akTop, akRight] 59 | Caption = 'Update existing services only' 60 | TabOrder = 1 61 | end 62 | object VirtualStringTree1: TVirtualStringTree 63 | Left = 3 64 | Top = 68 65 | Width = 463 66 | Height = 233 67 | Anchors = [akLeft, akTop, akRight, akBottom] 68 | BorderWidth = 1 69 | Header.AutoSizeIndex = 0 70 | Header.Font.Charset = DEFAULT_CHARSET 71 | Header.Font.Color = clWindowText 72 | Header.Font.Height = -11 73 | Header.Font.Name = 'Tahoma' 74 | Header.Font.Style = [] 75 | Header.MainColumn = -1 76 | TabOrder = 2 77 | Columns = <> 78 | end 79 | end 80 | object tsSettings: TTabSheet 81 | Caption = 'tsSettings' 82 | ImageIndex = 1 83 | TabVisible = False 84 | ExplicitLeft = 0 85 | ExplicitTop = 0 86 | ExplicitWidth = 565 87 | ExplicitHeight = 316 88 | DesignSize = ( 89 | 469 90 | 303) 91 | object Label2: TLabel 92 | Left = 3 93 | Top = 3 94 | Width = 89 95 | Height = 13 96 | Caption = 'Settings to import:' 97 | end 98 | object CheckBox2: TCheckBox 99 | Left = 16 100 | Top = 54 101 | Width = 450 102 | Height = 17 103 | Anchors = [akLeft, akTop, akRight] 104 | Caption = 'Basic service information' 105 | TabOrder = 0 106 | end 107 | object CheckBox3: TCheckBox 108 | Left = 16 109 | Top = 146 110 | Width = 450 111 | Height = 17 112 | Anchors = [akLeft, akTop, akRight] 113 | Caption = 'Additional service parameters' 114 | TabOrder = 1 115 | end 116 | object CheckBox4: TCheckBox 117 | Left = 16 118 | Top = 77 119 | Width = 450 120 | Height = 17 121 | Anchors = [akLeft, akTop, akRight] 122 | Caption = 'Start type' 123 | TabOrder = 2 124 | end 125 | object CheckBox5: TCheckBox 126 | Left = 16 127 | Top = 100 128 | Width = 450 129 | Height = 17 130 | Anchors = [akLeft, akTop, akRight] 131 | Caption = 'Triggers' 132 | TabOrder = 3 133 | end 134 | object CheckBox6: TCheckBox 135 | Left = 16 136 | Top = 123 137 | Width = 450 138 | Height = 17 139 | Anchors = [akLeft, akTop, akRight] 140 | Caption = 'Failure actions' 141 | TabOrder = 4 142 | end 143 | object CheckBox1: TCheckBox 144 | Left = 16 145 | Top = 30 146 | Width = 450 147 | Height = 17 148 | Anchors = [akLeft, akTop, akRight] 149 | Caption = 'Everything' 150 | Font.Charset = DEFAULT_CHARSET 151 | Font.Color = clWindowText 152 | Font.Height = -11 153 | Font.Name = 'Tahoma' 154 | Font.Style = [fsBold] 155 | ParentFont = False 156 | TabOrder = 5 157 | end 158 | end 159 | end 160 | object pnlBottom: TPanel 161 | Left = 0 162 | Top = 313 163 | Width = 477 164 | Height = 41 165 | Align = alBottom 166 | BevelOuter = bvNone 167 | TabOrder = 1 168 | DesignSize = ( 169 | 477 170 | 41) 171 | object btnNext: TButton 172 | Left = 304 173 | Top = 8 174 | Width = 75 175 | Height = 25 176 | Anchors = [akTop, akRight] 177 | Caption = 'Next >' 178 | Default = True 179 | TabOrder = 0 180 | end 181 | object btnCancel: TButton 182 | Left = 392 183 | Top = 8 184 | Width = 75 185 | Height = 25 186 | Anchors = [akTop, akRight] 187 | Cancel = True 188 | Caption = 'Cancel' 189 | ModalResult = 2 190 | TabOrder = 1 191 | end 192 | end 193 | end 194 | -------------------------------------------------------------------------------- /Project/Viper.dpr: -------------------------------------------------------------------------------- 1 | program Viper; 2 | 3 | uses 4 | Vcl.Forms, 5 | Viper.MainForm in '..\Forms\Viper.MainForm.pas' {MainForm}, 6 | Viper.Log in 'Viper.Log.pas' {LogForm}, 7 | CommonResources in 'CommonResources.pas' {CommonRes: TDataModule}, 8 | Viper.Settings in '..\Forms\Viper.Settings.pas' {SettingsForm}, 9 | Viper.StyleSettings in '..\Forms\Viper.StyleSettings.pas' {StyleSettingsForm}, 10 | Viper.StyleEdit in '..\Forms\Viper.StyleEdit.pas' {StyleEditForm}, 11 | Viper.ServiceList in '..\Forms\Viper.ServiceList.pas' {ServiceList: TFrame}, 12 | Viper.DependencyList in '..\Forms\Viper.DependencyList.pas' {DependencyList: TFrame}, 13 | Viper.RestoreServiceConfig in '..\Forms\Viper.RestoreServiceConfig.pas' {RestoreServiceConfigForm}, 14 | Viper.TriggerList in '..\Forms\Viper.TriggerList.pas' {TriggerList: TFrame}, 15 | Viper.ServiceTriggerList in '..\Forms\Viper.ServiceTriggerList.pas' {ServiceTriggerList: TFrame}, 16 | Viper.MainTriggerList in '..\Forms\Viper.MainTriggerList.pas' {MainTriggerList: TFrame}, 17 | Viper.RichEditEx in '..\Forms\Viper.RichEditEx.pas' {RichEditFrame: TFrame}, 18 | Viper.TriggerEditor in '..\Forms\Viper.TriggerEditor.pas' {TriggerEditorForm}, 19 | Viper.TriggerDataItemEditor in '..\Forms\Viper.TriggerDataItemEditor.pas' {TriggerDataItemEditor}, 20 | Viper.TriggerImport in '..\Forms\Viper.TriggerImport.pas' {TriggerImportForm}, 21 | Viper.TriggerImportList in '..\Forms\Viper.TriggerImportList.pas' {TriggerImportList: TFrame}, 22 | Viper.ServiceImport in 'Viper.ServiceImport.pas' {ServiceImportForm}, 23 | Viper.ServiceEdit in '..\Forms\Viper.ServiceEdit.pas' {ServiceEditForm}, 24 | Viper.ScheduledTasks in '..\Forms\Viper.ScheduledTasks.pas' {ScheduledTasksForm}, 25 | Viper.ScheduledTasksMain in '..\Forms\Viper.ScheduledTasksMain.pas' {ScheduledTasksMainForm}, 26 | ServiceHelper in 'ServiceHelper.pas', 27 | WinApiHelper in 'WinApiHelper.pas', 28 | ShellUtils in 'ShellUtils.pas', 29 | SvcEntry in 'SvcEntry\SvcEntry.pas', 30 | OsSvcEntry in 'SvcEntry\OsSvcEntry.pas', 31 | MemSvcEntry in 'SvcEntry\MemSvcEntry.pas', 32 | RegFileSvcEntry in 'SvcEntry\RegFileSvcEntry.pas', 33 | SetupApiHelper in 'SetupApiHelper.pas', 34 | AclUi in 'AclUi.pas', 35 | SecEdit in 'SecEdit.pas', 36 | TriggerUtils in 'TriggerUtils.pas', 37 | GuidDict in 'GuidDict.pas', 38 | EtwUtils in 'EtwUtils.pas', 39 | SvcCat in 'SvcCat.pas', 40 | TriggerExport in 'TriggerExport.pas', 41 | RegFile in 'RegFile.pas', 42 | RegExport in 'RegExport.pas', 43 | WnfUtils in 'WnfUtils.pas'; 44 | 45 | {$R *.res} 46 | 47 | begin 48 | Application.Initialize; 49 | Application.MainFormOnTaskbar := True; 50 | Application.CreateForm(TMainForm, MainForm); 51 | Application.CreateForm(TCommonRes, CommonRes); 52 | Application.CreateForm(TLogForm, LogForm); 53 | Application.CreateForm(TSettingsForm, SettingsForm); 54 | Application.CreateForm(TStyleSettingsForm, StyleSettingsForm); 55 | Application.CreateForm(TMainTriggerList, TriggerBrowser); 56 | Application.CreateForm(TScheduledTasksMainForm, ScheduledTasksMainForm); 57 | Application.Run; 58 | end. 59 | -------------------------------------------------------------------------------- /Project/Viper_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/Project/Viper_Icon.ico -------------------------------------------------------------------------------- /Project/WinApiHelper.pas: -------------------------------------------------------------------------------- 1 | unit WinApiHelper; 2 | 3 | interface 4 | uses Windows; 5 | 6 | function ExpandEnvironmentStrings(const AString: string): string; 7 | 8 | function SplitNullSeparatedList(AList: PChar): TArray; 9 | function JoinNullSeparatedList(const AList: TArray): string; 10 | procedure CopyNullSeparatedList(const AList: PChar; out ACopy: string); overload; 11 | function CopyNullSeparatedList(const AList: PChar): string; overload; inline; 12 | 13 | 14 | implementation 15 | uses SysUtils; 16 | 17 | function ExpandEnvironmentStrings(const AString: string): string; 18 | var sz: integer; 19 | begin 20 | if AString = '' then begin 21 | Result := ''; 22 | exit; 23 | end; 24 | sz := Length(AString)+1; //probably at least this 25 | repeat 26 | SetLength(Result, sz-1); 27 | sz := Windows.ExpandEnvironmentStrings(PChar(AString), PChar(Result), Length(Result)+1); 28 | if sz = 0 then RaiseLastOsError(); //normally at least 1 (null term) 29 | until sz <= Length(Result)+1; 30 | if sz < Length(Result)+1 then 31 | SetLength(Result, sz-1); 32 | end; 33 | 34 | //Null-separated lists end with double-null: 35 | // EntryA #00 EntryB #00 EntryC #00 #00 36 | function SplitNullSeparatedList(AList: PChar): TArray; 37 | var i: integer; 38 | begin 39 | SetLength(Result, 0); 40 | if AList = nil then exit; 41 | 42 | i := 0; 43 | while AList^ <> #00 do begin 44 | SetLength(Result, i+1); 45 | Result[i] := string(AList); 46 | Inc(AList, Length(Result[i])+1); //skip string and terminating null 47 | Inc(i); 48 | end; 49 | end; 50 | 51 | function JoinNullSeparatedList(const AList: TArray): string; 52 | var i: integer; 53 | begin 54 | Result := ''; 55 | for i := 0 to Length(AList)-1 do 56 | Result := Result + AList[i] + #00; 57 | end; 58 | 59 | //Creates a copy of a given list in a string variable. Simply assigning the variable 60 | //would not work since only the text until the first #00 would be assigned. 61 | procedure CopyNullSeparatedList(const AList: PChar; out ACopy: string); 62 | var ptr: PChar; 63 | begin 64 | if AList = nil then begin 65 | SetLength(ACopy, 0); 66 | exit; 67 | end; 68 | ptr := AList; 69 | //Find terminating #00#00 70 | while (ptr[0] <> #00) or (ptr[1] <> #00) do 71 | Inc(ptr); 72 | Inc(ptr); //we need the first #00 explicitly 73 | SetLength(ACopy, NativeUInt(ptr)-NativeUint(AList)); 74 | Move(AList^, ACopy[1], SizeOf(char)*Length(ACopy)); 75 | end; 76 | 77 | function CopyNullSeparatedList(const AList: PChar): string; 78 | begin 79 | Result := ''; 80 | CopyNullSeparatedList(AList, Result); 81 | end; 82 | 83 | 84 | end. 85 | -------------------------------------------------------------------------------- /Project/WnfUtils.pas: -------------------------------------------------------------------------------- 1 | unit WnfUtils; 2 | { 3 | Windows Notification Facility utils. 4 | See https://blog.quarkslab.com/playing-with-the-windows-notification-facility-wnf.html 5 | } 6 | 7 | interface 8 | uses SysUtils, Generics.Collections; 9 | 10 | type 11 | TWnfStateName = int64; 12 | PWnfStateName = ^TWnfStateName; 13 | 14 | const 15 | //WNF Scope markers 16 | WNF_SCOPE_MAP_CODE = $901; 17 | WNF_SCOPE_INSTANCE_CODE = $902; 18 | WNF_NAME_INSTANCE_CODE = $903; 19 | WNF_STATE_DATA_CODE = $904; 20 | WNF_SUBSCRIPTION_CODE = $905; 21 | WNF_PROCESS_CONTEXT_CODE = $906; 22 | 23 | const 24 | WNF_XOR_KEY = $41C64E6DA3BC0074; 25 | 26 | //WNF State Name format: 27 | WNF_SN_VERSION_MASK = $0F; //ULONG64 Version : 4; 28 | WNF_SN_LIFETIME_MASK = $03 shl 4; //ULONG64 Lifetime : 2; 29 | WNF_SN_DATASCOPE_MASK = $0F shl 6; //ULONG64 DataScope : 4; 30 | WNF_SN_PERMANENT_MASK = $01 shl 10; //ULONG64 IsPermanent : 1; 31 | WNF_SN_UNIQUE_SHIFT = 11; //ULONG64 Unique : 53; //the rest 32 | 33 | WNF_DATA_SCOPE_SYSTEM = 0; 34 | WNF_DATA_SCOPE_SESSION = 1; 35 | WNF_DATA_SCOPE_USER = 2; 36 | WNF_DATA_SCOPE_PROCESS = 3; 37 | WNF_DATA_SCOPE_MACHINE = 4; 38 | 39 | function WnfSnGetVersion(const WnfSn: TWnfStateName): byte; inline 40 | function WnfSnGetLifetime(const WnfSn: TWnfStateName): byte; inline; 41 | function WnfSnGetDataScope(const WnfSn: TWnfStateName): byte; inline; 42 | function WnfSnGetPermanent(const WnfSn: TWnfStateName): boolean; inline; 43 | function WnfSnGetUniquePart(const WnfSn: TWnfStateName): int64; inline; 44 | 45 | function XorShift(const AValue: int64; AMask: int64): int64; 46 | 47 | function WnfSnToStr(const AWnfSn: TWnfStateName): string; 48 | function TryStrToWnfSn(const AValue: string; out AWnfSn: TWnfStateName): boolean; 49 | function StrToWnfSn(const AValue: string): TWnfStateName; 50 | 51 | type 52 | TWnfSnInfo = record 53 | Name: string; 54 | Desc: string; 55 | end; 56 | TWnfSnDict = class(TDictionary) 57 | public 58 | procedure LoadFromFile(const AFilename: string); 59 | end; 60 | 61 | EWnfSnDictParseError = class(Exception); 62 | 63 | implementation 64 | uses Classes, UniStrUtils; 65 | 66 | function XorShift(const AValue: int64; AMask: int64): int64; 67 | begin 68 | Result := AValue; 69 | while AMask and 1 = 0 do begin 70 | AMask := AMask shr 1; 71 | Result := Result shr 1; 72 | end; 73 | Result := Result and AMask; 74 | end; 75 | 76 | function WnfSnGetVersion(const WnfSn: TWnfStateName): byte; 77 | begin 78 | Result := XorShift(WnfSn, WNF_SN_VERSION_MASK); 79 | end; 80 | 81 | function WnfSnGetLifetime(const WnfSn: TWnfStateName): byte; 82 | begin 83 | Result := XorShift(WnfSn, WNF_SN_LIFETIME_MASK); 84 | end; 85 | 86 | function WnfSnGetDataScope(const WnfSn: TWnfStateName): byte; 87 | begin 88 | Result := XorShift(WnfSn, WNF_SN_DATASCOPE_MASK); 89 | end; 90 | 91 | function WnfSnGetPermanent(const WnfSn: TWnfStateName): boolean; 92 | begin 93 | Result := ((WnfSn xor WNF_XOR_KEY) and WNF_SN_PERMANENT_MASK) <> 0; 94 | end; 95 | 96 | function WnfSnGetUniquePart(const WnfSn: TWnfStateName): int64; 97 | begin 98 | Result := (WnfSn xor WNF_XOR_KEY) shr WNF_SN_UNIQUE_SHIFT; 99 | end; 100 | 101 | { 102 | Since there's no canonical way to print out WNF State Names, we'll follow the 103 | byte order, from lowest to highest 104 | } 105 | 106 | function WnfSnToStr(const AWnfSn: TWnfStateName): string; 107 | begin 108 | Result := string(UniStrUtils.BinToHex(@AWnfSn, SizeOf(AWnfSn))); 109 | end; 110 | 111 | function TryStrToWnfSn(const AValue: string; out AWnfSn: TWnfStateName): boolean; 112 | begin 113 | Result := TryStrToInt64('$'+AValue, AWnfSn); 114 | if Result then 115 | //WNF SNs are stored lowest byte first, but StrToInt64 is HBF, reverse: 116 | AWnfSn := int64(PByte(@AWnfSn)[7]) 117 | + int64(PByte(@AWnfSn)[6]) shl 8 118 | + int64(PByte(@AWnfSn)[5]) shl 16 119 | + int64(PByte(@AWnfSn)[4]) shl 24 120 | + int64(PByte(@AWnfSn)[3]) shl 32 121 | + int64(PByte(@AWnfSn)[2]) shl 40 122 | + int64(PByte(@AWnfSn)[1]) shl 48 123 | + int64(PByte(@AWnfSn)[0]) shl 56; 124 | end; 125 | 126 | resourcestring 127 | eInvalidWfnSn = 'Invalid WNF State Name: %s'; 128 | 129 | function StrToWnfSn(const AValue: string): TWnfStateName; 130 | begin 131 | if not TryStrToWnfSn(AValue, Result) then 132 | raise EWnfSnDictParseError.CreateFmt(eInvalidWfnSn, [AValue]); 133 | end; 134 | 135 | 136 | procedure TWnfSnDict.LoadFromFile(const AFilename: string); 137 | var lines: TStringList; 138 | line: string; 139 | i, i_pos: integer; 140 | sn_str: string; 141 | sn: TWnfStateName; 142 | sn_info: TWnfSnInfo; 143 | begin 144 | lines := TStringList.Create; 145 | try 146 | lines.LoadFromFile(AFilename); 147 | for i := 0 to lines.Count-1 do begin 148 | line := Trim(lines[i]); 149 | if (line = '') or (line[1] = '#') then 150 | continue; 151 | 152 | i_pos := pos(#09, line); 153 | if i_pos <= 0 then 154 | continue; //Bad line! 155 | 156 | sn_str := copy(line, 1, i_pos-1); 157 | delete(line, 1, i_pos); 158 | sn := StrToWnfSn(sn_str); 159 | 160 | i_pos := pos(#09, line); 161 | if i_pos <= 0 then begin 162 | sn_info.Name := line; 163 | sn_info.Desc := ''; 164 | end else begin 165 | sn_info.Name := copy(line, 1, i_pos-1); 166 | delete(line, 1, i_pos); 167 | sn_info.Desc := line; //remainder 168 | end; 169 | 170 | Self.AddOrSetValue(sn, sn_info); 171 | end; 172 | finally 173 | FreeAndNil(lines); 174 | end; 175 | end; 176 | 177 | 178 | end. 179 | -------------------------------------------------------------------------------- /SvcData Format.txt: -------------------------------------------------------------------------------- 1 | Description file format: 2 | 3 | All information should be in English. 4 | 5 | Each service must have at most one description file (.txt). If it's filed under several folders, the remaining folders must contain empty .lnk files with the same name. 6 | 7 | By default the information is valid for all versions of the OS where the service is present. Version-dependent comments are planned, not standardized at the moment. 8 | 9 | # Comments can be used to store additional information which will not be visible in the UI. 10 | # It's a good idea to have English-language display name and description as a comment for services with dubious names. 11 | 12 | Special notes in the file: 13 | 14 | TITLE:[Title] 15 | Overrides display title for the service (useful for services with totally non-descriptive titles). Do not abuse. %1 is replaced with original title (to preserve localized titles). 16 | 17 | CRITICAL 18 | CRITICAL:[Explanation] 19 | This service is required for a core system functionality to work. If you disable it, you will not be able to boot/log on/run most applications. 20 | [Explanation] may explain the consequences of disabling. There can be several CRITICAL entries. 21 | 22 | REQUIRES:[ServiceName,...] 23 | Additional dependencies for this service. May also list dependencies already specified by the OS. 24 | 25 | RELATED:[ServiceName,...] 26 | Lists related services, comma-separated. 27 | 28 | TELEMETRY 29 | This service phones home. 30 | 31 | Things to note in comments: 32 | - Manual mode behavior: Will the service autostart when its functionality is needed or will it have to be started manually? 33 | - Disabled mode impact: Will disabling the service break anything? 34 | - Always runs anyway: Will this service always run anyway when in Manual? (e.g. ShellHWDetection) What triggers this? (for ShellHWDetection: Explorer). 35 | - Autostop behavior: Will the service stop after a while idle? 36 | - Reenabling behavior: Will the service be automatically reenabled if disabled? By what? 37 | -------------------------------------------------------------------------------- /SvcData/AppVClient.txt: -------------------------------------------------------------------------------- 1 | Client for App-V. 2 | App-V is an application virtualization and application streaming solution. Enables you to make applications available to end users without installing the applications directly on end user computers, by streaming them from servers. 3 | 4 | https://technet.microsoft.com/en-us/windows/hh826068 5 | https://en.wikipedia.org/wiki/Microsoft_App-V -------------------------------------------------------------------------------- /SvcData/Core/BDESVC.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/BDESVC.txt -------------------------------------------------------------------------------- /SvcData/Core/EFS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/EFS.txt -------------------------------------------------------------------------------- /SvcData/Core/EventLog/EventLog.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/EventLog/EventLog.txt -------------------------------------------------------------------------------- /SvcData/Core/EventLog/WecSvc.txt: -------------------------------------------------------------------------------- 1 | # Event Collector Service 2 | Maintains permanent subscriptions to events via WS-Management protocol. 3 | 4 | DISABLE: If you don't use WS-Management. 5 | -------------------------------------------------------------------------------- /SvcData/Core/FontCache.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/FontCache.txt -------------------------------------------------------------------------------- /SvcData/Core/KTM/KtmRm.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/KTM/KtmRm.txt -------------------------------------------------------------------------------- /SvcData/Core/KTM/MSDTC.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/KTM/MSDTC.txt -------------------------------------------------------------------------------- /SvcData/Core/KTM/readme: -------------------------------------------------------------------------------- 1 | Kernel transaction manager and Microsoft Distributed Transaction Coordinator -------------------------------------------------------------------------------- /SvcData/Core/Performance/PerfHost.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Performance/PerfHost.txt -------------------------------------------------------------------------------- /SvcData/Core/Performance/pla.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Performance/pla.txt -------------------------------------------------------------------------------- /SvcData/Core/Performance/wmiApSrv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Performance/wmiApSrv.txt -------------------------------------------------------------------------------- /SvcData/Core/Power.txt: -------------------------------------------------------------------------------- 1 | Manages power policy and power policy notification delivery. 2 | 3 | Needed for Hibernate functionality to work. 4 | -------------------------------------------------------------------------------- /SvcData/Core/ProtectedStorage.txt: -------------------------------------------------------------------------------- 1 | Provides protected storage for sensitive data, such as passwords, to prevent access by unauthorized services, processes, or users. 2 | 3 | Not to be confused with VaultSvc. Seems to be unrelated to saved passwords from "Manage your credentials" (see VaultSvc for that). 4 | 5 | +W7 6 | -W10: Deprecated in Windows 10. 7 | 8 | > Protected Storage service was deprecated and made read-only in Vista and removed in Windows 8. It was not very secure. 9 | > The replacement to be used by app developers is a more secure API like the Windows Data Protection API. IE, EFS, CredMan, EFS all use that. 10 | https://social.technet.microsoft.com/Forums/en-US/86a8b803-9f8f-4875-b4b6-29d227e1e46f/where-is-protected-storage-service?forum=W8ITProPreRel 11 | 12 | > The Protected Storage service protects storage of sensitive information, such as private keys, and prevents access by unauthorized services, processes, or users. The service provides a set of software libraries that allow applications to retrieve security and other information from personal storage locations as it hides the implementation and details of the storage itself. 13 | > The storage location that is provided by this service is protected from modification. The Protected Storage service uses the Hash-Based Message Authentication Code (HMAC) and the Secure Hash Algorithm 1 (SHA1) cryptographic hash function to encrypt the user's master key. This component requires no configuration. 14 | > If the Protected Storage service stops, private keys are inaccessible, the Certificate Services service does not operate, Secure/Multipurpose Internet Mail Extensions (S/MIME) and SSL do not work, and smart card logon fails. 15 | https://technet.microsoft.com/en-us/library/hh125927(v=ws.10).aspx#BKMK_protectedstorage 16 | 17 | 18 | -------------------------------------------------------------------------------- /SvcData/Core/RPC/COMSysApp.txt: -------------------------------------------------------------------------------- 1 | # COM+ System Application 2 | -------------------------------------------------------------------------------- /SvcData/Core/RPC/DcomLaunch.txt: -------------------------------------------------------------------------------- 1 | # DCOM Server Process Launcher 2 | CRITICAL: Most of the OS won't work. -------------------------------------------------------------------------------- /SvcData/Core/RPC/EventSystem.txt: -------------------------------------------------------------------------------- 1 | # COM+ Event System 2 | # Supports System Event Notification Service (SENS), which provides automatic distribution of events to subscribing Component Object Model (COM) components. If the service is stopped, SENS will close and will not be able to provide logon and logoff notifications. 3 | TITLE: SENS\%1 4 | CRITICAL: Required by SENS, which is needed for logon. -------------------------------------------------------------------------------- /SvcData/Core/RPC/RpcEptMapper.txt: -------------------------------------------------------------------------------- 1 | # RPC Endpoint mapper 2 | # Resolves RPC interfaces identifiers to transport endpoints. If this service is stopped or disabled, programs using Remote Procedure Call (RPC) services will not function properly. 3 | -------------------------------------------------------------------------------- /SvcData/Core/RPC/RpcLocator.txt: -------------------------------------------------------------------------------- 1 | # Remote Procedure Call (RPC) Locator 2 | # In Windows 2003 and earlier versions of Windows, the Remote Procedure Call (RPC) Locator service manages the RPC name service database. In Windows Vista and later versions of Windows, this service does not provide any functionality and is present for application compatibility. 3 | -------------------------------------------------------------------------------- /SvcData/Core/RPC/RpcSs.txt: -------------------------------------------------------------------------------- 1 | # Remote Procedure Call (RPC) 2 | # The RPCSS service is the Service Control Manager for COM and DCOM servers. It performs object activations requests, object exporter resolutions and distributed garbage collection for COM and DCOM servers. If this service is stopped or disabled, programs using COM or DCOM will not function properly. It is strongly recommended that you have the RPCSS service running. 3 | CRITICAL: Most of the OS won't work. -------------------------------------------------------------------------------- /SvcData/Core/RPC/SENS.txt: -------------------------------------------------------------------------------- 1 | # System Event Notification Service 2 | # Monitors system events and notifies subscribers to COM+ Event System of these events. 3 | TITLE: SENS\System Event Notification Service 4 | CRITICAL: Reqired for user profiles to work, or no one except Administrators will be able to log in. -------------------------------------------------------------------------------- /SvcData/Core/RPC/readme: -------------------------------------------------------------------------------- 1 | RPC 2 | COM 3 | DCOM 4 | -------------------------------------------------------------------------------- /SvcData/Core/SamSs.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/SamSs.txt -------------------------------------------------------------------------------- /SvcData/Core/Schedule.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Schedule.txt -------------------------------------------------------------------------------- /SvcData/Core/Security/CryptSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Security/CryptSvc.txt -------------------------------------------------------------------------------- /SvcData/Core/Security/KeyIso.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Security/KeyIso.txt -------------------------------------------------------------------------------- /SvcData/Core/Security/NgcCtnrSvc.txt: -------------------------------------------------------------------------------- 1 | # Microsoft Passport Container 2 | # Manages local user identity keys used to authenticate user to identity providers as well as TPM virtual smart cards. 3 | 4 | See NgcSvc for the description of Microsoft Passport / Microsoft Hello. 5 | 6 | RELATED: NgcSvc -------------------------------------------------------------------------------- /SvcData/Core/Security/NgcSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Security/NgcSvc.txt -------------------------------------------------------------------------------- /SvcData/Core/Security/readme: -------------------------------------------------------------------------------- 1 | Cryptographic services and services which store data in a secure way. -------------------------------------------------------------------------------- /SvcData/Core/SysMain.txt: -------------------------------------------------------------------------------- 1 | # Superfetch 2 | -------------------------------------------------------------------------------- /SvcData/Core/TBS.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/TBS.txt -------------------------------------------------------------------------------- /SvcData/Core/Themes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Themes.txt -------------------------------------------------------------------------------- /SvcData/Core/TrkWks.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/TrkWks.txt -------------------------------------------------------------------------------- /SvcData/Core/UxSms.txt: -------------------------------------------------------------------------------- 1 | # Desktop Window Manager session manager -------------------------------------------------------------------------------- /SvcData/Core/VaultSvc.txt: -------------------------------------------------------------------------------- 1 | Provides secure storage and retrieval of credentials to users, applications and security service packages. 2 | 3 | Manages saved passwords and credentials from "Manage your credentials". Starts on demand. 4 | 5 | Not to be confused with ProtectedStorage. 6 | 7 | > The Credential Manager (VaultSvc) service provides secure storage and retrieval of credentials to users, applications and security service packages. 8 | > The Windows Biometric Service is dependent upon the Credential Manager service. 9 | https://technet.microsoft.com/en-us/library/hh125927(v=ws.10).aspx#BKMK_vaultsvc 10 | 11 | > Credential Manager allows you to store credentials, such as user names and passwords that you use to log on to websites or other computers on a network. By storing your credentials, Windows can automatically log you on to websites or other computers. Credentials are saved in special folders on your computer called vaults. Windows and programs (such as web browsers) can securely give the credentials in the vaults to other computers and websites. For information about saving credentials in a vault, see Store passwords, certificates, and other credentials for automatic logon. 12 | http://windows.microsoft.com/en-US/windows7/What-is-Credential-Manager 13 | http://windows.microsoft.com/en-us/windows7/store-passwords-certificates-and-other-credentials-for-automatic-logon -------------------------------------------------------------------------------- /SvcData/Core/Winmgmt.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/Winmgmt.txt -------------------------------------------------------------------------------- /SvcData/Core/vds.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Core/vds.txt -------------------------------------------------------------------------------- /SvcData/Defender/AppIDSvc.txt: -------------------------------------------------------------------------------- 1 | # AppLocker\Application Identity 2 | TITLE:AppLocker\%1 3 | Determines and verifies the identity of an application. Disabling this service will prevent AppLocker from being enforced. This service is configured by default for a manual start. When started, by default it logs on using the local service account. 4 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_appidsvc 5 | 6 | RELATED: AppLocker 7 | -------------------------------------------------------------------------------- /SvcData/Defender/BFE.txt: -------------------------------------------------------------------------------- 1 | # Base Filtering Engine 2 | # Manages firewall and Internet Protocol security (IPsec) policies and implements user mode filtering. 3 | 4 | -------------------------------------------------------------------------------- /SvcData/Defender/MpsSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Firewall 2 | -------------------------------------------------------------------------------- /SvcData/Defender/Sense.txt: -------------------------------------------------------------------------------- 1 | # Windows Defender Advanced Threat Protection 2 | # Helps protect against advanced threats by monitoring and reporting security events that happen on the computer. 3 | Advanced Threat Protection for Windows Defender -------------------------------------------------------------------------------- /SvcData/Defender/WPCSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Defender/WPCSvc.txt -------------------------------------------------------------------------------- /SvcData/Defender/WdNisSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Defender Network Inspection Service 2 | # Helps guard against intrusion attempts targeting known and newly discovered vulnerabilities in network protocols -------------------------------------------------------------------------------- /SvcData/Defender/WinDefend.txt: -------------------------------------------------------------------------------- 1 | # Windows Defender Service 2 | # Helps protect users from malware and other potentially unwanted software 3 | 4 | -------------------------------------------------------------------------------- /SvcData/Defender/readme: -------------------------------------------------------------------------------- 1 | Threat prevention and protection services. Parental controls. -------------------------------------------------------------------------------- /SvcData/Defender/wscsvc.txt: -------------------------------------------------------------------------------- 1 | # Security Center 2 | Monitors and reports security health settings on the computer, including: firewall (on/off), antivirus (on/off/out of date), antispyware (on/off/out of date), Windows Update (automatic/manual), User Account Control (on/off), and Internet settings (recommended/not recommended). 3 | Provides COM APIs for independent software vendors to register and record the state of their products to the Security Center service. 4 | The Security and Maintenance UI uses the service to provide systray alerts and a graphical view of the security health states in the Security and Maintenance control panel. 5 | Network Access Protection (NAP) uses the service to report the security health states of clients to the NAP Network Policy Server to make network quarantine decisions. 6 | The service also has a public API that allows external consumers to programmatically retrieve the aggregated security health state of the system. 7 | -------------------------------------------------------------------------------- /SvcData/Development/IpOverUsbSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Phone IP over USB Transport 2 | # Enables communication between Windows Phone SDK and Windows Phone device. If the service is stopped, application deployment and debugging will fail on device. 3 | -------------------------------------------------------------------------------- /SvcData/Development/MDM.txt: -------------------------------------------------------------------------------- 1 | # Machine Debug Manager 2 | # Supports local and remote debugging for Visual Studio and script debuggers. If this service is stopped, the debuggers will not function properly. 3 | -------------------------------------------------------------------------------- /SvcData/Development/Te.Service.txt: -------------------------------------------------------------------------------- 1 | # Program Files (x86)\windows kits\8.1\testing\runtimes\taef\wex.services.exe 2 | # The Test Authoring and Execution Framework (TAEF) provides a consistent mechanism for developers and testers to write and run automation. The framework provides a single infrastructure that allows them to share tests across disciplines and teams. 3 | Related to: Windows Kits\8.1 4 | May be related to: Te.Service -------------------------------------------------------------------------------- /SvcData/Development/VsEtwService120.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Development/VsEtwService120.txt -------------------------------------------------------------------------------- /SvcData/Development/fussvc.txt: -------------------------------------------------------------------------------- 1 | # Fast User Switching Utility Service 2 | # app certification kit\fussvc.exe 3 | Related to: Windows Kits\8.1 4 | May be related to Te.Service. -------------------------------------------------------------------------------- /SvcData/Diagnostics/Compability/AeLookupSvc.txt: -------------------------------------------------------------------------------- 1 | # Application Experience 2 | # Processes application compatibility cache requests for applications as they are launched. If disabled, you may not be informed of compatability issues with certain software. 3 | 4 | https://www.windows-security.org/windows-service/application-experience 5 | > Processes application compatibility lookup requests for applications as they start, provides support for computers that are running programs in compatibility mode, reports on compatibility issues, and automatically applies software updates to programs. 6 | 7 | Triggered by a Microsoft-Windows-ApplicationExperience-LookupServiceTrigger event. Probably means this is a background check/report, not something that reconfigures the application as it starts -- because it's already running. 8 | 9 | > The Application Experience service must be active for application compatibility software updates to be applied. You cannot customize this service; the operating system uses it internally. This service does not use any network, Internet, or Active Directory Domain Services (AD DS) resources. 10 | 11 | > If you disable the Application Experience service, the service continues to run, but no calls are made to the service. You cannot stop the actual process. 12 | 13 | On Windows 7, it's in the "Application-Experience-Infrastructure" package, together with shimeng.dll and apphelp.dll, so may be related to PcaSvc. 14 | While the PcaSvc itself is in another package: "Application-Experience-Program Compatibility Assistant". 15 | 16 | > AELookupSvc creates a work item to perform a compatibility check for every new process. 17 | > AELookupSvc caches new processes to prevent an unnecessary compatibility check the next time that process or program starts. Some executable files, like CMD.EXE never get cached. 18 | https://www.itprotoday.com/windows-server/q-handle-leaks-may-occur-aelookupsvc-application-experience-lookup-service-windows 19 | 20 | KB902196 21 | > This service is part of an infrastructure that automatically applies software updates to programs to make sure that they run on newly released service packs and newly released versions of the Windows operating system. 22 | > Part of the Application Compatibility Administrator. Reports on compatibility issues and automatically applies software updates to programs. 23 | https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/902196 24 | 25 | > The related checks can be disabled though Group Policy settings for program compatibility. When this setting is disabled, the service will continue to run, but no calls will be made to the service. 26 | -------------------------------------------------------------------------------- /SvcData/Diagnostics/Compability/PcaSvc.txt: -------------------------------------------------------------------------------- 1 | # PCA monitors programs installed and run by the user and detects known compatibility problems. If this service is stopped, PCA will not function properly. 2 | # This service provides support for the Program Compatibility Assistant (PCA). 3 | # Program Compability Assistant Service 4 | Disabling does not affect explicitly enforced shims (i.e. AppLocale or shims configred in the environment variables) 5 | 6 | > The Program Compatibility Assistant Service attempts to find software and driver updates that improve the compatibility of applications with Windows 7. The Program Compatibility Assistant Service runs automatically when it detects that an older program is attempting to run in Windows 7 and is encountering problems. 7 | https://www.windows-security.org/windows-service/program-compatibility-assistant-service -------------------------------------------------------------------------------- /SvcData/Diagnostics/Compability/UI0Detect.txt: -------------------------------------------------------------------------------- 1 | # Interactive Services Detection 2 | # Enables user notification of user input for interactive services, which enables access to dialogs created by interactive services when they appear. If this service is stopped, notifications of new interactive service dialogs will no longer function and there might not be access to interactive service dialogs. If this service is disabled, both notifications of and access to new interactive service dialogs will no longer function. 3 | Can be safely set to manual if you don't use interactive services. 4 | 5 | -------------------------------------------------------------------------------- /SvcData/Diagnostics/DPS.txt: -------------------------------------------------------------------------------- 1 | # Diagnostics Policy Service -------------------------------------------------------------------------------- /SvcData/Diagnostics/DcpSvc.txt: -------------------------------------------------------------------------------- 1 | # Data Collection and Publishing (Crowdsourcing Service) 2 | # The DCP (Data Collection and Publishing) service supports first party apps to upload data to cloud. 3 | TELEMETRY 4 | Seems to be related to Windows Phone and "crowdsourcing", telemetry. Contains URLs below. 5 | 6 | In dcpsvc.dll: 7 | > Windows Phone Crowdsourcing Data Loader 8 | > X-WPS-Partner-StatusCode, X-WPS-DeviceID:, X-WPS-Partner-StatusMessage, Content-Encoding: gzip, X-WPS-LiveID:, X-WPS-Crowdsource 9 | > https://dcpservice.windowsphone.com 10 | > https://dcp-pn.dcpservice.windowsphone-int.com/ 11 | > dcp.windowsphone.net 12 | > PhoneMobileOperatorName, 13 | > Microsoft.Windows.Telemetry.DataCollectionAndPublish 14 | > Microsoft-Windows-DataCollectionServiceChannel 15 | 16 | Seems to have been called "CrowdsourcingService" before, as all function names start with that. 17 | 18 | Probably better off disabled and/or deleted. Looks like a remnant from something deprecated. -------------------------------------------------------------------------------- /SvcData/Diagnostics/DiagTrack.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Diagnostics/DiagTrack.txt -------------------------------------------------------------------------------- /SvcData/Diagnostics/WdiServiceHost.txt: -------------------------------------------------------------------------------- 1 | # Diagnostic Service Host 2 | -------------------------------------------------------------------------------- /SvcData/Diagnostics/WdiSystemHost.txt: -------------------------------------------------------------------------------- 1 | # Diagnostic System Host 2 | -------------------------------------------------------------------------------- /SvcData/Diagnostics/WerSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Error Reporting Service 2 | Gives users the opportunity to send data about errors to Microsoft when programs stop working or responding, and to receive information about solutions. It also generates logs for the Problem Reports and Solutions diagnostic and repair service. 3 | 4 | Solutions can include instructions for working around a problem, or links to updated drivers, patches, or Microsoft Knowledge Base articles. 5 | 6 | Data to send and excluded applications can be configured by the administrator. See Problem Reporting settings page, or Group Policy under Administrative Templates\Windows Components\Windows Error Reporting\Consent. 7 | 8 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_wersvc 9 | 10 | RELATED: wercplsupport -------------------------------------------------------------------------------- /SvcData/Diagnostics/diagnosticshub.standardcollector.service.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Diagnostics/diagnosticshub.standardcollector.service.txt -------------------------------------------------------------------------------- /SvcData/Diagnostics/readme: -------------------------------------------------------------------------------- 1 | Broad categories: 2 | 3 | Compability 4 | 5 | Diagnostics 6 | * DPS 7 | * Windows Error Reporting 8 | 9 | Telemetry 10 | Feedback -------------------------------------------------------------------------------- /SvcData/Diagnostics/wercplsupport.txt: -------------------------------------------------------------------------------- 1 | # Problem Reports and Solutions Control Panel Support 2 | # Provides support for viewing, sending, and deleting system-level problem reports for the Problem Reports and Solutions control panel. This service is part of the Windows Diagnostic Infrastructure. 3 | 4 | RELATED: WerSvc -------------------------------------------------------------------------------- /SvcData/Diagnostics/wisvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Insider Service 2 | Purpose unclear, but obviously feedback-related. -------------------------------------------------------------------------------- /SvcData/Enterprise/AppMgmt.txt: -------------------------------------------------------------------------------- 1 | # Application Management 2 | Processes requests to enumerate, install and remove applications that are deployed through the organization via Group Policy. 3 | 4 | "Control Panel > Get Programs" uses this to retrieve the list of deployed applications on the network. 5 | 6 | Opportunistically called on any application removal, or when a component (such as the shell) makes an installation request for an application to handle a file name extension, Component Object Model (COM) class, or ProgID that is not present on the computer. 7 | 8 | Manual by default. Started automatically on first demand. Does not stop after it is started. 9 | 10 | DISABLE: Users cannot install, remove, or enumerate applications that are deployed in AD DS. Otherwise fine. 11 | 12 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_appmgmt 13 | 14 | + W7-Pro, W7-Ult, W7-Ent, WS2008R2 15 | - W7-Str, W7-HB, W7-HP -------------------------------------------------------------------------------- /SvcData/Enterprise/AxInstSV.txt: -------------------------------------------------------------------------------- 1 | # ActiveX Installer (AxInstSV) 2 | Provides User Account Control validation for the installation of ActiveX controls from the Internet and enables management of ActiveX control installation based on Group Policy settings. 3 | 4 | Started on demand. 5 | DISABLE: The installation of ActiveX controls will behave according to default browser settings. 6 | -------------------------------------------------------------------------------- /SvcData/Enterprise/DmEnrollmentSvc.txt: -------------------------------------------------------------------------------- 1 | # Device Management Enrollment Service 2 | # Performs Device Enrollment Activities for Device Management 3 | RELATED TO: Mobile Device Management (MDM) / DeviceManagement (DM) / Enterprise Management 4 | SEE ALSO: DmEnrollmentSvc -------------------------------------------------------------------------------- /SvcData/Enterprise/EntAppSvc.txt: -------------------------------------------------------------------------------- 1 | # Enterprise App Management Service -------------------------------------------------------------------------------- /SvcData/Enterprise/Netlogon.txt: -------------------------------------------------------------------------------- 1 | Maintains an encrypted channel between this computer and the domain controller that it uses to authenticate users and services. 2 | 3 | Passes user credentials and returns the domain security identifiers and user rights for the user, which is commonly referred to as pass-through authentication. 4 | 5 | Manual by default. After the computer joins a domain, the service starts automatically. 6 | 7 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_netlogon 8 | 9 | DISABLE: Not required as this won't start outside a domain. 10 | -------------------------------------------------------------------------------- /SvcData/Enterprise/StorSvc.txt: -------------------------------------------------------------------------------- 1 | # Storage Service 2 | > Enforces group policy settings for storage devices. Provides enabling services for storage settings and external storage expansion. 3 | Unsure if this is limited to this category. -------------------------------------------------------------------------------- /SvcData/Enterprise/WPDBusEnum.txt: -------------------------------------------------------------------------------- 1 | # Portable Device Enumerator Service 2 | > Enforces Group Policy settings for syncing removable mass-storage devices. 3 | > Enables applications such as Windows Media Player and Image Import Wizard to transfer and synchronize content by using removable mass-storage devices. 4 | > Enables you to specify which portable storage devices are allowed to be connected to systems that are managed with Group Policy. 5 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_wpdbusenum -------------------------------------------------------------------------------- /SvcData/Enterprise/dmwappushservice.txt: -------------------------------------------------------------------------------- 1 | # WAP Push Message Routing Service 2 | RELATED TO: Mobile Device Management (MDM) / DeviceManagement (DM) / Enterprise Management 3 | SEE ALSO: DmEnrollmentSvc -------------------------------------------------------------------------------- /SvcData/Enterprise/gpsvc.txt: -------------------------------------------------------------------------------- 1 | # Group Policy Client 2 | Applies group policy settings for this computer and its users. 3 | 4 | Group policies are OS commands, policies and settings configured by the administrators of the domain or local computer. One way to configure policies is through Group Policy MMC snap-in. 5 | 6 | Policies are distributed throughout the domain and applied to each participating PC with the help of this component. PCs 7 | 8 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_gpsvc 9 | 10 | DISABLE: Group Policies will not be applied. Since even local operation depends on group policies these days, probably leave running. 11 | -------------------------------------------------------------------------------- /SvcData/Enterprise/hkmsvc.txt: -------------------------------------------------------------------------------- 1 | # Health Key and Certificate Management 2 | TITLE: NAP\%1 3 | Provides X.509 certificate and key management services for the Network Access Protection. 4 | 5 | DISABLE: If you don't use NAP (see NAPAgent for details). Enforcement technologies that use X.509 certificates may not function properly. 6 | 7 | RELATED: NAPAgent 8 | -------------------------------------------------------------------------------- /SvcData/Enterprise/napagent.txt: -------------------------------------------------------------------------------- 1 | # Network Access Protection Agent 2 | TITLE:NAP\%1 3 | Lets administrators validate and enforce compliance with system health policies for network access and communication 4 | 5 | Clients are evaluated for compliance with organizational software security policies such as mandatory updates, antivirus, signatures, and firewall configurations. 6 | 7 | https://en.wikipedia.org/wiki/Network_Access_Protection 8 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx 9 | 10 | DISABLE: Cannot access NAP networks. 11 | RELATED: hkmsvc 12 | -------------------------------------------------------------------------------- /SvcData/Enterprise/readme: -------------------------------------------------------------------------------- 1 | Group Policy and its enforcement 2 | Domain / Active Directory participation 3 | Enterprise managment / Mobile Device Management 4 | -------------------------------------------------------------------------------- /SvcData/Hardware/Bluetooth/BthHFSrv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Bluetooth/BthHFSrv.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Bluetooth/bthserv.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Bluetooth/bthserv.txt -------------------------------------------------------------------------------- /SvcData/Hardware/DeviceAssociationService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/DeviceAssociationService.txt -------------------------------------------------------------------------------- /SvcData/Hardware/DeviceInstall.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/DeviceInstall.txt -------------------------------------------------------------------------------- /SvcData/Hardware/DsmSvc.txt: -------------------------------------------------------------------------------- 1 | # Device Setup Manager 2 | # Enables the detection, download and installation of device-related software. If this service is disabled, devices may be configured with outdated software, and may not work correctly. 3 | -------------------------------------------------------------------------------- /SvcData/Hardware/Fax.txt: -------------------------------------------------------------------------------- 1 | # Enables you to send and receive faxes, utilizing fax resources available on this computer or on the network. 2 | # Fax 3 | This service is not installed by default, you can install it through "Turn Windows Features on or off". 4 | 5 | -------------------------------------------------------------------------------- /SvcData/Hardware/Mobile/PhoneSvc.txt: -------------------------------------------------------------------------------- 1 | # Phone Service 2 | # Manages the telephony state on the device -------------------------------------------------------------------------------- /SvcData/Hardware/Mobile/RmSvc.txt: -------------------------------------------------------------------------------- 1 | # Radio Management Service 2 | # Radio Management and Airplane Mode Service -------------------------------------------------------------------------------- /SvcData/Hardware/PlugPlay.txt: -------------------------------------------------------------------------------- 1 | # Plug and Play 2 | # Enables a computer to recognize and adapt to hardware changes with little or no user input. Stopping or disabling this service will result in system instability. 3 | 4 | CRITICAL: The system will not boot. -------------------------------------------------------------------------------- /SvcData/Hardware/Printers/PrintNotify.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Printers/PrintNotify.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Printers/Spooler.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Printers/Spooler.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Sensors/SensorDataService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Sensors/SensorDataService.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Sensors/SensorService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Sensors/SensorService.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Sensors/SensrSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Sensors/SensrSvc.txt -------------------------------------------------------------------------------- /SvcData/Hardware/ShellHWDetection.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/ShellHWDetection.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Smartcards/CertPropSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Smartcards/CertPropSvc.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Smartcards/SCPolicySvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Smartcards/SCPolicySvc.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Smartcards/SCardSvr.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Smartcards/SCardSvr.txt -------------------------------------------------------------------------------- /SvcData/Hardware/Smartcards/ScDeviceEnum.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/Smartcards/ScDeviceEnum.txt -------------------------------------------------------------------------------- /SvcData/Hardware/TabletInputService.txt: -------------------------------------------------------------------------------- 1 | # Touch Keyboard and Handwriting Panel Service 2 | # Enables Touch Keyboard and Handwriting Panel pen and ink functionality 3 | -------------------------------------------------------------------------------- /SvcData/Hardware/WbioSrvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/WbioSrvc.txt -------------------------------------------------------------------------------- /SvcData/Hardware/WcsPlugInService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Hardware/WcsPlugInService.txt -------------------------------------------------------------------------------- /SvcData/Hardware/WiaRpc.txt: -------------------------------------------------------------------------------- 1 | # Still Image Acquisition Events 2 | # Launches applications associated with still image acquisition events. 3 | 4 | TITLE: WIA\%1 5 | 6 | RELATED: WIA 7 | -------------------------------------------------------------------------------- /SvcData/Hardware/hidserv.txt: -------------------------------------------------------------------------------- 1 | # Human Interface Device Service 2 | # Activates and maintains the use of hot buttons on keyboards, remote controls, and other multimedia devices. It is recommended that you keep this service running. 3 | -------------------------------------------------------------------------------- /SvcData/Hardware/irmon.txt: -------------------------------------------------------------------------------- 1 | # Infrared monitor service 2 | # Detects other Infrared devices that are in range and launches the file transfer application. Stopping the service will prevent file transfer from working -------------------------------------------------------------------------------- /SvcData/Hardware/readme: -------------------------------------------------------------------------------- 1 | Services to support a particular class of hardware devices, or particular devices. -------------------------------------------------------------------------------- /SvcData/Hardware/stisvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Image Acquisition (WIA) 2 | # Provides image acquisition services for scanners and cameras 3 | 4 | TITLE: WIA\%1 5 | -------------------------------------------------------------------------------- /SvcData/Hardware/wudfsvc.txt: -------------------------------------------------------------------------------- 1 | # Windows User-Mode Driver Framework 2 | Can't be stopped once it's started. 3 | 4 | -------------------------------------------------------------------------------- /SvcData/HyperV/HvHost.txt: -------------------------------------------------------------------------------- 1 | # HV Host Service 2 | # Provides an interface for the Hyper-V hypervisor to provide per-partition performance counters to the host operating system. -------------------------------------------------------------------------------- /SvcData/HyperV/vmicguestinterface.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Guest Service Interface 2 | # Provides an interface for the Hyper-V host to interact with specific services running inside the virtual machine. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmicheartbeat.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Heartbeat Service 2 | # Monitors the state of this virtual machine by reporting a heartbeat at regular intervals. This service helps you identify running virtual machines that have stopped responding. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmickvpexchange.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Data Exchange Service 2 | # Provides a mechanism to exchange data between the virtual machine and the operating system running on the physical computer. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmicrdv.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Remote Desktop Virtualization Session 2 | # Provides a platform for communication between the virtual machine and the operating system running on the physical computer. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmicshutdown.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Guest Shutdown Service 2 | # Provides a mechanism to shut down the operating system of this virtual machine from the management interfaces on the physical computer. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmictimesync.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Time Synchronization Service 2 | # Synchronizes the system time of this virtual machine with the system time of the physical computer. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmicvmsession.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V PowerShell Direct Service 2 | # Provides a mechanism to manage virtual machine with PowerShell via VM session without a virtual network. 3 | -------------------------------------------------------------------------------- /SvcData/HyperV/vmicvss.txt: -------------------------------------------------------------------------------- 1 | # Hyper-V Volume Shadow Copy Requestor 2 | # Coordinates the communications that are required to use Volume Shadow Copy Service to back up applications and data on this virtual machine from the operating system on the physical computer. 3 | -------------------------------------------------------------------------------- /SvcData/IIS/AppHostSvc.txt: -------------------------------------------------------------------------------- 1 | # IIS Application Host Helper Service 2 | Enables IIS configuration history and application pool SID (security identifier) mapping. It enables the configuration history functionality by saving the ApplicationHost.config file to separate configuration history subdirectories at set intervals. 3 | 4 | https://technet.microsoft.com/en-us/library/cc735036(v=ws.10).aspx 5 | -------------------------------------------------------------------------------- /SvcData/IIS/IISADMIN.txt: -------------------------------------------------------------------------------- 1 | # IIS Admin Service 2 | Often missing from home systems. -------------------------------------------------------------------------------- /SvcData/IIS/WMSvc.txt: -------------------------------------------------------------------------------- 1 | # IIS Web Management Service -------------------------------------------------------------------------------- /SvcData/IIS/w3logsvc.txt: -------------------------------------------------------------------------------- 1 | # W3C logging service 2 | -------------------------------------------------------------------------------- /SvcData/Indexing/CISVC.txt: -------------------------------------------------------------------------------- 1 | # Indexing Service 2 | Indexes the contents and properties of files on local and remote computers and provides quick search capability through a flexible querying language. 3 | 4 | Extracts all textual information. Updates index whenever a file is created, modified, or deleted. 5 | 6 | Replaced by Windows Search in Windows 7 and Windows Server 2008 R2. Still available but must be explicitly installed. 7 | -------------------------------------------------------------------------------- /SvcData/Indexing/WSearch.txt: -------------------------------------------------------------------------------- 1 | # Windows Search 2 | # Provides content indexing, property caching, and search results for files, e-mail, and other content. 3 | -------------------------------------------------------------------------------- /SvcData/Kiosk/RetailDemo.txt: -------------------------------------------------------------------------------- 1 | # Retail Demo Service 2 | # The Retail Demo service controls device activity while the device is in retail demo mode. 3 | Retail demo mode is a locked-down mode intended for running the device in a store. -------------------------------------------------------------------------------- /SvcData/Kiosk/embeddedmode.txt: -------------------------------------------------------------------------------- 1 | # Embedded Mode 2 | # The Embedded Mode service enables scenarios related to Background Applications. Disabling this service will prevent Background Applications from being activated. -------------------------------------------------------------------------------- /SvcData/Kiosk/shpamsvc.txt: -------------------------------------------------------------------------------- 1 | # Shared PC Account Manager 2 | # Manages profiles and accounts on a SharedPC configured device 3 | Shared PC mode optimizes Windows 10 for shared use scenarios, such as touchdown spaces in an enterprise and temporary customer use in retail. 4 | https://technet.microsoft.com/en-us/itpro/windows/manage/set-up-shared-or-guest-pc -------------------------------------------------------------------------------- /SvcData/Licensing/ClipSvc.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Licensing/ClipSvc.lnk -------------------------------------------------------------------------------- /SvcData/Licensing/LicenseManager.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Licensing/LicenseManager.txt -------------------------------------------------------------------------------- /SvcData/Licensing/WatAdminSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Activation Technologies Service 2 | Periodically determines if your Windows Product ID is valid, and if not, displays warnings that your copy of Windows may not be Genuine. 3 | 4 | Not required to run Automatically, but probably shouldn't be uninstalled or disabled. 5 | 6 | +Windows 7 7 | -------------------------------------------------------------------------------- /SvcData/Licensing/sppsvc.txt: -------------------------------------------------------------------------------- 1 | # Software Protection 2 | # Enables the download, installation and enforcement of digital licenses for Windows and Windows applications. If the service is disabled, the operating system and licensed applications may run in a notification mode. It is strongly recommended that you not disable the Software Protection service. 3 | -------------------------------------------------------------------------------- /SvcData/Licensing/sppuinotify.txt: -------------------------------------------------------------------------------- 1 | # SPP Notification Service 2 | # Provides software licensing activation and notification. 3 | RELATED: sppsvc 4 | -------------------------------------------------------------------------------- /SvcData/Logon/AppInfo.txt: -------------------------------------------------------------------------------- 1 | # Application Information 2 | # Facilitates the running of interactive applications with additional administrative privileges. If this service is stopped, users will be unable to launch applications with the additional administrative privileges they may require to perform desired user tasks. 3 | -------------------------------------------------------------------------------- /SvcData/Logon/AppReadiness.txt: -------------------------------------------------------------------------------- 1 | # Gets apps ready for use the first time a user signs in to this PC and when adding new apps. 2 | -------------------------------------------------------------------------------- /SvcData/Logon/LSM.txt: -------------------------------------------------------------------------------- 1 | # Local Session Manager 2 | # Core Windows Service that manages local user sessions. Stopping or disabling this service will result in system instability. 3 | CRITICAL: Won't log in. -------------------------------------------------------------------------------- /SvcData/Logon/ProfSvc.txt: -------------------------------------------------------------------------------- 1 | # User Profile Service 2 | # This service is responsible for loading and unloading user profiles. If this service is stopped or disabled, users will no longer be able to successfully sign in or sign out, apps might have problems getting to users' data, and components registered to receive profile event notifications won't receive them. 3 | -------------------------------------------------------------------------------- /SvcData/Logon/SENS.lnk: -------------------------------------------------------------------------------- 1 | SENS is also required for logon, or no one except Administrators will be able to log in. -------------------------------------------------------------------------------- /SvcData/Logon/Terminal Services/SessionEnv.txt: -------------------------------------------------------------------------------- 1 | # Remote Desktop Configuration service 2 | # Remote Desktop Configuration service (RDCS) is responsible for all Remote Desktop Services and Remote Desktop related configuration and session maintenance activities that require SYSTEM context. These include per-session temporary folders, RD themes, and RD certificates. 3 | -------------------------------------------------------------------------------- /SvcData/Logon/Terminal Services/TermService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Logon/Terminal Services/TermService.txt -------------------------------------------------------------------------------- /SvcData/Logon/Terminal Services/UmRdpService.txt: -------------------------------------------------------------------------------- 1 | # Remote Desktop Services UserMode Port Redirector service 2 | # Allows the redirection of Printers/Drives/Ports for RDP connections. 3 | -------------------------------------------------------------------------------- /SvcData/Logon/UserManager.txt: -------------------------------------------------------------------------------- 1 | # User Manager 2 | # User Manager provides the runtime components required for multi-user interaction. 3 | # If this service is stopped, some applications may not operate correctly. -------------------------------------------------------------------------------- /SvcData/Logon/seclogon.txt: -------------------------------------------------------------------------------- 1 | # Secondary Logon 2 | # Enables starting processes under alternate credentials. If this service is stopped, this type of logon access will be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Maintenance/SDRSVC.txt: -------------------------------------------------------------------------------- 1 | # Windows Backup 2 | # Provides Windows Backup and Restore capabilities. 3 | -------------------------------------------------------------------------------- /SvcData/Maintenance/VSS.txt: -------------------------------------------------------------------------------- 1 | # Volume Shadow Copy 2 | Implements volume shadow copies, which are used for backup and other purposes, and manages the volume snapshots. 3 | 4 | A shadow copy is a snapshot copy of a disk volume that represents a consistent read-only point in time for that volume. This snapshot then stays constant and allows an application, such as backup software, to copy data from the shadow copy to tape. 5 | 6 | Needed for Backup and Restore, System Restore points and for any third-party backup solutions which use it. 7 | 8 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_vss 9 | 10 | RELATED: swprv -------------------------------------------------------------------------------- /SvcData/Maintenance/W32Time.txt: -------------------------------------------------------------------------------- 1 | # Windows Time 2 | # Maintains date and time synchronization on all clients and servers in the network. 3 | On a workstation, synchronizes time with external sources. On a domain controller, also provides time to domain participants. 4 | 5 | Set to manual and can be kept manual. 6 | 7 | Synchronization itself is optional, but the following requires computer clock to be precise enough: 8 | * Cryptography (various handshakes) 9 | * Domain authentication 10 | * HTTPS / SSL / TLS / Secure connections 11 | 12 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_w32time -------------------------------------------------------------------------------- /SvcData/Maintenance/defragsvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Maintenance/defragsvc.txt -------------------------------------------------------------------------------- /SvcData/Maintenance/fhsvc.txt: -------------------------------------------------------------------------------- 1 | # File History Service 2 | # Protects user files from accidental loss by copying them to a backup location 3 | -------------------------------------------------------------------------------- /SvcData/Maintenance/readme: -------------------------------------------------------------------------------- 1 | Computer maintenance. Includes: 2 | * Defragmentation 3 | * Release of unused resources 4 | * Backup 5 | * Restore points 6 | * Previous versions 7 | * Shadow copy 8 | 9 | Does not include services which provide non-trivial additional functions, such as synchronization or link tracking. These should have their own categories. 10 | -------------------------------------------------------------------------------- /SvcData/Maintenance/svsvc.txt: -------------------------------------------------------------------------------- 1 | # Spot verifier 2 | # Verifies potential file system corruptions. 3 | Scans for potential damage in the file system. -------------------------------------------------------------------------------- /SvcData/Maintenance/swprv.txt: -------------------------------------------------------------------------------- 1 | # Microsoft Software Shadow Copy Provider 2 | Manages software-based volume shadow copies taken by the Volume Shadow Copy service. See VSS service for the description of Shadow Copies. 3 | 4 | There are two classes of shadow copies: 5 | 6 | * A hardware copy is a mirror of the volume on a separate device which can be unmounted. 7 | 8 | * A software shadow copy uses a copy-on-write scheme to copy all sectors of a volume that change over time into a differential area on disk. 9 | 10 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_swprv 11 | 12 | RELATED: VSS -------------------------------------------------------------------------------- /SvcData/Maintenance/tzautoupdate.txt: -------------------------------------------------------------------------------- 1 | # Auto Time Zone Updater 2 | # Automatically sets the system time zone. -------------------------------------------------------------------------------- /SvcData/Maintenance/wbengine.txt: -------------------------------------------------------------------------------- 1 | # Block Level Backup Engine Service 2 | Performs block level backup and recovery of data. Used by Windows Backup to perform backup and recovery operations. 3 | 4 | The service allows for backups to occur at the hard disk level, instead of just file by file, in a process similar to disk imaging. 5 | 6 | Manual by default and okay to keep so. 7 | 8 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_wbengine 9 | 10 | RELATED: VSS, swprv -------------------------------------------------------------------------------- /SvcData/Multimedia/AudioEndpointBuilder.txt: -------------------------------------------------------------------------------- 1 | # Windows Audio Endpoint Builder -------------------------------------------------------------------------------- /SvcData/Multimedia/Audiosrv.txt: -------------------------------------------------------------------------------- 1 | # Windows Audio -------------------------------------------------------------------------------- /SvcData/Multimedia/MMCSS.txt: -------------------------------------------------------------------------------- 1 | # Multimedia Class Scheduler service 2 | Enables multimedia applications to schedule time-sensitive tasks for priority CPU processing. 3 | 4 | Uses information stored in the registry to identify supported tasks and determine the relative priority of threads performing these tasks. Each thread that is performing work related to a particular task calls AvSetMmThreadCharacteristics to inform MMCSS of it. 5 | 6 | https://msdn.microsoft.com/en-us/library/windows/desktop/ms684247(v=vs.85).aspx 7 | 8 | Can be safely stopped, multimedia apps will work with default scheduling. -------------------------------------------------------------------------------- /SvcData/Multimedia/Mcx2Svc.txt: -------------------------------------------------------------------------------- 1 | # Media Center Extender Service 2 | # Allows Media Center Extenders to locate and connect to the computer. 3 | -------------------------------------------------------------------------------- /SvcData/Multimedia/THREADORDER.txt: -------------------------------------------------------------------------------- 1 | # Thread Ordering Service 2 | TITLE:MMCSS\%1 3 | Controls the execution of one or more client threads. Ensures that each client thread runs once during the specified period and in relative order. 4 | 5 | Off by default and must be started by the user. While the thread ordering service is running, it is activated every 5 seconds to check whether there is a new request, even if the system is idle. This prevents the system from sleeping for longer than 5 seconds, causing it to consume more power. 6 | 7 | https://msdn.microsoft.com/en-us/library/windows/desktop/ms686752(v=vs.85).aspx 8 | 9 | Can be safely disabled. 10 | 11 | RELATED: MMCSS 12 | -------------------------------------------------------------------------------- /SvcData/Multimedia/WMPNetworkSvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Media Player Network Sharing Service 2 | Shares Windows Media Player libraries to other networked players and media devices using UPnP. 3 | Can be added or removed from "Turn Windows Features on or off". 4 | -------------------------------------------------------------------------------- /SvcData/Multimedia/ehRecvr.txt: -------------------------------------------------------------------------------- 1 | # Windows Media Center Receiver Service 2 | Windows Media Center Service to receive TV and FM broadcasts. 3 | -------------------------------------------------------------------------------- /SvcData/Multimedia/ehSched.txt: -------------------------------------------------------------------------------- 1 | # Windows Media Center Scheduler Service 2 | Starts and stops TV broadcast recording in Windows Media Center. 3 | -------------------------------------------------------------------------------- /SvcData/Multimedia/readme: -------------------------------------------------------------------------------- 1 | Broadly covers: 2 | 3 | * Audio 4 | * Video 5 | * Microsoft Media Player -------------------------------------------------------------------------------- /SvcData/NET/FontCache3.0.0.0.txt: -------------------------------------------------------------------------------- 1 | # Windows Presentation Foundation Font Cache 2 | # presentationfontcache.exe 3 | -------------------------------------------------------------------------------- /SvcData/NET/aspnet_state.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/NET/aspnet_state.txt -------------------------------------------------------------------------------- /SvcData/NET/clr_optimization_v2.0.50727_32.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/NET/clr_optimization_v2.0.50727_32.txt -------------------------------------------------------------------------------- /SvcData/NET/clr_optimization_v2.0.50727_64.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/NET/clr_optimization_v2.0.50727_64.txt -------------------------------------------------------------------------------- /SvcData/NET/clr_optimization_v4.0.30319_32.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/NET/clr_optimization_v4.0.30319_32.txt -------------------------------------------------------------------------------- /SvcData/NET/clr_optimization_v4.0.30319_64.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/NET/clr_optimization_v4.0.30319_64.txt -------------------------------------------------------------------------------- /SvcData/NET/idsvc.txt: -------------------------------------------------------------------------------- 1 | # Windows CardSpace 2 | # Windows Communication Foundation\infocard.exe 3 | Related to: Windows Communication Foundation (WCF) 4 | 5 | -------------------------------------------------------------------------------- /SvcData/NET/readme: -------------------------------------------------------------------------------- 1 | .NET 2 | ASP.NET 3 | WPF -------------------------------------------------------------------------------- /SvcData/Networking/AJRouter.txt: -------------------------------------------------------------------------------- 1 | # AllJoyn Router Service -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/NcaSvc.txt: -------------------------------------------------------------------------------- 1 | # Network Connectivity Assistant 2 | # Provides DirectAccess status notification for UI components 3 | 4 | Win10: Doesn't seem to affect connections icon. But if set to Manual, tries to auto-start. 5 | -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/NlaSvc.txt: -------------------------------------------------------------------------------- 1 | # Collects and stores configuration information for the network and notifies programs when this information is modified. If this service is stopped, configuration information might be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start. 2 | # Network Location Awareness 3 | This service in conjunction with Network List Service and Network Connections enables status of network connections in the system tray. 4 | 5 | Apparently required for network connections icon in the system tray. 6 | -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/Wcmsvc.txt: -------------------------------------------------------------------------------- 1 | # Windows Connection Manager 2 | # Makes automatic connect/disconnect decisions based on the network connectivity options currently available to the PC and enables management of network connectivity based on Group Policy settings. 3 | 4 | Win10: Apparently required for proper functioning of network connections tray icon. Without it, tray icon will always show lack of connectivity, and its popup network list will be empty. 5 | -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/WinHttpAutoProxySvc.txt: -------------------------------------------------------------------------------- 1 | # WinHTTP implements the client HTTP stack and provides developers with a Win32 API and COM Automation component for sending HTTP requests and receiving responses. In addition, WinHTTP provides support for auto-discovering a proxy configuration via its implementation of the Web Proxy Auto-Discovery (WPAD) protocol. 2 | # WinHTTP Web Proxy Auto-Discovery Service 3 | Win10: Could be disabled when the functionality is not required, but iphlpsvc seems to unfortunately depend on it. 4 | 5 | -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/iphlpsvc.txt: -------------------------------------------------------------------------------- 1 | # IP Helper 2 | # Provides tunnel connectivity using IPv6 transition technologies (6to4, ISATAP, Port Proxy, and Teredo), and IP-HTTPS. If this service is stopped, the computer will not have the enhanced connectivity benefits that these technologies offer. -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/netman.txt: -------------------------------------------------------------------------------- 1 | # Network Connections 2 | # Manages objects in the Network and Dial-Up Connections folder, in which you can view both local area network and remote connections. -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/netprofm.txt: -------------------------------------------------------------------------------- 1 | # Network List Service 2 | # Identifies the networks to which the computer has connected, collects and stores properties for these networks, and notifies applications when these properties change. -------------------------------------------------------------------------------- /SvcData/Networking/Connectivity/nsi.txt: -------------------------------------------------------------------------------- 1 | # This service delivers network notifications (e.g. interface addition/deleting etc) to user mode clients. Stopping this service will cause loss of network connectivity. If this service is disabled, any other services that explicitly depend on this service will fail to start. 2 | # Network Store Interface 3 | Whole bunch of network services depends on this so it is probably indeed critical. 4 | -------------------------------------------------------------------------------- /SvcData/Networking/Dhcp.txt: -------------------------------------------------------------------------------- 1 | # DHCP Client 2 | # Registers and updates IP addresses and DNS records for this computer. If this service is stopped, this computer will not receive dynamic IP addresses and DNS updates. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Networking/Distributed Access/CscService.txt: -------------------------------------------------------------------------------- 1 | # Offline files -------------------------------------------------------------------------------- /SvcData/Networking/Distributed Access/PeerDistSvc.txt: -------------------------------------------------------------------------------- 1 | # BranchCache 2 | Wide area network (WAN) bandwidth optimization technology. When users access content on remote servers, BranchCache copies content from your main office or hosted cloud content servers and caches it at branch office locations, allowing client computers at branch offices to access the content locally rather than over the WAN. 3 | 4 | Content is stored either on servers that are configured to host the cache or, when no server is available in the branch office, on client computers that are running Windows 8 or Windows 7. After a client computer requests and receives content from the main office and the content is cached at the branch office, other computers at the same branch office can obtain the content locally rather than downloading the content from the content server over the WAN link. 5 | -------------------------------------------------------------------------------- /SvcData/Networking/Dnscache.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/Dnscache.txt -------------------------------------------------------------------------------- /SvcData/Networking/EapHost.txt: -------------------------------------------------------------------------------- 1 | # Extensible Authentication Protocol 2 | The Extensible Authentication Protocol (EapHost) service provides network authentication in such scenarios as 802.1x wired and wireless, virtual private network (VPN), and Network Access Protection (NAP). The Extensible Authentication Protocol (EAP) also provides APIs that are used by network access clients, including wireless and VPN clients, during the authentication process. 3 | 4 | EAP supports authentication schemes such as Generic Token Card, One Time Password (OTP), Message Digest 5 (MD5)-Challenge, Transport Layer Security (TLS) for smart card and digital certificate-based authentication, and future authentication technologies. EAP is a critical technology component for establishing secure connections. If you disable this service, this computer is prevented from accessing networks that require EAP authentication. 5 | 6 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx 7 | 8 | -------------------------------------------------------------------------------- /SvcData/Networking/HomeGroup/HomeGroupListener.txt: -------------------------------------------------------------------------------- 1 | # Home Group Listener Service 2 | -------------------------------------------------------------------------------- /SvcData/Networking/HomeGroup/HomeGroupProvider.txt: -------------------------------------------------------------------------------- 1 | # Home Group Provider Service -------------------------------------------------------------------------------- /SvcData/Networking/ICS/ALG.txt: -------------------------------------------------------------------------------- 1 | # Provides support for 3rd party protocol plug-ins for Internet Connection Sharing. 2 | # Application Layer Gateway Service 3 | If you are not using Internet Connection Sharing (ICS) service, the Application Layer Gateway Service and Internet Connection Sharing (ICS) can be safely disabled. 4 | -------------------------------------------------------------------------------- /SvcData/Networking/ICS/SharedAccess.txt: -------------------------------------------------------------------------------- 1 | # Internet connection sharing -------------------------------------------------------------------------------- /SvcData/Networking/ICS/icssvc.txt: -------------------------------------------------------------------------------- 1 | # Provides the ability to share a cellular data connection with another device. -------------------------------------------------------------------------------- /SvcData/Networking/IKEEXT.txt: -------------------------------------------------------------------------------- 1 | # IKE and AuthIP IPsec Keying Modules 2 | # The IKEEXT service hosts the Internet Key Exchange (IKE) and Authenticated Internet Protocol (AuthIP) keying modules. These keying modules are used for authentication and key exchange in Internet Protocol security (IPsec). Stopping or disabling the IKEEXT service will disable IKE and AuthIP key exchange with peer computers. IPsec is typically configured to use IKE or AuthIP; therefore, stopping or disabling the IKEEXT service might result in an IPsec failure and might compromise the security of the system. It is strongly recommended that you have the IKEEXT service running. -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/MSMQ.txt: -------------------------------------------------------------------------------- 1 | # Message Queuing 2 | 3 | # Provides a messaging infrastructure and development tool for creating distributed messaging applications for Windows-based networks and programs. 4 | 5 | Not required unless some distributed software wants it. Almost never required on home systems. 6 | 7 | Can be disabled in "Turn Windows Features on or off". 8 | 9 | +Windows 8, Windows 7, Windows Vista, Windows XP -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/MSMQTriggers.txt: -------------------------------------------------------------------------------- 1 | # Message Queuing Triggers -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/NetMsmqActivator.txt: -------------------------------------------------------------------------------- 1 | # Net.Msmq Listener Adapter 2 | Related to WSA, MSMQ. 3 | 4 | Can be uninstalled from "Turn Windows Features on or off". 5 | Can be disabled, unless something explicitly needs it. 6 | -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/NetPipeActivator.txt: -------------------------------------------------------------------------------- 1 | Net.Pipe Listener Adapter 2 | 3 | Related to WSA. 4 | 5 | Can be uninstalled from "Turn Windows Features on or off". 6 | Can be disabled, unless something explicitly needs it. 7 | -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/NetTcpActivator.txt: -------------------------------------------------------------------------------- 1 | # Net.Tcp Listener Adapter 2 | Related to WSA. 3 | Not to be confused with NetTcpPortSharing, which is mostly unrelated to WSA. 4 | 5 | Can be uninstalled from "Turn Windows Features on or off". 6 | Can be disabled, unless something explicitly needs it. 7 | -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/NetTcpPortSharing.txt: -------------------------------------------------------------------------------- 1 | > A Worker Process: Any process communicating over net.tcp:// using shared ports. 2 | > The WCF TCP transport: Implements the net.tcp:// protocol. 3 | > The Net.TCP Port Sharing Service: Allows many worker processes to share the same TCP port. 4 | 5 | Related to: WCF (Windows Communication Foundation) 6 | 7 | Can safely be disabled almost always, unless some app explicitly requires it. 8 | 9 | Not to be confused with NetTcpActivator, which is part of WSA/Message queueing and is mostly unrelated. 10 | -------------------------------------------------------------------------------- /SvcData/Networking/MSMQ/WAS.txt: -------------------------------------------------------------------------------- 1 | # Windows Process Activation Service 2 | # The Windows Process Activation Service (WAS) provides process activation, resource management and health management services for message-activated applications. 3 | 4 | Related to Message Queueing. 5 | 6 | Can be disabled in "Turn Windows Features on or off". 7 | 8 | +Windows 8 9 | +Windows 7 10 | +Windows Vista -------------------------------------------------------------------------------- /SvcData/Networking/Mobile/SmsRouter.txt: -------------------------------------------------------------------------------- 1 | # SMS Router 2 | 3 | Seems to indeed recieve and dispatch SMS to subscrivers since you can google up discussions about eventlog events from this service when receiving SMS. -------------------------------------------------------------------------------- /SvcData/Networking/NetSetupSvc.txt: -------------------------------------------------------------------------------- 1 | # Network Setup Service 2 | # The Network Setup Service manages the installation of network drivers and permits the configuration of low-level network settings. If this service is stopped, any driver installations that are in-progress may be cancelled. -------------------------------------------------------------------------------- /SvcData/Networking/NfsClnt.txt: -------------------------------------------------------------------------------- 1 | Client for NFS 2 | 3 | Often missing on home systems. -------------------------------------------------------------------------------- /SvcData/Networking/P2Psvc/PNRPAutoReg.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/P2Psvc/PNRPAutoReg.txt -------------------------------------------------------------------------------- /SvcData/Networking/P2Psvc/PNRPsvc.txt: -------------------------------------------------------------------------------- 1 | # Peer Name Resolution Protocol 2 | # Enables serverless peer name resolution over the Internet using the Peer Name Resolution Protocol (PNRP). If disabled, some peer-to-peer and collaborative applications, such as Remote Assistance, may not function. -------------------------------------------------------------------------------- /SvcData/Networking/P2Psvc/p2pimsvc.txt: -------------------------------------------------------------------------------- 1 | # Peer Networking Identity Manager -------------------------------------------------------------------------------- /SvcData/Networking/P2Psvc/p2psvc.txt: -------------------------------------------------------------------------------- 1 | # Peer Networking Grouping -------------------------------------------------------------------------------- /SvcData/Networking/PolicyAgent.txt: -------------------------------------------------------------------------------- 1 | # IPsec Policy Agent 2 | # Internet Protocol security (IPsec) supports network-level peer authentication, data origin authentication, data integrity, data confidentiality (encryption), and replay protection. 3 | # This service enforces IPsec policies created through the IP Security Policies snap-in or the command-line tool "netsh ipsec". 4 | # If you stop this service, you may experience network connectivity issues if your policy requires that connections use IPsec. 5 | # Also,remote management of Windows Firewall is not available when this service is stopped. -------------------------------------------------------------------------------- /SvcData/Networking/QWAVE.txt: -------------------------------------------------------------------------------- 1 | # Quality Windows Audio/Video Experience 2 | Quality Windows Audio/Video Experience (qWAVE) is the Quality of Service (QOS) platform introduced in Windows Vista. 3 | 4 | qWAVE provides new features focused on streaming multimedia and real-time content over variable bandwidth networks. These features include the following. 5 | 6 | Auto-discovery of end-to-end QOS compatibility. 7 | End-to-end bandwidth estimation of maximum link capacity (bottleneck bandwidth) and real-time available bandwidth. 8 | Intelligent packet prioritization. 9 | Congestion notification. 10 | Flow shaping. 11 | Distributed admission control, including caching to improve performance and minimize latency. 12 | 13 | https://msdn.microsoft.com/en-us/library/windows/desktop/aa374110%28v=vs.85%29.aspx 14 | 15 | -------------------------------------------------------------------------------- /SvcData/Networking/RemoteAccess.txt: -------------------------------------------------------------------------------- 1 | # Routing and Remote Access 2 | # Offers routing services to businesses in local area and wide area network environments. -------------------------------------------------------------------------------- /SvcData/Networking/SNMP.txt: -------------------------------------------------------------------------------- 1 | SNMP Service 2 | 3 | Enables Simple Network Management Protocol (SNMP) requests to be processed by this computer. If this service is stopped, the computer will be unable to process SNMP requests. If this service is disabled, any services that explicitly depend on it will fail to start. 4 | 5 | This service is not installed by default. -------------------------------------------------------------------------------- /SvcData/Networking/SNMPTrap.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/SNMPTrap.txt -------------------------------------------------------------------------------- /SvcData/Networking/Samba/Browser.txt: -------------------------------------------------------------------------------- 1 | # Computer Browser 2 | # Maintains an updated list of computers on the network and supplies this list to computers designated as browsers. If this service is stopped, this list will not be updated or maintained. If this service is disabled, any services that explicitly depend on it will fail to start. 3 | Enables the computer to participate in the election for maintaining the browser list. The browser list contains all computers that have announced themselves on the network through the Server service 4 | 5 | Home Network: This service only need to be activated on a single computer. It is convenient to activate this service on all computers to avoid single point of failure. 6 | Corporate Network: The Active Directory should be used instead. 7 | 8 | Even if no computer is maintaining the browser list, it is still possible to access remote shares by creating direct shortcuts or mapping network shares (\\computername\sharename). 9 | 10 | If the Computer Browser cannot be reached (either because no computer is running the service or because of a firewall), then it will give the following error message when trying to browse My Network Places: 11 | 12 | WORKGROUP is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have access permissions. 13 | 14 | http://smallvoid.com/article/winnt-services-browser.html 15 | -------------------------------------------------------------------------------- /SvcData/Networking/Samba/LanmanServer.txt: -------------------------------------------------------------------------------- 1 | # Server 2 | # Supports file, print, and named-pipe sharing over the network for this computer. If this service is stopped, these functions will be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Networking/Samba/LanmanWorkstation.txt: -------------------------------------------------------------------------------- 1 | # Workstation 2 | # Supports file, print, and named-pipe sharing over the network for this computer. If this service is stopped, these functions will be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Networking/Samba/lmhosts.txt: -------------------------------------------------------------------------------- 1 | # Provides support for the NetBIOS over TCP/IP (NetBT) service and NetBIOS name resolution for clients on the network, therefore enabling users to share files, print, and log on to the network. 2 | # TCP/IP Netbios Helper 3 | Provides support for the NetBIOS over TCP/IP (NetBT) service including NetBIOS name resolution for clients on the network which is required for Samba (file and printer sharing) to work. 4 | 5 | NetBIOS is an old communication protocol for LAN which covered resolving textual computer names into addresses (on the internet, DNS is used for the same purpose). 6 | 7 | Originally NetBIOS worked as a standalone protocol but these days it's usually implemented over TCP/IP: 8 | https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP 9 | 10 | This service runs NetBIOS over TCP/IP and provides its functions to the system. Of particular importance is NetBIOS local name resolution provided by this service. If lmhosts is disabled, accessing LAN computers by their names will be unavailable. 11 | 12 | -------------------------------------------------------------------------------- /SvcData/Networking/Samba/readme: -------------------------------------------------------------------------------- 1 | Samba or SMB, also known as Lanman, is a network protocol for sharing access to files and printers. If the PC is not connected to the local area network, or shared file and printer access is not used, most components can be disabled. 2 | 3 | lmhosts is of particular importance, as it may be required not only to SMB. 4 | 5 | Unrelated to Home Groups. -------------------------------------------------------------------------------- /SvcData/Networking/Services/RemoteRegistry.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/Services/RemoteRegistry.txt -------------------------------------------------------------------------------- /SvcData/Networking/Services/ftpsvc.txt: -------------------------------------------------------------------------------- 1 | # Microsoft FTP Service 2 | # Enables this server to be a File Transfer Protocol (FTP) server. If this service is stopped, the server cannot function as an FTP server. If this service is disabled, any services that explicitly depend on it will fail to start. 3 | 4 | Default FTP server included in Windows, not installed by default. -------------------------------------------------------------------------------- /SvcData/Networking/Services/simtcp.txt: -------------------------------------------------------------------------------- 1 | # Simple TCP/IP Services 2 | # Supports the following TCP/IP services: Character Generator, Daytime, Discard, Echo, and Quote of the Day. 3 | 4 | This service is not installed by default. -------------------------------------------------------------------------------- /SvcData/Networking/Telephony/RasAuto.txt: -------------------------------------------------------------------------------- 1 | # Creates a connection to a remote network whenever a program references a remote DNS or NetBIOS name or address. 2 | # Remote Access Auto Connection Manager 3 | The Remote Access Auto Connection Manager (RasAuto) service detects unsuccessful attempts to connect to a remote network or computer and provides alternative methods for connection. When a program fails in an attempt to reference a remote DNS or NetBIOS name or address or when network access is unavailable, the service displays a dialog box that allows you to make a dial-up or VPN connection to the remote computer. 4 | 5 | The Remote Access Auto Connection Manager service maintains a local database of connections that were previously used to reach named computers or shares. When the service detects an unsuccessful attempt to reach a remote computer or shared folder, it offers to dial the connection that was last used to reach this remote device. It is started automatically on an as-needed basis. 6 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_rasauto 7 | 8 | -------------------------------------------------------------------------------- /SvcData/Networking/Telephony/RasMan.txt: -------------------------------------------------------------------------------- 1 | # Remote Access Connection Manager 2 | The Remote Access Connection Manager (RasMan) service manages dial-up and VPN connections from your computer to the Internet or other remote networks. When you double-click a connection in the Network Connections folder and then click the Connect button, the Remote Access Connection Manager service either dials the connection or sends a VPN connection request and handles subsequent negotiations with the remote access server to set up the connection. 3 | 4 | The Remote Access Connection Manager service unloads itself when no requests are pending. 5 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_rasman 6 | 7 | -------------------------------------------------------------------------------- /SvcData/Networking/Telephony/SstpSvc.txt: -------------------------------------------------------------------------------- 1 | # Secure Socket Tunneling Protocol Service 2 | # Provides support for the Secure Socket Tunneling Protocol (SSTP) to connect to remote computers using VPN. If this service is disabled, users will not be able to use SSTP to access remote servers. 3 | -------------------------------------------------------------------------------- /SvcData/Networking/Telephony/TapiSrv.txt: -------------------------------------------------------------------------------- 1 | # Telephony 2 | # Provides support for the Secure Socket Tunneling Protocol (SSTP) to connect to remote computers using VPN. If this service is disabled, users will not be able to use SSTP to access remote servers. 3 | -------------------------------------------------------------------------------- /SvcData/Networking/Telephony/readme: -------------------------------------------------------------------------------- 1 | Remote access and VPN connections 2 | 3 | VPN connections are managed in many ways similarly to dial-up connections because they are also remote connections which provide access to a network when established. -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/FDResPub.txt: -------------------------------------------------------------------------------- 1 | # Function Discovery Resource Publication 2 | # Publishes this computer and resources attached to this computer so they can be discovered over the network. If this service is stopped, network resources will no longer be published and they will not be discovered by other computers on the network. -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/IPBusEnum.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/UPNP/IPBusEnum.txt -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/SSDPSRV.txt: -------------------------------------------------------------------------------- 1 | # SSDP Discovery 2 | # Discovers networked devices and services that use the SSDP discovery protocol, such as UPnP devices. Also announces SSDP devices and services running on the local computer. If this service is stopped, SSDP-based devices will not be discovered. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/fdPHost.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/UPNP/fdPHost.txt -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/readme: -------------------------------------------------------------------------------- 1 | All services from this category can safely be disabled if not explicitly desired. -------------------------------------------------------------------------------- /SvcData/Networking/UPNP/upnphost.txt: -------------------------------------------------------------------------------- 1 | # UPnP Device Host 2 | # Allows UPnP devices to be hosted on this computer. If this service is stopped, any hosted UPnP devices will stop functioning and no additional hosted devices can be added. If this service is disabled, any services that explicitly depend on it will fail to start. -------------------------------------------------------------------------------- /SvcData/Networking/WebClient.txt: -------------------------------------------------------------------------------- 1 | # Enables Windows-based programs to create, access, and modify Internet-based files. 2 | # WebClient 3 | The WebClient (WebClient) service enables Win32 applications to access documents on the Internet. The service extends the network capability of Windows by allowing standard Win32 applications to create, read, and write files on Internet file servers through the use of WebDAV, a file-access protocol that is described in XML and uses HTTP for communication. Because it uses standard HTTP, WebDAV communicates using existing Internet infrastructure, such as firewalls and routers. 4 | https://technet.microsoft.com/en-us/library/hh125927%28v=ws.10%29.aspx#BKMK_webclient 5 | 6 | Can be disabled, unless you want the functionality (you rarely do). 7 | 8 | -------------------------------------------------------------------------------- /SvcData/Networking/WinRM.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /SvcData/Networking/WlanSvc.txt: -------------------------------------------------------------------------------- 1 | # The WLANSVC service provides the logic required to configure, discover, connect to, and disconnect from a wireless local area network (WLAN) as defined by IEEE 802.11 standards. It also contains the logic to turn your computer into a software access point so that other devices or computers can connect to your computer wirelessly using a WLAN adapter that can support this. Stopping or disabling the WLANSVC service will make all WLAN adapters on your computer inaccessible from the Windows networking UI. It is strongly recommended that you have the WLANSVC service running if your computer has a WLAN adapter. 2 | # WLAN AutoConfig 3 | Required to connect through WLAN. 4 | 5 | -------------------------------------------------------------------------------- /SvcData/Networking/WwanSvc.txt: -------------------------------------------------------------------------------- 1 | # WWAN AutoConfig 2 | # This service manages mobile broadband (GSM & CDMA) data card/embedded module adapters and connections by auto-configuring the networks. It is strongly recommended that this service be kept running for best user experience of mobile broadband devices. -------------------------------------------------------------------------------- /SvcData/Networking/dot3svc.txt: -------------------------------------------------------------------------------- 1 | # Wired Auto-Config 2 | # The Wired AutoConfig (DOT3SVC) service is responsible for performing IEEE 802.1X authentication on Ethernet interfaces. If your current wired network deployment enforces 802.1X authentication, the DOT3SVC service should be configured to run for establishing Layer 2 connectivity and/or providing access to network resources. Wired networks that do not enforce 802.1X authentication are unaffected by the DOT3SVC service. -------------------------------------------------------------------------------- /SvcData/Networking/lltdsvc.txt: -------------------------------------------------------------------------------- 1 | # Link-Layer Topology Discovery Mapper 2 | # Creates a Network Map, consisting of PC and device topology (connectivity) information, and metadata describing each PC and device. If this service is disabled, the Network Map will not function properly. 3 | -------------------------------------------------------------------------------- /SvcData/Networking/wcncsvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Networking/wcncsvc.txt -------------------------------------------------------------------------------- /SvcData/Third Party/AdobeFlashPlayerUpdateSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/AdobeFlashPlayerUpdateSvc.txt -------------------------------------------------------------------------------- /SvcData/Third Party/CTAudSvcService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/CTAudSvcService.txt -------------------------------------------------------------------------------- /SvcData/Third Party/DirMngr.txt: -------------------------------------------------------------------------------- 1 | GnuPG's service for managing and downloading certificate revocation lists and for downloading the certificates themselves. 2 | Can be set to Manual. 3 | 4 | https://www.gnupg.org/documentation/manuals/dirmngr/ 5 | 6 | 7 | -------------------------------------------------------------------------------- /SvcData/Third Party/FLEXnet Licensing Service.txt: -------------------------------------------------------------------------------- 1 | FLEXnet Licensing Service 2 | 3 | This service performs licensing functions on behalf of FLEXnet enabled products. -------------------------------------------------------------------------------- /SvcData/Third Party/HPSIService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/HPSIService.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/Net Driver HPZ12.txt: -------------------------------------------------------------------------------- 1 | HPZ12\Net Driver 2 | Printer driver -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/Pml Driver HPZ12.txt: -------------------------------------------------------------------------------- 1 | HPZ12\Pml Driver 2 | Printer driver. -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/Stereo Service.txt: -------------------------------------------------------------------------------- 1 | # NVIDIA Stereoscopic 3D Driver Service 2 | Provides system support for NVIDIA Stereoscopic 3D driver. -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/UMVPFSrv.txt: -------------------------------------------------------------------------------- 1 | # UMVPFSrv 2 | User mode Logitech driver. Part of Logitech Webcam and Logitech mouse/keyboard drivers. Disabling does not break neither webcam nor keyboard/mouse functionality. 3 | -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/VIAKaraokeService.txt: -------------------------------------------------------------------------------- 1 | # VIA Karaoke Service 2 | Audio card driver support service. 3 | -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/nvUpdatusService.txt: -------------------------------------------------------------------------------- 1 | # NVIDIA Update Service Daemon 2 | # NVIDIA Settings Update Manager service, used to check new updates from NVIDIA server. 3 | -------------------------------------------------------------------------------- /SvcData/Third Party/Hardware/nvsvc.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /SvcData/Third Party/IAStorDataMgrSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/IAStorDataMgrSvc.txt -------------------------------------------------------------------------------- /SvcData/Third Party/IDriverT.txt: -------------------------------------------------------------------------------- 1 | # InstallDriver Table Manager 2 | # Provides support for the Running Object Table for InstallShield Drivers 3 | Left by some very rare installations (QuickTime is often accused), developer is Macromedia. Probably a custom Macromedia component for InstallShield. 4 | 5 | Most likely can be safely deleted. 6 | -------------------------------------------------------------------------------- /SvcData/Third Party/ImDskSvc.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/ImDskSvc.txt -------------------------------------------------------------------------------- /SvcData/Third Party/MySQL.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/MySQL.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Office/ose.txt: -------------------------------------------------------------------------------- 1 | # ose (Office Source Engine) 2 | -------------------------------------------------------------------------------- /SvcData/Third Party/Office/ose64.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/Office/ose64.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Office/osppsvc.txt: -------------------------------------------------------------------------------- 1 | # osppsvc (Office Software Protection Platform) 2 | -------------------------------------------------------------------------------- /SvcData/Third Party/PSEXESVC.txt: -------------------------------------------------------------------------------- 1 | Server part of a SysInternals' PSEXEC tool. Basically a sleeping legit backdoor, disable when you no longer use it. 2 | -------------------------------------------------------------------------------- /SvcData/Third Party/Samsung UPD Service2.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/Samsung UPD Service2.txt -------------------------------------------------------------------------------- /SvcData/Third Party/SkypeUpdate.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/SkypeUpdate.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Steam Client Service.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/Steam Client Service.txt -------------------------------------------------------------------------------- /SvcData/Third Party/TeamViewer.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/TeamViewer.txt -------------------------------------------------------------------------------- /SvcData/Third Party/TeamViewer7.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/TeamViewer7.txt -------------------------------------------------------------------------------- /SvcData/Third Party/VPNManager.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/VPNManager.txt -------------------------------------------------------------------------------- /SvcData/Third Party/WsAppService.txt: -------------------------------------------------------------------------------- 1 | WsAppService (Wondershare Application Framework Service) -------------------------------------------------------------------------------- /SvcData/Third Party/WsDrvInst.txt: -------------------------------------------------------------------------------- 1 | WsDrvInst (Wondershare Driver Install Service) -------------------------------------------------------------------------------- /SvcData/Third Party/Xbox Live/CDPSvc.txt: -------------------------------------------------------------------------------- 1 | # Connected Device Platform Service 2 | # This service is used for Connected Devices and Universal Glass scenarios 3 | Xbox/SmartGlass related. 4 | 5 | Xbox SmartGlass is a technology which lets mobiles function as a controller with a screen for XBox. 6 | https://en.wikipedia.org/wiki/Xbox_SmartGlass 7 | 8 | Looking into the binary confirms that this is Xbox related. -------------------------------------------------------------------------------- /SvcData/Third Party/Xbox Live/XblAuthManager.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/Xbox Live/XblAuthManager.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Xbox Live/XblGameSave.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/Xbox Live/XblGameSave.txt -------------------------------------------------------------------------------- /SvcData/Third Party/Xbox Live/XboxNetApiSvc.txt: -------------------------------------------------------------------------------- 1 | # Xbox Live Networking Service 2 | # This service supports the Windows.Networking.XboxLive application programming interface. -------------------------------------------------------------------------------- /SvcData/Third Party/dbupdate.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/dbupdate.txt -------------------------------------------------------------------------------- /SvcData/Third Party/dbupdatem.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/dbupdatem.txt -------------------------------------------------------------------------------- /SvcData/Third Party/gupdate.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/gupdate.txt -------------------------------------------------------------------------------- /SvcData/Third Party/gupdatem.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/gupdatem.txt -------------------------------------------------------------------------------- /SvcData/Third Party/rpcapd.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Third Party/rpcapd.txt -------------------------------------------------------------------------------- /SvcData/UevAgentService.txt: -------------------------------------------------------------------------------- 1 | # User Experience Virtualization Service 2 | Monitors registered applications and the operating system for any settings changes, then synchronizes those settings between computers. 3 | 4 | UEV is a facility for enterprise setting sync, something like partial Roaming profiles. 5 | 6 | Settings form various places (AppData, Registry) are grouped into packages by application, then stored on a network share. 7 | 8 | Settings for Desktop applications are synchronized on app exit, Windows settings on logout. 9 | 10 | UE-V uses XML files as settings location templates to monitor and synchronize desktop application settings and Windows desktop settings between computers. By default, some settings location templates are included in UE-V. 11 | 12 | You can also create, edit, or validate custom settings location templates by managing settings synchronization for custom applications. 13 | WinRT apps do not need these templates. 14 | 15 | https://technet.microsoft.com/itpro/mdop/uev-v2/index -------------------------------------------------------------------------------- /SvcData/VMWare/VGAuthService.txt: -------------------------------------------------------------------------------- 1 | # VMware Alias Manager and Ticket Service 2 | -------------------------------------------------------------------------------- /SvcData/VMWare/VMAuthdService.txt: -------------------------------------------------------------------------------- 1 | # VMware Authorization Service -------------------------------------------------------------------------------- /SvcData/VMWare/VMTools.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/VMWare/VMTools.txt -------------------------------------------------------------------------------- /SvcData/VMWare/VMUSBArbService.txt: -------------------------------------------------------------------------------- 1 | # VMware USB Arbitration Service -------------------------------------------------------------------------------- /SvcData/VMWare/VMnetDHCP.txt: -------------------------------------------------------------------------------- 1 | # VMware DHCP Service -------------------------------------------------------------------------------- /SvcData/VMWare/VMware NAT Service.txt: -------------------------------------------------------------------------------- 1 | # VMware NAT Service -------------------------------------------------------------------------------- /SvcData/VMWare/VMware Physical Disk Helper Service.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/VMWare/VMware Physical Disk Helper Service.txt -------------------------------------------------------------------------------- /SvcData/VMWare/VMwareHostd.txt: -------------------------------------------------------------------------------- 1 | # VMware Workstation Server -------------------------------------------------------------------------------- /SvcData/VMWare/readme: -------------------------------------------------------------------------------- 1 | Most services are required for VMWare virtual machines to work but can be stopped at the other time. 2 | -------------------------------------------------------------------------------- /SvcData/VMWare/vmvss.txt: -------------------------------------------------------------------------------- 1 | # VMWare Snapshot Provider -------------------------------------------------------------------------------- /SvcData/WinRT/AppXSvc.txt: -------------------------------------------------------------------------------- 1 | # AppX Deployment Service 2 | # Provides infrastructure support for deploying Store applications. This service is started on demand and if disabled Store applications will not be deployed to the system, and may not function properly. 3 | -------------------------------------------------------------------------------- /SvcData/WinRT/BrokerInfrastructure.txt: -------------------------------------------------------------------------------- 1 | # Broker Infrastructure 2 | # Windows infrastructure service that controls which background tasks can run on the system. 3 | -------------------------------------------------------------------------------- /SvcData/WinRT/CDPUserSvc.txt: -------------------------------------------------------------------------------- 1 | # CDPUserSvc 2 | Probably related to Connected Devices Platform (CDP). -------------------------------------------------------------------------------- /SvcData/WinRT/ClipSVC.txt: -------------------------------------------------------------------------------- 1 | # ClipSVC 2 | # Provides infrastructure support for the Microsoft Store. This service is started on demand and if disabled applications bought using Windows Store will not behave correctly. -------------------------------------------------------------------------------- /SvcData/WinRT/CoreMessagingRegistrar.txt: -------------------------------------------------------------------------------- 1 | # CoreMessaging 2 | # Manages communication between system components. -------------------------------------------------------------------------------- /SvcData/WinRT/DevQueryBroker.txt: -------------------------------------------------------------------------------- 1 | # DevQuery Background Discovery Broker 2 | # Enables apps to discover devices with a backgroud task 3 | One of WinRT BackgroundBrokers. -------------------------------------------------------------------------------- /SvcData/WinRT/DsSvc.txt: -------------------------------------------------------------------------------- 1 | # Data Sharing Service 2 | # Provides data brokering between applications. -------------------------------------------------------------------------------- /SvcData/WinRT/MessagingService.txt: -------------------------------------------------------------------------------- 1 | # MessagingService 2 | # Service supporting text messaging and related functionality. -------------------------------------------------------------------------------- /SvcData/WinRT/NcbService.txt: -------------------------------------------------------------------------------- 1 | # Network Connection Broker 2 | # Brokers connections that allow Windows Store Apps to receive notifications from the internet. -------------------------------------------------------------------------------- /SvcData/WinRT/OneSyncSvc.txt: -------------------------------------------------------------------------------- 1 | # Sync Host 2 | # This service synchronizes mail, contacts, calendar and various other user data. Mail and other applications dependent on this functionality will not work properly when this service is not running. -------------------------------------------------------------------------------- /SvcData/WinRT/PimIndexMaintenanceSvc.txt: -------------------------------------------------------------------------------- 1 | # Contact Data 2 | # Indexes contact data for fast contact searching. If you stop or disable this service, contacts might be missing from your search results. -------------------------------------------------------------------------------- /SvcData/WinRT/StateRepository.txt: -------------------------------------------------------------------------------- 1 | # State Repository Service 2 | # Provides required infrastructure support for the application model. -------------------------------------------------------------------------------- /SvcData/WinRT/SystemEventsBroker.txt: -------------------------------------------------------------------------------- 1 | # System Events Broker 2 | # Coordinates execution of background work for WinRT application. If this service is stopped or disabled, then background work might not be triggered. 3 | One of WinRT BackgroundBrokers. -------------------------------------------------------------------------------- /SvcData/WinRT/TimeBrokerSvc.txt: -------------------------------------------------------------------------------- 1 | # Time Broker 2 | # Coordinates execution of background work for WinRT application. If this service is stopped or disabled, then background work might not be triggered. 3 | One of WinRT BackgroundBrokers. -------------------------------------------------------------------------------- /SvcData/WinRT/UnistoreSvc.txt: -------------------------------------------------------------------------------- 1 | # User Data Storage 2 | # Handles storage of structured user data, including contact info, calendars, messages, and other content. If you stop or disable this service, apps that use this data might not work correctly. -------------------------------------------------------------------------------- /SvcData/WinRT/UserDataSvc.txt: -------------------------------------------------------------------------------- 1 | # User Data Access 2 | # Provides apps access to structured user data, including contact info, calendars, messages, and other content. If you stop or disable this service, apps that use this data might not work correctly. -------------------------------------------------------------------------------- /SvcData/WinRT/WSService.txt: -------------------------------------------------------------------------------- 1 | # Windows Store Service 2 | -------------------------------------------------------------------------------- /SvcData/WinRT/WpnService.txt: -------------------------------------------------------------------------------- 1 | # Windows Push Notifications System Service 2 | # This service runs in session 0 and hosts the notification platform and connection provider which handles the connection between the device and WNS server. 3 | Push notifications let the web services notify the users of events without maintaining a separate network connection each. Subscriber PCs register in WNS network and maintain a connection to it. Web services send event notifications to WNS which pushes these to subscribers. 4 | 5 | https://en.wikipedia.org/wiki/Windows_Push_Notification_Service 6 | 7 | This service runs in session 0 and dispatches the notifications. Each user has their separate WpnUserService_* instance which handles notifications for that particular user. -------------------------------------------------------------------------------- /SvcData/WinRT/WpnUserService.txt: -------------------------------------------------------------------------------- 1 | # Windows Push Notifications User Service 2 | # This service hosts Windows notification platform which provides support for local and push notifications. Supported notifications are tile, toast and raw. 3 | RELATED: WpnService -------------------------------------------------------------------------------- /SvcData/WinRT/tiledatamodelsvc.txt: -------------------------------------------------------------------------------- 1 | # Tile Data model server 2 | # Tile Server for tile updates. -------------------------------------------------------------------------------- /SvcData/WinRT/wlidsvc.txt: -------------------------------------------------------------------------------- 1 | # Microsoft Accound Sign-in Assistant 2 | # Enables user sign-in through Microsoft account identity services. If this service is stopped, users will not be able to logon to the computer with their Microsoft account. 3 | Required to install software from Windows Store, or you'll get error 0x80070426. 4 | -------------------------------------------------------------------------------- /SvcData/Windows Update/AppMgmt.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Windows Update/AppMgmt.lnk -------------------------------------------------------------------------------- /SvcData/Windows Update/AppReadiness.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Windows Update/AppReadiness.lnk -------------------------------------------------------------------------------- /SvcData/Windows Update/BITS.txt: -------------------------------------------------------------------------------- 1 | # Background Intelligent Transfer Service 2 | Transfers asynchronous data via HTTP 1.1 servers. Continues the downloads after restart. 3 | Used by Windows Update to download updates to local PC. May be required for some Windows Live Messenger or Windows Media Player functions. 4 | 5 | REQUIRES: netprofm 6 | 7 | -------------------------------------------------------------------------------- /SvcData/Windows Update/DsmSvc.lnk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Windows Update/DsmSvc.lnk -------------------------------------------------------------------------------- /SvcData/Windows Update/InstallService.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/himselfv/viper/8059e29fe9bfdd057e8f124507a74ecd1911b947/SvcData/Windows Update/InstallService.txt -------------------------------------------------------------------------------- /SvcData/Windows Update/TrustedInstaller.txt: -------------------------------------------------------------------------------- 1 | # Trusted Installer 2 | Required to install or uninstall any updates (CBS components, assemblies), including 3 | * those delivered through Windows Update or manually 4 | * as CAB or as EXE 5 | * or via MSI 6 | * standalone language packs (MUI) 7 | * also required for uninstallation 8 | 9 | Can be safely stopped when you're not installing/uninstalling things. Various software will give cryptic errors when it is disabled, but otherwise it's fine to only enable it when needed. 10 | -------------------------------------------------------------------------------- /SvcData/Windows Update/UsoSvc.txt: -------------------------------------------------------------------------------- 1 | # Update Orchestrator Service for Windows Update 2 | Companion service for Windows Update, manages staging for already downloaded updates. 3 | -------------------------------------------------------------------------------- /SvcData/Windows Update/dosvc.txt: -------------------------------------------------------------------------------- 1 | # Delivery optimization 2 | Used by Windows Update for downloading updates from the local peers. 3 | 4 | https://privacy.microsoft.com/en-US/windows-10-windows-update-delivery-optimization -------------------------------------------------------------------------------- /SvcData/Windows Update/msiserver.txt: -------------------------------------------------------------------------------- 1 | # Windows Installer 2 | # Adds, modifies, and removes applications provided as a Windows Installer (*.msi, *.msp) package. 3 | Manages *.msi installations. Low-level installation of assemblies is done by Trusted Installer, this service oversees the MSI package level. 4 | -------------------------------------------------------------------------------- /SvcData/Windows Update/readme: -------------------------------------------------------------------------------- 1 | Installation and update of programs and components 2 | 3 | Windows Installer 4 | Windows Update -------------------------------------------------------------------------------- /SvcData/Windows Update/wuauserv.txt: -------------------------------------------------------------------------------- 1 | # Windows Update 2 | Titular service for the Update engine. Queries Microsoft Update for new updates, uses BITS to dowload them, then uses UsoSvc to orchestrate their installation on reboot, which is done via TrustedInstaller which installs packages and assemblies. 3 | 4 | -------------------------------------------------------------------------------- /SvcData/cbdhsvc.txt: -------------------------------------------------------------------------------- 1 | Possibly related to the clipboard history functionality + clipboard sharing between PCs which depends on that. 2 | 3 | Some report that Edge clipboard won't function without this. -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Viper: Enhanced service manager 2 | 3 | ![](Docs/screenshots/main05.png) 4 | 5 | ## Features 6 | * Start, stop or reconfigure multiple services at once 7 | * Change start mode from right-click menu 8 | * Quicksearch - filter as you type 9 | * Colors - customize how services look in different states 10 | * Soft refresh - update service list without losing the context 11 | * Drivers can be shown alongside services 12 | 13 | ## Security editor 14 | * Security editor - change service access permissions 15 | * Unlock protected services with one click 16 | 17 | ## Triggers 18 | * Service triggers - with user-friendly names where possible 19 | * Trigger browser is also available 20 | 21 | ## Categories 22 | * Categories - group your services as you see fit 23 | * Custom user-defined notes 24 | * Rename services 25 | 26 | ## Management 27 | * Save and load services auto-start configuration 28 | * Export the service and/or delete it 29 | 30 | [More details](Docs/) 31 | 32 | 33 | # Q&A 34 | 35 | Q: Why is this called Viper. 36 | 37 | A: Because it needed a name... This is also a tribute to BlackViper's site which is now down or something. --------------------------------------------------------------------------------