- Learning Python for Forensics
- Preston Miller Chapin Bryce
- 322字
- 2021-07-02 16:41:13
Introducing our script
The setupapi_parser.py
script will be developed to parse the setupapi.dev.log
file on Windows 7 and higher. Equipped with only modules from the standard library, we will open and read a setupapi.log
file, identify and parse relevant USB information, and display it to the user in the console. As mentioned in the introduction, we will use an iterative build process to mimic a natural development cycle. Each iteration will build upon the previous while we explore new features and methods. We will encourage the development of additional iterations with challenges at the end of the chapter.
Overview
Before developing any code, let's identify the requirements and features our script must possess to accomplish the desired task. We will need to execute the following steps:
- Open the log file and read all lines.
- In each line, check for indicators of USB device entry.
- Parse responsive lines for timestamp and device information.
- Output the result to the user.
Now, let's examine the log file of interest to determine repetitive structures we can use as footholds in our script to parse relevant data. In the sample USB entry below, we see the device information on line 1 following the text "Device Install (Hardware initiated) "
. This device information contains the vendor ID, device product ID, device revision, and the Unique ID of the device.
Each of these elements is separated by either an &
or \
character and may contain some additional inconsequential characters. The installation time is recorded on line 2 following the ">>> Section start "
text. For our purposes, we are only interested in these two lines. All other surrounding lines will be ignored.
001 >>> [Setup online Device Install (Hardware initiated) - pci\ven_15ad&dev_07a0&subsys_07a015ad&rev_01\3&18d45aa6&0&a9] 002 >>> Section start 2010/11/10 10:21:12.593 003 ump: Creating Install Process: DrvInst.exe 10:21:12.593 004 ndv: Retrieving device info... 005 ndv: Setting device parameters... 006 ndv: Searching Driver Store and Device Path... 007 dvi: {Build Driver List} 10:21:12.640
- 工程軟件開發技術基礎
- 從程序員到架構師:大數據量、緩存、高并發、微服務、多團隊協同等核心場景實戰
- R的極客理想:工具篇
- 用Flutter極速構建原生應用
- Learning Selenium Testing Tools(Third Edition)
- 從Excel到Python:用Python輕松處理Excel數據(第2版)
- Mastering Data Mining with Python:Find patterns hidden in your data
- Getting Started with React Native
- Oracle GoldenGate 12c Implementer's Guide
- 時空數據建模及其應用
- HTML5移動Web開發
- Java入門經典
- 測試架構師修煉之道:從測試工程師到測試架構師(第2版)
- 15天學會JavaScript(視頻教學版)
- 零基礎學C++