¿Cómo modificar la memoria en el desarrollo de controladores de Windows? Por ejemplo, ¿sabe cómo cambiar el contenido de una dirección en nopad.exe a 123? ¡Ruega de rodillas!
BOOL VM_Modify (DWORD dwProcessId, DWORD dwTagAddr, DWORD dwValue)
{
HANDLE hProcess = INVALID_HANDLE_VALUE
if ( dwProcessId ! = GetCurrentProcessId() )
{
// Abrir el proceso de destino
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessId);
if (hProcess == NULL)
return FALSE
}
DWORD dwWriteBytes = 0, dwOldProtect
// Establecer el objetivo El modo de protección de la dirección se cambia a modo lectura-escritura
VirtualProtectEx (hProcess, (LPVOID)dwTagAddr, sizeof(DWORD), PAGE_READWRITE, amp; dwOldProtect);
// Modificar datos p>
WriteProcessMemory (hProcess, (LPVOID)dwTagAddr, & dwValue, sizeof(DWORD), & dwWriteBytes);
// Restaurar el modo de protección de la dirección de destino
VirtualProtectEx ( hProcess, (LPVOID)dwTagAddr, & dwValue, sizeof(DWORD), & dwWriteBytes ) sizeof(DWORD), dwOldProtect, NULL
CloseHandle ( hProcess ) ; p>
devolver VERDADERO;
}