c0de
Administrador
- Registrado
- 19 Abr 2020
- Mensajes
- 286
En este hilo, cubriré cómo obtener una lista de identificadores de procesos. ¡Podrás hacer esto desde el modo de usuario, que es lo que lo hace tan genial! En realidad, hay bastantes aplicaciones de esto en el mundo de la piratería de juegos. Por ejemplo, podría verificar si el juego o el módulo anti-trampas tiene un identificador abierto para su trampa. También es interesante en general ver todas las manijas que están abiertas en su computadora. Todo esto funciona llamando a funciones NT no documentadas (ntdll), debido a esto, el código puede requerir alguna pequeña modificación para ejecutarse en su sistema en particular. Si el código no funciona, es probable que deba modificar las estructuras internas. SystemInfo.h. La mayor parte de esta información está tomada de
Simplemente podemos llamar a GetModuleHandle y GetProcAddress para resolver la dirección virtual de estas funciones en nuestro programa. Eso podría ser algo como esto:
¡Ahora podemos comenzar a obtener nuestra lista de identificadores de procesos! Lo primero que hacemos es llamar a NtQuerySystemInformation y pasarle un puntero a nuestro
Estructura SYSTEM_HANDLE_INFORMATION. La primera vez que lo llamamos solo para saber el tamaño de la información que estamos consultando. Con esa información, ahora podemos asignar nuestra estructura SYSTEM_HANDLE_INFOROMATION para que tenga el tamaño exacto que la necesitamos. A partir de ahí, podemos consultar todos los objetos del sistema llamando a las funciones una vez más. Así es como se vería ese código
Ahora repasaré cómo enumerar a través de nuestra estructura SYSTEM_HANDLE_INFORMATION. El primer miembro de la estructura es el número de identificadores y el segundo miembro es una matriz que contiene todos los identificadores. Esto hace que recorrerlos sea bastante autoexplicativo. Podrías hacer un bucle for que se vea así.
Y aquí está la estructura de SYSTEM_HANDLE
¡Eso concluye este tutorial, y debe saber cómo obtener una lista de identificadores de procesos! ¡Con suerte, ustedes pueden hacer algunos proyectos geniales con esto! Asegúrese de consultar la fuente adjunta para obtener más ejemplos. Un enorme agradecimiento a Zoltan Csizmadia por hacer que esta información sea tan accesible.
Creditos
Rake
Please,
Acceder
or
Regístrate
to view URLs content!
así que asegúrese de revisarla. Cómo obtener una lista de identificadores de procesos
Para comenzar a enumerar a través de identificadores, primero debemos resolver las ubicaciones en la memoria de las funciones ntdll que usaremos. Dado que todo lo que queremos hacer es obtener una lista de identificadores de objetos, podemos hacerlo llamando a NtQuerySystemInformation. Dado que no hay un encabezado ntdll oficial, necesitaremos crear las plantillas de función nosotros mismos. Así es como podrían verse para algunas de nuestras funciones:
C++:
Please,
Acceder
or
Regístrate to view codes content!
Simplemente podemos llamar a GetModuleHandle y GetProcAddress para resolver la dirección virtual de estas funciones en nuestro programa. Eso podría ser algo como esto:
C++:
Please,
Acceder
or
Regístrate to view codes content!
¡Ahora podemos comenzar a obtener nuestra lista de identificadores de procesos! Lo primero que hacemos es llamar a NtQuerySystemInformation y pasarle un puntero a nuestro
Estructura SYSTEM_HANDLE_INFORMATION. La primera vez que lo llamamos solo para saber el tamaño de la información que estamos consultando. Con esa información, ahora podemos asignar nuestra estructura SYSTEM_HANDLE_INFOROMATION para que tenga el tamaño exacto que la necesitamos. A partir de ahí, podemos consultar todos los objetos del sistema llamando a las funciones una vez más. Así es como se vería ese código
C++:
Please,
Acceder
or
Regístrate to view codes content!
Ahora repasaré cómo enumerar a través de nuestra estructura SYSTEM_HANDLE_INFORMATION. El primer miembro de la estructura es el número de identificadores y el segundo miembro es una matriz que contiene todos los identificadores. Esto hace que recorrerlos sea bastante autoexplicativo. Podrías hacer un bucle for que se vea así.
C++:
Please,
Acceder
or
Regístrate to view codes content!
Y aquí está la estructura de SYSTEM_HANDLE
C++:
Please,
Acceder
or
Regístrate to view codes content!
¡Eso concluye este tutorial, y debe saber cómo obtener una lista de identificadores de procesos! ¡Con suerte, ustedes pueden hacer algunos proyectos geniales con esto! Asegúrese de consultar la fuente adjunta para obtener más ejemplos. Un enorme agradecimiento a Zoltan Csizmadia por hacer que esta información sea tan accesible.
Creditos
Rake