Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MeatyDumper

MeatyDumper is a Windows x64 GUI for reading IL2CPP metadata from a running process through a LeechCore/MemProcFS-compatible FPGA/DMA device. It can create timestamped JSON dumps, inspect previously created dumps, save favourite classes and fields in profiles, and generate a small C++ SDK header from those favourites.

The current configuration targets:

  • Process: EscapeFromTarkov.exe
  • Native module: GameAssembly.dll
  • Managed assembly label: Assembly-CSharp.dll

Important

Use this project only on systems and software that you own or are explicitly authorised to inspect. You are responsible for complying with applicable laws, licences, terms of service, and platform rules. This project is not affiliated with or endorsed by Battlestate Games, the Escape from Tarkov developers, MemProcFS, LeechCore, or Dear ImGui.

Community

You can join the Meaty Community on discord for help, suggestions etc

https://discord.gg/p4pAHJxb3u

Features

  • Reads target memory through the MemProcFS/VMM and LeechCore APIs.
  • Resolves the IL2CPP type-information table using signatures with a configurable fallback RVA.
  • Dumps classes, namespaces, fields, field types, methods, pointers, RVAs, and resolver diagnostics.
  • Supports namespace and class-name filters.
  • Runs dumping work on a background thread so the interface remains responsive.
  • Uses timestamped filenames such as metadata_dump_2026-08-04_22-59-43.json.
  • Prevents accidental overwrites by adding _2, _3, and later suffixes when required.
  • Automatically loads a successful dump into the inspector.
  • Searches across classes, fields, methods, types, offsets, and addresses.
  • Saves favourite classes and fields in reusable JSON profiles.
  • Exports selected offsets to exports/sdk.h.

Requirements

Asset Downloads

You can download assets from the following link https://www.dropbox.com/scl/fo/omthnmoo91detj1wro1f6/AHU9OgAe_KEeVjAcHZGl-D4?rlkey=xbabo3i0vltzn3pje2zs7ggtb&st=2ofk0h72&dl=0

Build requirements

  • Windows 10 or Windows 11, x64.
  • Visual Studio with the MSVC v145 platform toolset, or a compatible toolset after retargeting the project.
  • Windows 10 SDK or newer.
  • C++20 or newer.
  • DirectX 9 development libraries from the Windows SDK.

The Dear ImGui, nlohmann/json, LeechCore, and VMM headers/import libraries used by the project are currently stored under Meatyeftdumper/assets and Meatyeftdumper/libs.

Runtime requirements

The following files must be available beside Meatyeftdumper.exe:

vmm.dll
leechcore.dll
FTD3XX.dll

You also need:

  • A supported FPGA/DMA device and its required drivers.
  • A working MemProcFS/LeechCore setup compatible with fpga://algo=0.
  • The configured target process running and visible to VMM.
  • Permission to inspect the target system and process.

The application will not start if any of the three runtime DLLs cannot be loaded.

Building

  1. Clone or download the repository.
  2. Open Meatyeftdumper.slnx in Visual Studio.
  3. Select Release and x64.
  4. Build the solution.
  5. Copy vmm.dll, leechcore.dll, and FTD3XX.dll beside the generated executable if they are not already there.

The normal Release output is:

x64/Release/Meatyeftdumper.exe

Release | x64 is the maintained configuration. The bundled VMM/LeechCore libraries and the target process are 64-bit, so the Win32 configurations should not be assumed to work.

If Visual Studio does not have v145 installed, use Project > Retarget solution or edit the platform toolset in the project properties to match an installed MSVC version.

Recommended release layout

MeatyDumper uses paths relative to its working directory. For a standalone release, keep the runtime files and resource folders together:

MeatyDumper/
|-- Meatyeftdumper.exe
|-- vmm.dll
|-- leechcore.dll
|-- FTD3XX.dll
|-- assets/
|   `-- fonts/
|       `-- fa-solid-900.ttf      # optional icon font
|-- profiles/
|   `-- default.json
|-- data/
|   `-- dumps/
`-- exports/

The Font Awesome font is optional. The application still works without it, but icon glyphs may be missing. Place the Font Awesome Free Solid font at:

assets/fonts/fa-solid-900.ttf

Usage

Creating a dump

  1. Connect and initialise the supported DMA hardware.
  2. Start the configured target process.
  3. Launch MeatyDumper.
  4. Open Dumper > Run dumper.
  5. Choose whether to include fields, methods, and field types.
  6. Optionally enter a namespace prefix or class-name filter.
  7. Select Run dump.

Progress and errors are shown in the dumper window. A successful dump is saved under data/dumps and automatically opened in the inspector.

The default filename includes local date and time:

metadata_dump_YYYY-MM-DD_HH-MM-SS.json

If a file with the requested name already exists, MeatyDumper creates a suffixed name instead of overwriting it.

Inspecting a dump

Use File > Open dump JSON or the Open dump button to load a dump. The inspector supports both the current namespace-based format and older flat class-array formats.

The search box matches:

  • Class and namespace names.
  • Class pointers.
  • Field names, types, and offsets.
  • Method names, signatures, return types, and addresses.

Profiles and favourites

Classes and individual fields can be marked as favourites. The default profile is stored at:

profiles/default.json

A profile contains a name and lists of favourite class/field keys. Use the Profile menu or the Profile / Export inspector tab to save, reload, or clear favourites.

Exporting sdk.h

After loading a dump and choosing favourites, use Export > Export sdk.h. The generated file is written to:

exports/sdk.h

Favourite fields are exported as std::ptrdiff_t constants. Methods are included as comments when their containing class is favourited. Generated identifiers are sanitised so namespace separators and other punctuation become underscores.

Always review generated output before using it. Missing, static, or non-numeric offsets may be emitted as comments rather than constants.

Dump format

Current dumps are ordinary JSON and start with a generator marker:

{
  "dumpedBy": "MeatyDumper",
  "backend": "...",
  "source": "...",
  "moduleName": "GameAssembly.dll",
  "classCount": 12345,
  "patterns": [],
  "namespaces": []
}

The main sections are:

  • Resolver and module information.
  • Pattern-scan results and selected resolution mode.
  • Namespaces containing class arrays.
  • Fields with decimal and hexadecimal offsets.
  • Methods with their pointers and RVAs.

Do not add JavaScript-style comments to a dump file. Comments are not valid JSON and will cause the inspector to reject the file.

Configuration

Compile-time target settings are in:

Meatyeftdumper/dumper/Il2CppDumpConfig.h

This file controls:

  • Target process and module names.
  • Pattern signatures and RIP-relative decoding settings.
  • Fallback table RVA.
  • IL2CPP class, field, method, and type offsets.
  • Safety limits such as maximum classes and fields.

These values are target-version-specific. Game or Unity updates can change signatures and layouts, so review them before assuming a dump is correct.

Runtime UI settings are saved to gui_config.json, including the accent colour, last dump, recent dumps, active profile, and window size.

The memory layer creates mmap.txt in the working directory when a memory map is needed. The dumper also writes dumper_debug_log.txt beside its JSON output.

Project structure

Meatyeftdumper/
|-- app/       # Application lifecycle and shared state
|-- assets/    # Dear ImGui, nlohmann/json, and optional fonts
|-- core/      # File and string helpers
|-- data/      # Dump JSON loading, GUI configuration, and profiles
|-- dumper/    # IL2CPP resolver, metadata dumper, and background job service
|-- export/    # C++ SDK header generation
|-- libs/      # LeechCore/VMM headers, import libraries, and data
|-- Memory/    # MemProcFS/LeechCore memory reader implementation
|-- profiles/  # Favourite profiles
|-- ui/        # Dear ImGui views, theme, and icons
`-- main.cpp   # Windows entry point

Troubleshooting

The application closes immediately

Confirm that vmm.dll, leechcore.dll, and FTD3XX.dll are beside the executable and match the executable architecture. A missing or incompatible runtime DLL prevents startup.

Memory initialisation failed

  • Confirm the DMA device and drivers are working.
  • Confirm your VMM/LeechCore versions are compatible.
  • Confirm the configured target process is running.
  • Check dumper_debug_log.txt.
  • If the physical-memory layout changed, remove or rename the local mmap.txt so it can be regenerated.
  • Run with the permissions required by your hardware/driver setup.

Could not find valid module: GameAssembly.dll

  • Confirm the process name in Il2CppDumpConfig.h matches the running executable.
  • Confirm GameAssembly.dll is loaded in that process.
  • Confirm the target, application, runtime DLLs, and libraries are all x64.

The dumper finds no classes or fails resolution

The target application may have changed. Review the signatures, fallback RVA, structure offsets, and resolver limits in Il2CppDumpConfig.h. The diagnostic pattern results in the JSON/log can help identify which resolution stage failed.

Icons are missing

Copy the Font Awesome Free Solid TTF file to assets/fonts/fa-solid-900.ttf, or ignore the warning and use the default ImGui font.

A dump will not open in the inspector

Validate that the file is complete JSON containing either:

  • namespaces, with a classes array inside each namespace; or
  • A supported flat array such as classes, types, classList, or items.

Contributing

When contributing:

  • Keep target-specific constants in Il2CppDumpConfig.h.
  • Keep UI, dump parsing, export, and memory code in their existing modules.
  • Build and test Release | x64 before submitting changes.
  • Test both new namespace-based dumps and older flat JSON formats.
  • Do not commit personal dumps, generated SDK files, logs, local configuration, or proprietary target data.
  • Explain which target build and hardware/runtime versions were used when changing patterns or offsets.

Third-party components

This repository contains or integrates with components that retain their own copyright and licence terms:

  • MemProcFS/VMM - GNU Affero General Public License v3.0.
  • LeechCore - GNU General Public License v3.0.
  • Dear ImGui - MIT License.
  • nlohmann/json - MIT License.
  • FTDI D3XX - proprietary FTDI driver licence terms.
  • Microsoft DirectX and Windows APIs - applicable Microsoft SDK/runtime terms.

Third-party code and binaries are not relicensed under the MeatyDumper licence. Preserve their copyright notices, licence files, attribution, and redistribution terms. In particular, FTDI software may only be used and redistributed under FTDI's terms and with supported genuine FTDI components.

Licence

MeatyDumper's original source code is licensed under the GNU Affero General Public License v3.0, as published by the Free Software Foundation. See LICENSE for the complete terms.

In practical terms, if you distribute MeatyDumper or a modified version, you must:

  • Keep the copyright, attribution, and licence notices intact.
  • Provide recipients with a copy of the GNU AGPL v3.0.
  • Make the complete corresponding source code for the distributed version available under the GNU AGPL v3.0, including the material needed to build and install it.
  • Clearly identify significant changes you make.
  • Keep covered modified versions under the GNU AGPL v3.0.
  • If a modified version is operated as a network service, offer its corresponding source to users interacting with it over that network, as required by section 13 of the AGPL.

The compiled application links to MemProcFS/VMM (AGPL-3.0) and LeechCore (GPL-3.0). GPLv3 and AGPLv3 permit this combination; the AGPL requirements apply to the combined work. When distributing builds containing or accompanied by those components, also satisfy their corresponding-source and notice requirements for the exact versions distributed.

The AGPL does not grant rights to third-party software under separate terms, including FTDI's D3XX runtime. Consult each dependency's licence before publishing source archives or binary releases.

This section is a plain-language summary and not a substitute for the full licence texts or legal advice.

Disclaimer

MeatyDumper is provided for authorised research, debugging, interoperability, and educational use. It comes with no warranty. Incorrect offsets, signatures, hardware configuration, or target-version assumptions can produce incomplete or inaccurate output. The repository owner and contributors are not responsible for misuse, account action, data loss, hardware problems, or other damage resulting from use of the project.

About

Windows x64 IL2CPP metadata dumper and JSON inspector with DMA/FPGA memory access, profiles, search, and C++ SDK export.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages