Skip to content

Clayeee/Win-Logs-Parse-tool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

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开发,在解析大文件或目录下多个文件时程序运行较慢。

联系我


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages