Tool Name | Version | Developer | Date | |
---|---|---|---|---|
Windows Safe Logs Parse Tool |
v 1.0.0 |
Xu Chao |
1269575798@qq.com |
19/02/26 |
可解析windows系统目录下的安全日志文件 ( 需获取管理员权限 ),也可采用手动添加文件的方式进行解析,解析后的文件为XML,HTML两种格式,HTML已采用Bootstrap框架进行界面可视化优化,可直接查看重点日志数据,解析后的HTML数据文件保存在执行文件下的logs/
文件夹下 ( 自动创建 ),XML数据文件保存在执行文件下的logs/xml/
文件夹下,本工具采用Python语言开发。
- 日志文件可视化解析
- 原始数据保存为XML文件
- 管理员运行可直接解析系统日志
- 可采用手动添加文件或目录方式进行解析
optional arguments:
-h, --help show this help message and exit
-s, --system 读取并解析指定的windows日志
-f FILE, --file FILE 指定一个evtx文件进行解析
-d DIR, --dir DIR 指定一个目录,解析目录下所有evtx文件(默认为系统日志文件夹)
├─import # 引用模块
├─argparse # 参数解析模块
├─parse_logs # evtx日志文件解析模块
├─XML_parse # XML数据解析模块
├─save_data # 数据保存模块
└─__main__ # 主模块
-
-
所需模块:
argparse
-
功能:
-h --help
: 显示参数帮助文档
-s --system
: 读取并解析系统日志,需手动选择解析文件
-f --file
: 指定日志文件进行解析,如执行:python tool.py -f D:/Application.evtx
-d --dir
: 指定目录,解析目录下所有日志文件,如执行:python tool.py -f D:/log/
-
-
- 所需模块:
Evtx,contextlib,mmap
- 功能:利用
python-evtx
模块解析.evtx
文件数据,遍历事件,将事件解析为XML
数据格式,单个事件顶级标签为,返回单个文件解析的所有XML
数据。
- 所需模块:
-
- 所需模块:
xml.dom.minidom
- 功能:将 XML 数据在内存中解析成一个树,通过对树的操作来操作 XML。返回一个字典列表,列表长度为文件内事件数,字典内保存获取的数据。
- 所需模块:
-
- 所需模块:
os,codecs,string.Template
- 功能:通过传入的
mod
参数判断保存数据格式- XML下:
- 判断是否存在
log/xml/
文件夹,不存在则创建 - 写入与
evtx
文件同名的XML
文件 - 为XML文件添加顶级标签
- 写入
parse_logs
返回的XML
数据
- 判断是否存在
- HTML下:
- 利用字符串模板,将提前定义好的
html
文件模板字符串的变量进行替换 - 循环遍历
XML_parse
返回的列表,将变量绑定至HTML
文件 - 单个列表绑定一个
table
表格 - 写入数据
- 利用字符串模板,将提前定义好的
- XML下:
- 所需模块:
-
- 判断参数
- 遍历目录(如解析单个文件则没有此功能)
- 将.evtx文件解析为XML数据
- 将XML数据保存为XML文件
- 将XML文件数据解析为DOM树,获取数据并返回一个字典列表
- 将字典列表数据通过字符串模板写入HTML文件内
- 采用阻塞式I/O开发,在解析大文件或目录下多个文件时程序运行较慢。