如何隱藏指定條Windows事件日志
我們知道Windows 事件查看器只提供了刪除全部日志的功能纽哥,并沒有提供刪除特定日志的功能,那我們?nèi)绾蝿h除指定的日志栖秕?
原理:
刪除單條事件日志:
刪除單條日志內(nèi)容的方法:
- FileHeader 中的下一個記錄標識符的值減一春塌。(下一個記錄標識符偏移量為24)
- 重新計算FileHeader中的校驗和(校驗和偏移量為124)
- 修改事件記錄,找到需要刪除的記錄簇捍,和需要刪除記錄的前一條只壳,計算日志長度,更新事件記錄標識符
- 更新ElfChnk暑塑,需要修改的內(nèi)容是:最后一個事件編號吕世、最后一個事件標識符、最后一個事件記錄數(shù)據(jù)偏移量梯投、事件記錄校驗和(CRC32)命辖、校驗和(頭部前120字節(jié)和第128字節(jié)到512字節(jié))
具體操作:
首先打開事件查看器况毅,確定我們要刪除的日志的EventRecordID。
image-20200427214116761
這里是EventRecordID是19尔艇。使用16進制文件編輯器打卡事件日志文件尔许。
- 首先修改文件頭中的下一個記錄標識符的值。
image-20200427214300372
這里是0x14將其減一终娃,修改為0x13味廊。這里需要注意,事件日志文件字節(jié)序為小端棠耕,低位在前余佛。
image-20200427214331082
- 重新計算文件頭中的校驗和。
計算方法:前120字節(jié)做CRC32運算窍荧。校驗和偏移量為124 長度為4
CRC32計算Python實現(xiàn)
import binascii
def CRC32(content):
return "%08x"%(binascii.crc32(binascii.a2b_hex(content))&0xffffffff)
print(CRC32(input()))
取前120字節(jié)數(shù)據(jù)辉巡,計算CRC32。獲得結(jié)果0x92fb7778蕊退,修改文件內(nèi)容如下圖:
image-20200427214538558
image-20200427214525465
- 修改事件記錄
查找16進制值2A2A0000郊楣,定位到第19條事件日志。長度為0x4D8瓤荔,如下圖:
image-20200427214654215
第18條長度是0x450净蚤,如下圖:
image-20200427214723416
計算新的長度:0x4d8+0x450=0x928,需要修改的位置有兩個地方输硝,一個是第7條日志的長度今瀑,另一個是第8條日志的尾部。
第18條日志:
image-20200427215119757
第19條日志:
image-20200427215042452
- 更新EifChnk:
搜索EifChnk關鍵字点把,如下圖:
image-20200427215308585
需要修改的內(nèi)容:
需要修改的內(nèi)容 | 值 |
---|---|
最后一個事件編號 | 0x12 |
最后一個事件標識符 | 0x12 |
最后一個事件記錄數(shù)據(jù)偏移量 | 0x4f68 |
事件記錄校驗和(0x1200到最后一個事件結(jié)束 CRC32計算) | 0x7d800e45 |
校驗和(頭部前120字節(jié)和第128字節(jié)到512字節(jié) CRC32計算) | 0xaddaa5cb |
image-20200427221752928
- 用事件查看器查看
保存后放椰,用事件管理器打開,發(fā)現(xiàn)事件數(shù)減少了愉粤,對照修改之前的事件列表砾医,發(fā)現(xiàn)減少的一個正是我們隱藏掉的那一個。
image-20200427221849166
至此衣厘,我們能夠隱藏掉指定條Windows事件日志了如蚜。