Red de conocimiento informático - Problemas con los teléfonos móviles - ¿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!

¿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!

A continuación se proporciona una función. Su primer parámetro es el ID del proceso de destino, el segundo parámetro es la dirección de destino y el tercer parámetro es el valor modificado.

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

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 )

devolver VERDADERO;

}