发布于2022年11月8日2年前 0x00 前言 Windows事件查看器日志(evt),清除单条日志系列文章的第一篇,重点介绍EVT日志文件的基础知识以及删除单条日志的实现思路和实例。 Windows事件查看器日志(EVT)适用于以下windows系统: Windows NT 4 Windows 2000 Windows XP Windows 2003 注: Windows XML事件日志(EVTX)在Win7和更高版本系统中的应用在前面已经介绍过了。 0x01 简介 本文将介绍以下内容: Evt文件格式 关于删除单条日志的思考 删除单个日志的实例 0x02 基础知识 Ev文件格式是指Windows Vista之前用来保存系统日志信息的文件,最常见的是XP和Server2003系统。 日志的默认保存位置:%systemroot%\system32\config 通用日志文件: 应用程序日志:AppEvent。等粘温度 安全日志:SecEvent。等粘温度 系统日志:SysEvent。等粘温度 查看日志的方法 (1) 通过界面 cmd -事件 (2) 通过命令行 查询系统日志并输出详细信息: cscript c:\ windows \ system32 \ event query . VBS/l system/v 查询指定时间(2017.12.05,01:00:00AM到2018.01.02,10:00:00AM)的系统日志: cscript c:\ windows \ system32 \ event query . VBS/l system/fi '日期时间eq 12/05/2017,01:00:00AM-01/02/2018,10:00:00AM ' 官方参数描述: https://docs . Microsoft . com/en-us/previous-versions/windows/it-pro/windows-XP/bb 490900(v=TechNet . 10) evt文件格式 参考资料: https://github . com/libyal/lib evt/blob/master/documentation/Windows事件日志(EVT) format.asciidoc Evt文件结构由三部分组成: 文件标题 事件记录 文件记录结束 尾随空值 注: Header保存了evtx文件的基本信息,特别是文件结束记录偏移量、最后(最新)记录号和最大文件大小。 事件记录对应于每个日志的内容,值得注意的是记录编号。 文件结束记录的固定结构,特别是文件结束记录偏移量和最后(最新)记录号。 尾随空值是一个尾随空值,用于填充文件长度。内容是任意的,不会影响evtx文件的有效性。 (1) file header 格式可以参考: https://github . com/libyal/lib evt/blob/master/documentation/Windows事件日志(EVT)format . asciidoc # 2-file-header 前48位没有校验和标志位。 以下五项需要正确配置: 第一个(最早的)记录偏移量 文件记录结束偏移量 最后(最新)记录号 第一个(最早的)记录号 最大文件大小 (2) event records 格式可以参考: https://github . com/libyal/lib evt/blob/master/documentation/Windows事件日志(evt)格式. asciidoc # 3-事件记录 修改记录号(即使重复)不影响日志文件的正常识别。 (3) end of file record 格式可以参考: https://github . com/libyal/lib evt/blob/master/documentation/Windows事件日志(EVT)format . asciidoc # 4-文件结束记录 与文件头相同,需要正确配置以下四项: 第一个(最早的)记录偏移量 文件记录结束偏移量 最后(最新)记录号 第一个(最早的)记录号 0x03 删除思路 由于evt文件中没有检查值,我们可以在删除单个日志时使用以下过程: 直接删除日志内容。 日志稍后更新记录号(减1) 更新文件头中的五个项目。 更新文件记录末尾的四个项目。 0x04 删除实例 查看日志: cmd -事件 在system下总共得到9个日志,如下图所示 选择系统,右键单击,然后选择将日志文件另存为.将日志文件另存为sys1.evt 注: 复制文件SysEvent。%systemroot%\system32\config下的Evt,生成的日志文件无法正常打开。 原因: %systemroot%\system32\config下的evt文件的文件头没有同步更新,导致打开evt文件时出现格式错误。 修复文件头后,文件可以正常打开。 Sys1.evt已上传,下载地址为: https://github.com/3gstudent/Eventlogedit-evt-通用/blob/master/sys1.evt 打开eventvwr中的日志,日志类型,选择系统,成功打开。 该文件包含9个日志。尝试删除下面的第五条日志,如下图所示。 1、定位第5条日志 搜索4c664c6505000000 4c664c65是ELF_LOG_SIGNATURE,结构固定。 0000000是记录号。 2、删除第5条日志 起始位置为4c664c6505000000的前4个字节 删除长度为4c664c6505000000的前4个字节。 如下图 起始位置是0x320h。 删除长度为0x00000070h(即112)。 补充: 通过UltraEdit的操作: 选择0x320h作为起始位置,右键单击并选择十六进制插入/删除。 选择删除并填写删除字节数112。 3、后面日志更新Record number(减1) 即第6、7、8和9个日志的记录号。 4、更新file header中的三项 (1) End of file record offset 文件头偏移量20处的4个字节 保存的内容是文件结束记录的起始地址。 两种计算方法: 原始地址-第5条日志的长度(112) 找到文件记录的结尾并直接获取它。 新的文件记录结束偏移量是0x00000640h。 (2) Last (newest) record number 文件头偏移量24处的4个字节 该值减1,并从0x0000000A变为0x0000009。 (3) Maximum file size 文件头偏移量32处的4个字节 的新最大文件大小为0x00000668h。 5、同步更新end of file record中的两项 文件记录结束偏移量 最后(最新)记录号 修改后另存为新文件sys2.evt。 下载地址: https://github.com/3gstudent/Eventlogedit-evt-通用/blob/master/sys2.evt 成功删除第5条日志。 如下图 0x05 小结 介绍了evt日志文件的基础知识和删除单个日志的实现思路。一个示例展示了如何修改evt文件并隐藏其中一个日志。 下一篇文章将介绍如何根据前面的研究思路写一个程序自动删除指定日期的日志。 留下回复
创建帐户或登录后发表意见