• Stars
    star
    414
  • Rank 104,550 (Top 3 %)
  • Language
    C#
  • Created over 8 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LogViewer for viewing and searching large text files...

LogViewer

LogViewer is designed to work with any large text files, so that even very large files can be opened, viewed and searched.

It's original use case is for DFIR cases that involve log analysis. Whilst I use grep (well actually I use sift to extract data from logs, it is handy to be able to view log files, search for terms, hide lines whilst you get an idea what the log file contains, what actions are being performed.

I normally use a combination of various text editors, glogg, and the Mandiant Highlighter tool. The Mandiant Highlighter tool is great but hasn't been updated since 2011. It has lots of functionality, most of which I don't use. I wanted to implement my own log viewer and looked at the source code for Highlighter and realised it uses a custom owner drawn textbox, which is how it can work on large files.

So that is how LogViewer was born, by design it is simpler, it doesn't have field operations, it doesn't have the line view etc.

The use of the custom control would make debugging any future issues a lot harder, so after a bit of thought I used the ObjectListView library. The ObjectListView library is a custom list view control for use with .Net projects, I have used it extensively as it is easy to use and works with large data sets.

The core operation of LogViewer works in the same way as Highlighter e.g. parse the file, find the line offsets and line lengths, then when a line is needed for display, an existing file stream is used to seek to the offset, and then read X bytes.

I tested the v0.0.1 release of LogViewer against v1.1.3 of Mandiant Highlighter. My test log file was 1.2 GB and had 4.4 million rows. The following shows the operation and duration of the operation to compare:

  • Load (LogViewer): 15s
  • Load (Highlighter): 42s
  • Search (LogViewer): 1m 5s
  • Search (Highlighter): 2m 15s
  • Show Only Highlighted (LogViewer): 2s (+ the search operation above 1m 5s) Total: 1m 7s
  • Show Only Highlighted (Highlighter): Killed after 35m

The main reasons for this being faster is that it has removed some functionality and I have optimised the file load code so that there is less memory allocation and unnecessary checks/logic, plus Highlighter does some Md5 calcs etc.

Features

  • Very fast
  • Supports huge files
  • Cumulative search
  • Can disable/enable search terms that are cumulative and the results are displayed instantly
  • Export current view
  • Show/Hide matched lines
  • Four search modes (Sub String Case Insensitive, Sub String Case Sensitive, Regex Case Insensitive, Regex Case Sensitive)

General

  • To stop an action such as load, search, export, you double click on the progress bar, located in the status bar
  • The context menu holds the majority of actions
  • Lots of stuff to be fixed/added! :-)

Screenshot

Third Party

ObjectListView: Used for displaying the file lines

Nett: Used for the TOML configuration file reading/writing

icons8: Icons used within the application

More Repositories

1

usbdeviceforensics

Python script for extracting USB information from Windows registry hives
Python
124
star
2

autorunner

Emulates the Sysinternals Autoruns tool, but for DFIR purposes e.g. multi user processing
C#
52
star
3

LogViewer2

Application for viewing/searching large text/log files (WPF port of the original LogViewer)
C#
50
star
4

ForensicUserInfo

Extracts Windows user info including the password hashes
C#
38
star
5

lookuper

Looks stuff up (MD5, SHA256, IP, Domains, URL's, strings e.g. mutexes)...
Go
36
star
6

woanware.github.io

HTML
32
star
7

wmi-parser

Parses the WMI object database....looking for persistence
C#
31
star
8

etw-event-dumper

C#
31
star
9

TargetAnalyser

Tool for analysts to perform simultaneous lookups (IP, Domain, URL, MD5) against multiple data sources
C#
29
star
10

application-restriction-bypasses

A set of compiled application restriction bypasses
PowerShell
29
star
11

NetworkScanViewer

C#
22
star
12

JumpLister

C#
18
star
13

bgp-watcher

Prototype system to monitor BGP routes and alert when anomalies are identified
Go
14
star
14

Win32Security

C#
12
star
15

SessionViewer

SessionViewer is a PCAP TCP session reconstructor with a UI to view the data flows, and export data
C#
12
star
16

volatility-runner

volatility-runner is a command line application designed to speed up memory forensics using the volatility framework, primarily for instances where the user has multiple memory dumps to analyse.
Go
11
star
17

reg-entropy-scanner

Scans through registry hives outputting entropy values for key/values, dumps binary contents to files...we are looking for those "fileless" malwarez!
C#
10
star
18

log-file-decrufter

Go
9
star
19

javaidx

C#
8
star
20

win-catalog-dotnet

Managed library for accessing the Windows security catalog files
C#
8
star
21

exefinder

C#
8
star
22

xor

C#
7
star
23

extract-web-domains

Tool to extract domains/IP's from files
Go
6
star
24

EventLogParser

C#
6
star
25

shimcacheparser

C#
5
star
26

tr3_tool_kit

Repository to store the tools for Corey Harrell's Tr3Secure Data Collection script
Shell
5
star
27

filesender

Send files simply using Google Drive...it's a cross between https://github.com/schollz/croc and https://github.com/google/skicka
Go
5
star
28

shellify

This is a fork from the Shellify project hosted on sourceforge. It replaces my own LNK parser as it has more features!
C#
4
star
29

RegRipperRunner

C#
4
star
30

VtLookup

C#
4
star
31

threatexpertchecker

C#
3
star
32

snorbert

Snort data viewer...
C#
3
star
33

word-password-generator

Console application to generate word based passwords using Mnemonicodes
C#
3
star
34

ooxml-checker

Go
2
star
35

csv2xlsx

C#
2
star
36

RiskIqSharp

C# library (.Net 6) to interact with the RiskIQ/PassiveTotal API
C#
2
star
37

csv-value-counter

A rewrite in golang of my .Net csvvaluecounter tool. Basically it counts the number of a particular field in a text file or CSV file
Go
2
star
38

logsifter

C#
2
star
39

csvvaluecounter

C#
1
star
40

HttpKit

C#
1
star
41

log-sifter

Performs normalised levenshtein distance calculations on log entries to reduce repeated data...
Go
1
star