如何隐藏指定条Windows事件日志

2020-04-27  本文已影响0人  Odinmx

如何隐藏指定条Windows事件日志

我们知道Windows 事件查看器只提供了删除全部日志的功能,并没有提供删除特定日志的功能,那我们如何删除指定的日志?

原理:

点击此处

删除单条事件日志:

删除单条日志内容的方法:

  1. FileHeader 中的下一个记录标识符的值减一。(下一个记录标识符偏移量为24)
  2. 重新计算FileHeader中的校验和(校验和偏移量为124)
  3. 修改事件记录,找到需要删除的记录,和需要删除记录的前一条,计算日志长度,更新事件记录标识符
  4. 更新ElfChnk,需要修改的内容是:最后一个事件编号、最后一个事件标识符、最后一个事件记录数据偏移量、事件记录校验和(CRC32)、校验和(头部前120字节和第128字节到512字节)

具体操作:

首先打开事件查看器,确定我们要删除的日志的EventRecordID。

image-20200427214116761

这里是EventRecordID是19。使用16进制文件编辑器打卡事件日志文件。

  1. 首先修改文件头中的下一个记录标识符的值。
image-20200427214300372

这里是0x14将其减一,修改为0x13。这里需要注意,事件日志文件字节序为小端,低位在前。

image-20200427214331082
  1. 重新计算文件头中的校验和。

计算方法:前120字节做CRC32运算。校验和偏移量为124 长度为4

CRC32计算Python实现

import binascii
def CRC32(content):
    return "%08x"%(binascii.crc32(binascii.a2b_hex(content))&0xffffffff)
print(CRC32(input()))

取前120字节数据,计算CRC32。获得结果0x92fb7778,修改文件内容如下图:

image-20200427214538558 image-20200427214525465
  1. 修改事件记录

查找16进制值2A2A0000,定位到第19条事件日志。长度为0x4D8,如下图:

image-20200427214654215

第18条长度是0x450,如下图:

image-20200427214723416

计算新的长度:0x4d8+0x450=0x928,需要修改的位置有两个地方,一个是第7条日志的长度,另一个是第8条日志的尾部。

第18条日志:

image-20200427215119757

第19条日志:

image-20200427215042452
  1. 更新EifChnk:

搜索EifChnk关键字,如下图:

image-20200427215308585

需要修改的内容:

需要修改的内容
最后一个事件编号 0x12
最后一个事件标识符 0x12
最后一个事件记录数据偏移量 0x4f68
事件记录校验和(0x1200到最后一个事件结束 CRC32计算) 0x7d800e45
校验和(头部前120字节和第128字节到512字节 CRC32计算) 0xaddaa5cb
image-20200427221752928
  1. 用事件查看器查看

保存后,用事件管理器打开,发现事件数减少了,对照修改之前的事件列表,发现减少的一个正是我们隐藏掉的那一个。

image-20200427221849166

至此,我们能够隐藏掉指定条Windows事件日志了。

上一篇下一篇

猜你喜欢

热点阅读