Skip to content

Commit 042e77a

Browse files
committed
Updated doc of event_log.py
1 parent 654280c commit 042e77a

1 file changed

Lines changed: 39 additions & 61 deletions

File tree

windows/winobject/event_log.py

Lines changed: 39 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,21 @@ def __iter__(self):
8888
return self
8989

9090
def seek(self, position, seek_flags=None):
91+
"""Seek to ``position``.
92+
``seek_flags`` can be one of:
93+
94+
* ``None``
95+
* ``EvtSeekRelativeToFirst``
96+
* ``EvtSeekRelativeToLast``
97+
* ``EvtSeekRelativeToBookmark``
98+
99+
If ``seek_flags`` is None:
100+
101+
* ``position >= 0`` will use ``EvtSeekRelativeToFirst``
102+
* ``position < 0`` will use ``EvtSeekRelativeToLast`` and with ``position+1``
103+
* This allow retrieve the ``position`` lasts events
104+
"""
105+
91106
if seek_flags is None:
92107
if position >= 0:
93108
seek_flags = gdef.EvtSeekRelativeToFirst
@@ -176,6 +191,7 @@ def system_values(self): # POC: use this for all @property based on system data
176191
return [r.value for r in result]
177192

178193
def event_values(self):
194+
"""The values of the event in a list"""
179195
ctx = windows.winproxy.EvtCreateRenderContext(0, None, gdef.EvtRenderContextUser)
180196
result = self.render(ctx, gdef.EvtRenderEventValues)
181197
return [r.value for r in result]
@@ -195,6 +211,7 @@ def get_raw_values(self, values, flags=gdef.EvtRenderContextValues):
195211
# Properties arround common Event/System values
196212
@property
197213
def provider(self):
214+
"""The provider of the event"""
198215
return self.system_values()[gdef.EvtSystemProviderName]
199216

200217
@property
@@ -246,9 +263,6 @@ def metadata(self):
246263
# id not found: try via the Provider in the event (classic channel)
247264
return self.channel.get_classic_event_metadata(self.id, self.provider)
248265

249-
250-
251-
252266
# Test
253267
@property
254268
def data(self): # user/event specifique data
@@ -264,7 +278,7 @@ def data(self): # user/event specifique data
264278

265279
@property
266280
def date(self):
267-
"""Event.time_created as a datetime"""
281+
"""``Event.time_created`` as a :class:``datetime``"""
268282
return windows.utils.datetime_from_filetime(self.time_created)
269283

270284
def __repr__(self):
@@ -355,26 +369,6 @@ def __repr__(self):
355369

356370

357371

358-
359-
360-
361-
# x = windows.winproxy.EvtQuery(None,
362-
# "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall",
363-
# "Event/System[EventID=2004 or EventID=2006]",
364-
# gdef.EvtQueryChannelPath + gdef.EvtQueryForwardDirection)
365-
# print(x)
366-
# eq = EvtQuery(x)
367-
# event = next(eq)
368-
369-
# xx = gdef.LPWSTR("ModifyingApplication")
370-
# xx = gdef.LPWSTR("Event/System/Channel")
371-
# xx = gdef.LPWSTR('Event/EventData/Data[@Name="ModifyingApplication"]')
372-
# xx = gdef.LPWSTR('Event/System/EventID')
373-
374-
# event = next(eq)
375-
376-
# list(channels())
377-
378372
class EvtChannel(object):
379373
"""An Event Log channel"""
380374
DEFAULT_QUERY_FLAGS = gdef.EvtQueryChannelPath + gdef.EvtQueryForwardDirection
@@ -505,7 +499,9 @@ def classic(self):
505499
def __repr__(self):
506500
return '<{0} "{1}">'.format(type(self).__name__, self.name)
507501

502+
508503
class PublisherMetadataChannel(object):
504+
"""Represent a PublisherMetadataChannel (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)"""
509505

510506
def __init__(self, pub_metadata, channel_id):
511507
super(PublisherMetadataChannel, self).__init__()
@@ -517,27 +513,32 @@ def _query_channel_metadata_property(self, propertyid):
517513

518514
@property
519515
def flags(self):
516+
"""The flags of the ``PublisherMetadataChannel``"""
520517
return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceFlags))
521518

522519
@property
523520
def name(self):
521+
"""The name of the ``PublisherMetadataChannel``"""
524522
return str(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferencePath))
525523

526524
@property
527525
def id(self):
526+
"""The reference id of the ``PublisherMetadataChannel``"""
528527
return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceID))
529528

530529
@property
531530
def index(self):
531+
"""The reference index of the ``PublisherMetadataChannel``"""
532532
return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceIndex))
533533

534534
@property
535535
def message_id(self):
536+
"""The message id of the ``PublisherMetadataChannel``"""
536537
return int(self._query_channel_metadata_property(gdef.EvtPublisherMetadataChannelReferenceMessageID))
537538

538539

539540
class PublisherMetadataLevel(object):
540-
541+
"""Represent a PublisherMetadataLevel (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)"""
541542
def __init__(self, pub_metadata, channel_id):
542543
super(PublisherMetadataLevel, self).__init__()
543544
self.pub_metadata = pub_metadata
@@ -560,7 +561,7 @@ def message_id(self):
560561

561562

562563
class PublisherMetadataOpcode(object):
563-
564+
"""Represent a PublisherMetadataOpcode (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)"""
564565
def __init__(self, pub_metadata, channel_id):
565566
super(PublisherMetadataOpcode, self).__init__()
566567
self.pub_metadata = pub_metadata
@@ -571,18 +572,22 @@ def _query_opcode_metadata_property(self, propertyid):
571572

572573
@property
573574
def name(self):
575+
"""The name of the ``PublisherMetadataOpcode``"""
574576
return str(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeName))
575577

576578
@property
577579
def value(self):
580+
"""The opcode value of the ``PublisherMetadataOpcode``"""
578581
return int(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeValue))
579582

580583
@property
581584
def message_id(self):
585+
"""The message id of the ``PublisherMetadataOpcode``"""
582586
return int(self._query_opcode_metadata_property(gdef.EvtPublisherMetadataOpcodeMessageID))
583587

584588

585589
class PublisherMetadataKeyword(object):
590+
"""Represent a PublisherMetadataKeyword (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)"""
586591

587592
def __init__(self, pub_metadata, channel_id):
588593
super(PublisherMetadataKeyword, self).__init__()
@@ -594,18 +599,21 @@ def _query_keyword_metadata_property(self, propertyid):
594599

595600
@property
596601
def name(self):
602+
"""The name of the ``PublisherMetadataKeyword``"""
597603
return str(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordName))
598604

599605
@property
600606
def value(self):
607+
"""The value of the ``PublisherMetadataKeyword``"""
601608
return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordValue))
602609

603610
@property
604611
def message_id(self):
612+
"""The message id of the ``PublisherMetadataKeyword``"""
605613
return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataKeywordMessageID))
606614

607615
class PublisherMetadataTask(object):
608-
616+
"""Represent a PublisherMetadataTask (see https://docs.microsoft.com/en-us/windows/win32/api/winevt/ne-winevt-evt_publisher_metadata_property_id)"""
609617
def __init__(self, pub_metadata, channel_id):
610618
super(PublisherMetadataTask, self).__init__()
611619
self.pub_metadata = pub_metadata
@@ -616,18 +624,22 @@ def _query_keyword_metadata_property(self, propertyid):
616624

617625
@property
618626
def name(self):
627+
"""The name of the ``PublisherMetadataTask``"""
619628
return str(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskName))
620629

621630
@property
622631
def value(self):
632+
"""The value of the ``PublisherMetadataTask``"""
623633
return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskValue))
624634

625635
@property
626636
def event_guid(self):
637+
"""The event GUId of the ``PublisherMetadataTask``"""
627638
return self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskEventGuid)
628639

629640
@property
630641
def message_id(self):
642+
"""The message ID GUId of the ``PublisherMetadataTask``"""
631643
return int(self._query_keyword_metadata_property(gdef.EvtPublisherMetadataTaskMessageID))
632644

633645
class EvtPublisher(object):
@@ -1046,37 +1058,3 @@ def __getitem__(self, name):
10461058
# Raise FILE_NOT_FOUND if not found (last chance)
10471059
return self.open_evtx_file(name)
10481060

1049-
1050-
1051-
1052-
# CHANNAME = "Microsoft-Windows-Windows Firewall With Advanced Security/Firewall"
1053-
# CHANNAME = r"Microsoft-Windows-Windows Defender/Operational"
1054-
1055-
# print("Working of channel: <{0}>".format(CHANNAME))
1056-
1057-
# channel = EvtChannel(CHANNAME)
1058-
# chanconf = channel.config
1059-
# publisher = chanconf.publisher
1060-
1061-
# open publisher metadata
1062-
1063-
# print("Provider is <{0}>".format(publisher.name))
1064-
1065-
# pmd = publisher.metadata
1066-
# chansref = pmd.chanrefs
1067-
1068-
# channame_by_value_id = pmd.channel_name_by_id()
1069-
1070-
# for event_metadata in pmd.events_metadata:
1071-
# id = event_metadata.id
1072-
# if id == 2004:
1073-
# print("LOL")
1074-
# chan = event_metadata.channel_id
1075-
# channame = channame_by_value_id[chan]
1076-
# print(" * {0}) {1}".format(id, channame))
1077-
# if "unexpected" in pmd.message(event_metadata.message_id).lower():
1078-
# print("UNEXPECTED in message :D")
1079-
1080-
1081-
# query = channel.query(ids=5008)
1082-
# evts = list(query)

0 commit comments

Comments
 (0)