From 15ed440a27a26c366bf6d20b7b667f80cab95879 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ivan=20=C5=A0incek?=
<35937483+ivan-sincek@users.noreply.github.com>
Date: Tue, 25 Apr 2023 20:36:55 +0200
Subject: [PATCH] Initial Commit
---
.gitattributes | 2 +
.gitignore | 394 ++++++++++++++++++
LICENSE | 21 +
README.md | 95 +++++
files/expressions.txt | 2 +
img/run.jpg | Bin 0 -> 399821 bytes
src/MemoryDumper/MemoryDumper.sln | 15 +
.../MemoryDumper/MemoryDumper.vcxproj | 165 ++++++++
.../MemoryDumper/MemoryDumper.vcxproj.filters | 22 +
src/MemoryDumper/MemoryDumper/main.cpp | 329 +++++++++++++++
10 files changed, 1045 insertions(+)
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 LICENSE
create mode 100644 README.md
create mode 100644 files/expressions.txt
create mode 100644 img/run.jpg
create mode 100644 src/MemoryDumper/MemoryDumper.sln
create mode 100644 src/MemoryDumper/MemoryDumper/MemoryDumper.vcxproj
create mode 100644 src/MemoryDumper/MemoryDumper/MemoryDumper.vcxproj.filters
create mode 100644 src/MemoryDumper/MemoryDumper/main.cpp
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfe0770
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+# Auto detect text files and perform LF normalization
+* text=auto
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..29d0710
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,394 @@
+# Dev-c++
+*.layout
+
+# Prerequisites
+*.d
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+
+# Fortran module files
+*.mod
+*.smod
+
+# Dev-C++
+.layout
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.out
+*.app
+
+# MS Word
+*.doc
+*.docx
+
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..bcae6df
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Ivan Šincek
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..33592b2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,95 @@
+# Memory Dumper
+
+Dump a process memory and extract data based on regular expressions. Tool uses multithreading.
+
+Dump and inspect a process memory:
+
+* during inactivity in an application,
+* after locking an application,
+* after logging out from an application.
+
+Garbage cleaners might not free the unused memory immediately, but should do so after 5-10 minutes after the last action.
+
+CPU and RAM consumption, as well as duration heavily depends on:
+
+* number of memory dump files,
+* size of each memory dump file,
+* number of regular expressions and their complexity.
+* occurrence of each regular expression.
+
+Built with Visual Studio Community 2019 v16.10.2 (64-bit) and tested on Windows 10 Enterprise OS (64-bit).
+
+Made for educational purposes. I hope it will help!
+
+## Table of Contents
+
+* [How to Run](#how-to-run)
+* [Manual Memory Dumping](#manual-memory-dumping)
+* [Manual Memory Inspection](#manual-memory-inspection)
+ * [rabin2](#rabin2)
+ * [strings](#strings)
+* [Images](#images)
+
+## How to Run
+
+Run MemoryDumper_x86.exe (32-bit) or MemoryDumper_x64.exe (64-bit).
+
+Check the example file with regular expressions [here](https://github.com/ivan-sincek/memory-dumper/blob/main/files/expressions.txt).
+
+## Manual Memory Dumping
+
+To manually dump a process memory, open Task Manager -> right click on the desired process -> click on `Create dump file`.
+
+## Manual Memory Inspection
+
+The following was tested on Kali Linux v2023.1 (64-bit).
+
+Install the required tools on your Kali Linux:
+
+```bash
+apt-get -y install strings radare2 grep
+```
+
+I prefer using `rabin2` over `strings`.
+
+### rabin2
+
+Inspect memory dump, binary, executable, or any other files:
+
+```bash
+rabin2 -zzzqq somefile | grep -Pi '(keyword-1|keyword-2|keyword-3)'
+
+rabin2 -zzzqq somefile | sort -uf > strings.txt
+```
+
+Automate file inspection from the current directory:
+
+```bash
+IFS=$'\n'; for file in $(find . -type f); do echo -n "\nFILE: \"${file}\"\n"; rabin2 -zzzqq "${file}" 2>/dev/null | grep -Pi '(keyword-1|keyword-2|keyword-3)'; done
+
+IFS=$'\n'; for file in $(find . -type f); do rabin2 -zzzqq "${file}" 2>/dev/null; done | sort -uf > strings.txt
+```
+
+### strings
+
+Inspect memory dump, binary, executable, or any other files:
+
+```bash
+strings somefile | grep -Pi '(keyword-1|keyword-2|keyword-3)'
+
+strings somefile | sort -uf > strings.txt
+```
+
+Automate file inspection from the current directory:
+
+```bash
+IFS=$'\n'; for file in $(find . -type f); do echo -n "\nFILE: \"${file}\"\n"; strings "${file}" 2>/dev/null | grep -Pi '(keyword-1|keyword-2|keyword-3)'; done
+
+IFS=$'\n'; for file in $(find . -type f); do strings "${file}" 2>/dev/null; done | sort -uf > strings.txt
+```
+
+## Images
+
+
+
+Figure 1 - Run
diff --git a/files/expressions.txt b/files/expressions.txt
new file mode 100644
index 0000000..78c4448
--- /dev/null
+++ b/files/expressions.txt
@@ -0,0 +1,2 @@
+[a-z]{4,8}
+[0-9]{4,8}
diff --git a/img/run.jpg b/img/run.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..72369066a71fc5a16689162c3777be899c3a92c1
GIT binary patch
literal 399821
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