Skip to content

Instantly share code, notes, and snippets.

@joswr1ght
Last active December 31, 2021 20:37
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save joswr1ght/3d6b18b2150bd3ce1dd10d00ca2029b0 to your computer and use it in GitHub Desktop.
Save joswr1ght/3d6b18b2150bd3ce1dd10d00ca2029b0 to your computer and use it in GitHub Desktop.
Read dump_evtx XML output, identify EventRecordID gaps possibly indicating deleted logging records
from xml.etree import ElementTree
import sys
first=True
eventrecordid=None
lasttime=None
latesttime=None
if (len(sys.argv) != 2):
print("Read from the dump_evtx XML output, identifying gaps in EventRecordID values")
print("that could indicate deleted logging entries.\n")
print("Usage: %s <eventlog.xml>"%sys.argv[0])
sys.exit(1)
with open(sys.argv[1], 'rt') as f:
tree = ElementTree.parse(f)
for node in tree.iter():
if "TimeCreated" in node.tag:
if (first):
lastime=node.attrib["SystemTime"]
continue
latesttime=node.attrib["SystemTime"]
if "EventRecordID" in node.tag:
if (first):
eventrecordid=int(node.text)
first=False
continue
else:
if int(node.text) > eventrecordid+1:
print("="*4,"Gap between EventRecordID %d and %d (%s and %s)"%(eventrecordid, int(node.text), lasttime, latesttime))
eventrecordid=int(node.text)
lasttime=latesttime
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment