Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
README.MD
Win_logs_parse_tool.py

README.MD

Tool Name Version Developer E-mail Date
Windows Safe Logs Parse Tool
v 1.0.0
Xu Chao
1269575798@qq.com
19/02/26

Windows安全日志解析工具

可解析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 ——参数解析模块
    • 所需模块:argparse

    • 功能: -h --help : 显示参数帮助文档

      -s --system : 读取并解析系统日志,需手动选择解析文件

      -f --file : 指定日志文件进行解析,如执行:python tool.py -f D:/Application.evtx

      -d --dir : 指定目录,解析目录下所有日志文件,如执行:python tool.py -f D:/log/

  • parse_logs——evtx日志文件解析模块
    • 所需模块:Evtx,contextlib,mmap
    • 功能:利用python-evtx模块解析.evtx文件数据,遍历事件,将事件解析为XML数据格式,单个事件顶级标签为,返回单个文件解析的所有XML数据。
  • XML_parse——XML数据解析模块
    • 所需模块:xml.dom.minidom
    • 功能:将 XML 数据在内存中解析成一个树,通过对树的操作来操作 XML。返回一个字典列表,列表长度为文件内事件数,字典内保存获取的数据。
  • save_data—— 数据保存模块
    • 所需模块:os,codecs,string.Template
    • 功能:通过传入的mod参数判断保存数据格式
      • XML下:
        1. 判断是否存在log/xml/文件夹,不存在则创建
        2. 写入与evtx文件同名的XML文件
        3. 为XML文件添加顶级标签
        4. 写入parse_logs返回的XML数据
      • HTML下:
        1. 利用字符串模板,将提前定义好的html文件模板字符串的变量进行替换
        2. 循环遍历XML_parse返回的列表,将变量绑定至HTML文件
        3. 单个列表绑定一个table表格
        4. 写入数据
  • __main__——程序入口
    1. 判断参数
    2. 遍历目录(如解析单个文件则没有此功能)
    3. 将.evtx文件解析为XML数据
    4. 将XML数据保存为XML文件
    5. 将XML文件数据解析为DOM树,获取数据并返回一个字典列表
    6. 将字典列表数据通过字符串模板写入HTML文件内

程序演示

执行--help参数:

--help

执行--system参数:
​文件选择界面:

-s 1

-s 2

执行--file参数:

-f

自动创建文件夹及文件:

dir2

XML文档内容:

xml

HTML文档内容:

html

执行--dir参数:

-d

已知缺陷

  • 采用阻塞式I/O开发,在解析大文件或目录下多个文件时程序运行较慢。

联系我


You can’t perform that action at this time.