¿Cuál es el comando VB que hace que el botón izquierdo del mouse haga clic?
HWND FindWindow(.
LPCTSTR lpClassName, // Puntero al nombre de la clase
LPCTSTR lpWindowName // Puntero al nombre de la ventana
) Puntero a nombre de clase
LPCTSTR lpWindowName // Puntero al nombre de la ventana
);
2. Usamos GetWindowThreadProcessId para obtener el ID del proceso correspondiente al ventana del juego El uso de la función es el siguiente:
DWORD GetWindowThreadProcessId(
HWND hWnd, // Identificador de ventana
LPDWORD lpdwProcessId // Dirección de variable utilizada para el proceso. identificador
);
3. Después de obtener el ID del proceso del juego, el siguiente paso es abrir el proceso con los permisos más altos. El método específico para usar la función OpenProcess es. de la siguiente manera:
HANDLE OpenProcess (
p>DWORD dwDesiredAccess, // Indicador de acceso
BOOL bInheritHandle, // Manejar el indicador de herencia
DWORD dwProcessId // Identificador de proceso
);
En dwDesiredAccess, aquí es donde se configura el modo de acceso. Aquí solo necesitamos usar PROCESS_ALL_ACCESS para abrir. el proceso. Para otros métodos, podemos consultar MSDN.
4. Después de abrir el proceso, podemos usar la función de operación de almacenamiento. Aquí solo necesitamos usar WriteProcessMemory para escribir datos en la dirección de memoria (otras operaciones como: ReadProcessMemory, etc., no las haré). cúbralo aquí) (Presentado uno por uno), echemos un vistazo al uso de WriteProcessMemory:
BOOL WriteProcessMemory(
HANDLE hProcess, // El identificador del proceso en el que se escribe la memoria
LPVOID lpBaseAddress, // La dirección para comenzar a escribir en la memoria
LPVOID lpBuffer, // El puntero del búfer donde escribir los datos
DWORD nSize, // Los bytes que se escribirán Número
LPDWORD lpNumberOfBytesWritten // El número real de bytes escritos
);
5. mango de proceso.
Esto es parte del método para implementar este tipo de programa de complemento de juego. Bien, con este método, tenemos una comprensión racional. Echemos un vistazo a ejemplos reales para mejorar nuestra sensibilidad. El siguiente es el código del complemento del juego XX. Aprendamos el método anterior:
const
ResourceOffset: dword = $004219F4
recurso: dword = 3113226621;
ResourceOffset1: dword = $004219F8;
recurso1: dword = 1940000000
ResourceOffset2: dword = $0043FA50; p> recurso2: dword = 1280185;
ResourceOffset3: dword = $0043FA54;
recurso3: dword = 3163064576
ResourceOffset4: dword = $0043FA58 ; /p>
recurso4: dword = 2298478592;
var
hw:HWND;
pid:
h:
hw := FindWindow('XX', nil);
si hw = 0 entonces
Salir
GetWindowThreadProcessId(hw, @pid; );
h := OpenProcess(PROCESS_ALL_ACCESS, false, pid
Si h = 0 entonces
Salir; flatcheckbox1.Checked=true entonces
comenzar
WriteProcessMemory(h, Pointer(ResourceOffset), @Resource, sizeof(Resource), tt
WriteProcessMemory(h, Pointer(); ResourceOffset1), @Resource1, sizeof(Resource1), tt);
end;
if flatcheckbox2. Entonces
Iniciar
WriteProcessMemory. (h, Puntero(ResourceOffset2), @Resource2, tamaño de (Recurso2), tt
WriteProcessMemory(h, Puntero(ResourceOffset2), @Recurso2, tamaño de (Recurso2), tt);
p>
Fin;
Si flatcheckbox2.Pointer(ResourceOffset3), @Resource3, sizeof(Resource3), tt
WriteProcessMemory(h, Pointer(ResourceOffset4); ), @ Recurso4, tamaño de( Recurso4),
fin
MensajeBeep(0);
CloseHandle(h);
cerrar;
fin.