DOM是Document Object Model的简称,XML 文档的高级树型表示。该模型并非只针对 Python,而是一种普通XML 模型。Python 的 DOM 包是基于 SAX 构建的,并且包括在 Python 2.0 的标准 XML 支持里。
参考博客:
python网络编程学习笔记:XML生成与解析
Python取证技术: Windows 事件日志分析
1.安装python_Evtx
直接使用pip install python-evtx命令安装即可
2.感兴趣的日志部分筛选
import mmap
import contextlib
from Evtx.Evtx import FileHeader
from Evtx.Views import evtx_file_xml_view
from xml.dom import minidom
def MyFun():
EvtxPath = "D:Application.evtx"
with open(EvtxPath,'r') as f:
with contextlib.closing(mmap.mmap(f.fileno(),0,access=mmap.ACCESS_READ)) as buf:
fh = FileHeader(buf,0)
for xml, record in evtx_file_xml_view(fh):
#只输出事件ID为4624的内容
InterestEvent(xml,4624)
print ""
# 过滤掉不需要的事件,输出感兴趣的事件
def InterestEvent(xml,EventID):
xmldoc = minidom.parseString(xml)
# 获取EventID节点的事件ID
booknode=root.getElementsByTagName('event')
for booklist in booknode:
bookdict={}
bookdict['id']=booklist.getAttribute('id')
bookdict['head']=booklist.getElementsByTagName('head')[0].childNodes[0].nodeValue.strip()
bookdict['name']=booklist.getElementsByTagName('name')[0].childNodes[0].nodeValue.strip()
bookdict['number']=booklist.getElementsByTagName('number')[0].childNodes[0].nodeValue.strip()
bookdict['page']=booklist.getElementsByTagName('page')[0].childNodes[0].nodeValue.strip()
if EventID == eventID:
print xml
if __name__ == '__main__':
MyFun()1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35