- Prerequisites
- Windows Installation
- Linux Installation
- macOS/BSD Installation
- Building from Source
- Symbol Server Configuration
- Verification
- Troubleshooting
- Git: For cloning the repository
- Memory dump file: To analyze (supported formats: .vmem, .vmsn, .dmp, .raw, .dd, .xendump)
- Windows 7 or later (64-bit recommended)
- .NET Framework 4.6.1 or later
- Visual Studio 2017 or later (for building from source)
- msdia140.dll (included with Visual Studio)
- .NET Core 2.0 or later / .NET 6.0+ recommended
- Mono (optional, for some features)
-
Download the binary package:
https://github.com/K2/inVtero.net/blob/master/quickdumps/publish.zip -
Extract the archive:
mkdir C:\inVtero cd C:\inVtero unzip publish.zip
-
Register msdia140.dll (IMPORTANT):
# Run as Administrator cd C:\inVtero regsvr32 msdia140.dll
Or if msdia140.dll is in System32:
regsvr32 C:\Windows\System32\msdia140.dll -
Verify installation:
quickdumps.exe --help
See Building from Source section below.
Configure symbol server for automatic symbol resolution:
# Set environment variable (run as Administrator for system-wide)
setx _NT_SYMBOL_PATH "SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols"
# Or for current session only
set _NT_SYMBOL_PATH=SRV*C:\Symbols*http://msdl.microsoft.com/download/symbolsAlternative symbol paths:
# Local cache + Microsoft symbol server
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
# Multiple symbol servers
SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols;SRV*http://chromium-browser-symsrv.commondatastorage.googleapis.com
# Local symbols directory
C:\Symbols
-
Install .NET Core/SDK:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb sudo apt-get update sudo apt-get install -y dotnet-sdk-8.0
-
Clone the repository:
git clone --recursive https://github.com/K2/inVtero.net.git cd inVtero.net -
Build inVteroCore:
cd inVtero.core dotnet restore dotnet build inVtero.core.sln -c Release -
Set up symbol path (uses symbol servers automatically on Linux):
export _NT_SYMBOL_PATH="SRV*$HOME/.symbols*http://msdl.microsoft.com/download/symbols" # Add to ~/.bashrc for persistence echo 'export _NT_SYMBOL_PATH="SRV*$HOME/.symbols*http://msdl.microsoft.com/download/symbols"' >> ~/.bashrc
-
Install .NET Core:
sudo dnf install dotnet-sdk-8.0
-
Follow Ubuntu steps 2-4 above.
-
Install .NET Core:
sudo pacman -S dotnet-sdk
-
Follow Ubuntu steps 2-4 above.
-
Install .NET Core:
brew install --cask dotnet-sdk
-
Clone and build:
git clone --recursive https://github.com/K2/inVtero.net.git cd inVtero.net/inVtero.core dotnet restore dotnet build inVtero.core.sln -c Release
-
Install .NET Core (if available):
pkg install dotnet
-
Clone and build:
git clone --recursive https://github.com/K2/inVtero.net.git cd inVtero.net/inVtero.core dotnet restore dotnet build inVtero.core.sln -c Release
-
Clone the repository:
git clone --recursive https://github.com/K2/inVtero.net.git cd inVtero.net -
Open in Visual Studio:
Open inVtero.net.sln in Visual Studio 2017 or later -
Restore NuGet packages:
- Right-click solution → "Restore NuGet Packages"
- Or: Tools → NuGet Package Manager → Package Manager Console
Update-Package -reinstall -
Build the solution:
- Build → Build Solution (Ctrl+Shift+B)
- Or select Release configuration and build
-
Output location:
inVtero.net/bin/Release/ quickdumps/bin/Release/
# Using MSBuild
"C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" inVtero.net.sln /p:Configuration=Release
# Or using dotnet (if .NET Core SDK installed)
dotnet build inVtero.net.sln -c Releasegit clone --recursive https://github.com/K2/inVtero.net.git
cd inVtero.net
# Build .NET Core version
cd inVtero.core
dotnet restore
dotnet build inVtero.core.sln -c Release
# Build quickcore utility
cd quickcore
dotnet build -c Release
# Run quickcore
dotnet run -- --helpinVtero.net will automatically use the Microsoft symbol server if _NT_SYMBOL_PATH is not set.
Windows:
# Persistent (all users)
setx _NT_SYMBOL_PATH "SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols" /M
# Persistent (current user)
setx _NT_SYMBOL_PATH "SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols"
# Current session only
set _NT_SYMBOL_PATH=SRV*C:\Symbols*http://msdl.microsoft.com/download/symbolsLinux/macOS:
# Add to ~/.bashrc or ~/.zshrc
export _NT_SYMBOL_PATH="SRV*$HOME/.symbols*http://msdl.microsoft.com/download/symbols"
# Apply immediately
source ~/.bashrc# Windows (cmd)
echo %_NT_SYMBOL_PATH%
# Windows (PowerShell)
$env:_NT_SYMBOL_PATH
# Linux/macOS
echo $_NT_SYMBOL_PATHIf you have PDB files locally:
# Windows
set _NT_SYMBOL_PATH=C:\MySymbols;C:\Windows\Symbols;SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
# Linux/macOS
export _NT_SYMBOL_PATH="/path/to/symbols:SRV*$HOME/.symbols*http://msdl.microsoft.com/download/symbols"Windows (.NET Framework):
- msdia140.dll (Microsoft Debug Interface Access)
- dbghelp.dll (included in package)
- symsrv.dll (included in package)
All Platforms:
- Optional: Capstone engine (for disassembly)
- Optional: Keystone engine (for assembly)
- Optional: IronPython (for scripting)
Capstone (disassembly):
# Ubuntu/Debian
sudo apt-get install libcapstone-dev
# macOS
brew install capstone
# Windows
# Download from: https://www.capstone-engine.org/Keystone (assembly):
# Ubuntu/Debian
sudo apt-get install cmake
git clone https://github.com/keystone-engine/keystone.git
cd keystone && mkdir build && cd build
cmake .. && make && sudo make install
# macOS
brew install keystone
# Windows
# Download from: https://www.keystone-engine.org/Windows:
# Using quickdumps
cd quickdumps\bin\Release
quickdumps.exe --help
# Should display help informationLinux/macOS:
cd inVtero.core/quickcore/bin/Release/net6.0
dotnet quickcore.dll --help# Windows
quickdumps.exe -f "C:\dumps\memory.dmp"
# Linux/macOS
dotnet quickcore.dll -f "/path/to/memory.dmp"Expected output:
- Detection of memory format
- Scanning progress
- List of detected processes
- Process CR3 values
- Hypervisor information (if applicable)
Solution:
# Run as Administrator
regsvr32 C:\path\to\msdia140.dll
# Or from Visual Studio directory
regsvr32 "C:\Program Files\Microsoft Visual Studio\2022\Community\DIA SDK\bin\amd64\msdia140.dll"Solution:
- Ensure msdia140.dll is in the same directory as the executable
- Register the DLL (see above)
- Install Visual Studio C++ redistributables:
https://aka.ms/vs/17/release/vc_redist.x64.exe
Solution:
- Check internet connection
- Verify symbol path configuration
- Try alternative symbol server
- Check firewall/proxy settings:
# Windows - bypass proxy for symbol server set HTTP_PROXY= set HTTPS_PROXY=
Solution:
-
Ensure all git submodules are initialized:
git submodule update --init --recursive
-
Install missing dependencies:
sudo apt-get install build-essential
-
Use correct .NET Core version:
dotnet --version # Should be 6.0 or higher
Solution:
# Restore NuGet packages
dotnet restore
# Clean and rebuild
dotnet clean
dotnet buildSolution:
- Verify dump file format is supported
- Check if file is corrupted:
file memory.dump # Linux/macOS - Try different run detection mode
- Convert dump to RAW format using volatility/rekall
Solution:
- Use SSD for memory dumps
- Increase available RAM
- Enable page caching
- Use appropriate verbosity level
- Disable progress bar for batch processing
- GitHub Issues: https://github.com/K2/inVtero.net/issues
- Documentation: http://ShaneK2.github.io/inVtero.net
- Security Issues: See SECURITY.md
Enable verbose output for troubleshooting:
Python Scripts:
Vtero.VerboseOutput = True
Vtero.DiagOutput = True
Vtero.VerboseLevel = 2Command Line:
# Add verbose flags (implementation specific)
quickdumps.exe -f dump.dmp --verboseAfter installation:
- Read USER_GUIDE.md for usage instructions
- Review ARCHITECTURE.md to understand the design
- Check Scripts/ directory for example Python scripts
- See API_REFERENCE.md for programming interface
- Disable Windows Defender scanning for dump directories (performance)
- Use local cache for symbols:
mkdir C:\Symbols set _NT_SYMBOL_PATH=C:\Symbols*http://msdl.microsoft.com/download/symbols
- Allocate more memory for large dumps (16GB+ recommended)
- Analyze dumps in isolated environment
- Use read-only mounts for dump files
- Restrict network access if analyzing potentially compromised systems
- Verify dump integrity before analysis
cd inVtero.net
git pull origin master
git submodule update --init --recursive
# Rebuild
dotnet build -c ReleaseDownload latest publish.zip and extract over existing installation.
- Delete installation directory
- Unregister msdia140.dll (optional):
regsvr32 /u msdia140.dll - Remove environment variables
rm -rf inVtero.net
# Remove from ~/.bashrc if added