Skip to content

dhr412/winmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

WinMap

WinMap is a cross-process memory modification utility for Windows. It allows reading and writing memory in another process by specifying a process ID, memory address, data type, and value.

⚠️ Warning: This tool can modify the memory of running processes. Incorrect usage can corrupt data, crash applications, or cause system instability. Only use this on processes you own or have explicit permission to modify. Use with caution and always test on non-critical processes first.

Installation

From Releases

  1. Download the latest binary for your architecture from the Releases page
  2. Extract winmap.exe to your desired location
  3. Optionally add the directory to your system PATH for easy access from any command line tool

Compiling from Source

Requirements:

  • Visual Studio 2015 or later, or MinGW with GCC
  • Windows SDK (included with Visual Studio)

Steps:

  1. Clone the repository:

    git clone https://github.com/dhr412/winmap.git
    cd winmap
  2. Compile the source:

    Using MSVC (Visual Studio):

    cl /W3 src/winmap.c /link kernel32.lib

    Using MinGW:

    gcc -o winmap.exe src/winmap.c -lkernel32
  3. The compiled binary will be in the current directory


Usage

winmap.exe <process_id> <hex_address> <type> <value>

Parameters

  • process_id: The decimal process ID (PID) of the target process
  • hex_address: The memory address in hexadecimal format (e.g., 0x0d37ff6e0)
  • type: Data type to write - int, float, bool, or str
  • value: The value to write (format depends on type)

Finding a Process ID

You can find the PID of a running process using:

tasklist /FI "IMAGENAME eq program.exe"

Or use Task Manager (Ctrl+Shift+Esc) and enable the PID column.

Getting Help

You can display the help message by using any of the following flags:

winmap.exe -h
winmap.exe --help
winmap.exe -help

This will show detailed usage information, examples, and all available options.

Examples

Write an integer value to a process:

winmap.exe 12345 0x0d37ff6e0 int 42

Write a float value:

winmap.exe 12345 0x0d37ff6e0 float 3.14

Write a boolean value:

winmap.exe 12345 0x0d37ff6e0 bool 1

Write a pointer value:

winmap.exe 12345 0x0d37ff6e0 str "Hello"

Important Notes

  • Administrator Privileges: You may need to run winmap as administrator to access memory of other processes
  • Process Must Be Running: The target process must be active during the operation
  • Confirmation Prompt: If the memory address contains a non-zero value, winmap will prompt you to confirm before overwriting
  • Error Handling: The tool provides detailed error messages if operations fail, including Windows error codes
  • Data Type Matters: Memory doesn't have inherent types. Always use the same data type when reading and writing to the same address, or you may misinterpret the data

Disclaimer

This tool is provided for educational and debugging purposes only. Users are responsible for any damage caused by its use. Modifying memory in system processes or third-party software may violate terms of service or cause legal issues. Use responsibly.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Cross-process memory modifier for Windows

Resources

License

Stars

Watchers

Forks

Languages