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.
- Download the latest binary for your architecture from the Releases page
- Extract
winmap.exeto your desired location - Optionally add the directory to your system PATH for easy access from any command line tool
Requirements:
- Visual Studio 2015 or later, or MinGW with GCC
- Windows SDK (included with Visual Studio)
Steps:
-
Clone the repository:
git clone https://github.com/dhr412/winmap.git cd winmap -
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
-
The compiled binary will be in the current directory
winmap.exe <process_id> <hex_address> <type> <value>
- 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, orstr - value: The value to write (format depends on type)
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.
You can display the help message by using any of the following flags:
winmap.exe -h
winmap.exe --help
winmap.exe -helpThis will show detailed usage information, examples, and all available options.
Write an integer value to a process:
winmap.exe 12345 0x0d37ff6e0 int 42Write a float value:
winmap.exe 12345 0x0d37ff6e0 float 3.14Write a boolean value:
winmap.exe 12345 0x0d37ff6e0 bool 1Write a pointer value:
winmap.exe 12345 0x0d37ff6e0 str "Hello"- Administrator Privileges: You may need to run
winmapas 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
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.
This project is licensed under the MIT License - see the LICENSE file for details.