0x00前言
Windows XML Event Log (EVTX)单条日志清除系列文章的第三篇,介绍第一种删除当前系统evtx日志文件单条日志记录的方法:关闭服务对应的进程,释放文件句柄,解除文件占用,删除日志,重启服务
0x01简介
本文将要介绍以下内容:
通过c程序枚举服务信息,提取Eventlog服务对应进程svchost.exe的pid
通过c程序提权关闭Eventlog进程
通过c程序释放文件句柄
通过c程序删除单条日志文件
0x02删除思路
在上篇文章《Windows XML Event Log (EVTX)单条日志清除(二)——程序实现删除evtx文件的单条日志记录》介绍了删除单条日志记录的方法,但如果直接用来删除当前系统的日志,在打开文件时会报错,提示文件被占用
这是因为当前系统启动日志服务Eventlog后,会以独占模式打开日志文件,导致其他进程无法打开该日志文件,也就无法进行修改操作
有以下两种解决方法:
结束日志服务Eventlog对应的进程,释放文件句柄,获得修改日志文件的权限
获得日志服务Eventlog对应进程中指定日志文件的句柄,利用该句柄实现日志文件的修改
本文将要介绍第一种解决方法,分享在程序实现上的细节,最后开源实现代码
第二种解决方法会在之后的文章进行详细介绍
0x03获得Eventlog服务对应进程svchost.exe的pid
由于Windows系统有多个svchost.exe进程,无法直接搜索进程名"svchost.exe"获得Eventlog服