[SOLUCIONADO] Lectura de memoria de un proceso

Iniciado por Vuls, Junio 16, 2020, 11:17:42 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Junio 16, 2020, 11:17:42 PM Ultima modificación: Junio 19, 2020, 01:05:32 AM por AXCESS
Hola, tengo una duda de como obtengo las direcciones dentro de la seccion COMMIT. Se que para obtener las secciones COMMIT utilizo VirtualQueryEx, hasta ahi todo normal, luego una vez tenga la direccion de la zona donde esta el valor que quiero modificar, utilizo ReadProcessMemory, para buscar el patron.

La duda que tengo es por ejemplo encontre mi patron, pero como obtengo la direccion exacta de donde esta ese valor?
Me estoy saltando algun paso?


Disculpe...pero, qué es lo que desea??? : interrogante, duda, tutorial, método, etc.???
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Una vez obtenga las direcciones de las secciones permitidas a la lectura(COMMIT), creo que el paso a seguir seria utilizar ReadProcessMemory para buscar el patron que necesito, una vez lo encuentre quiero obtener la direccion exacta de la busqueda(dentro de COMMIT), y tambien como podria obtener todas las direcciones de esa zona que es donde se encuentra el valor que quiero modificar

Ya le entendí.
Pues... ni idea, nunca lo he hecho. :P

Buscando info, pues está interesante, me topo conque hay problemas con las arquitecturas (de 32 o de 64 bits) y cosa curiosa no hay ni mucha información o es relativamente antigua (2017 hacia atrás)

No obstante, logré entenderle lo que busca y el proceso, en el orden en que lo hace.

Dele una ojeada a estas referencias.
En aras de que le sean inspiradoras, porque estoy perdido,
Buscaré info con más calma y sosiego.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

"ReadProcessMemory copia los datos en el rango de direcciones especificado del espacio de direcciones del proceso especificado en el búfer especificado del proceso actual. Cualquier proceso que tenga un identificador con acceso PROCESS_VM_READ puede llamar a la función.

Toda el área a leer debe ser accesible, y si no es accesible, la función falla.
"

Este intenta implementar el método en un código:

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Este es de 64 bit, que según leí, el VirtualQueryEx tiende hacerlo en 32 y hay que realizar un proceso.. me pareció entender con las prisas.

No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Está este vídeo... que Ud. juzgará si sirve de algo e ilumina (lo veré más tarde con detalle):



Buscaré más info sobre el tema, porque está interesante.
Si encuentro algo se lo comento.

Disculpe la ignorancia y el descoloque.

En aras de intercambiar sombreros y aprender mutuamente.
[/size][/color]
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta

Junio 18, 2020, 11:28:24 AM #4 Ultima modificación: Junio 18, 2020, 11:32:01 AM por Vuls
Hola, ya encontre la solucion. Para este tipo de programa es requerido Cheat Engine para analizar la memoria del programa entonces haciendo como analogias basicas seria decir que con VirtualQueryEx se obtienen las carpetas que contienen las variables del programa, listo, VirtualQueryEx me devolvio la direccion base

0xdb4000 -> en esta carpeta esta la variable que necesito modificar por lo general estas carpetas tienen un tamaño 4096 bytes y la informacion de la ubicacion de las variables dentro de la carpeta estan nombradas asi: 0xdb4000 + offset entonces para obtener todas las direcciones de memoria que hay dentro de la carpeta seria

regionSize = 4096 -> este valor se obtiene en el virtualqueryex con MEMORY_BASIC_INFORMATION
Código: text

C#
MEMORY_BASIC_INFORMATION mbi = new MEMORY_BASIC_INFORMATION();

for(int i =0; i < mbi.regionSize().toInt32();i++)
{
  Console.WriteLine(string.Format("Address: {0}", (mbi.baseAddress + i).toString("X")));
}
[/size][/size]

Junio 19, 2020, 01:04:35 AM #5 Ultima modificación: Junio 19, 2020, 01:07:16 AM por AXCESS
Pues, le invito a hacer un Post / Tutorial, pues está muy interesante y hay poca info sobre ello.

Gracias por compartir cómo lo logró.
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta