Título: Leer imagen y ejecutar acción si cambia. Publicado por: Zitox en 8 Marzo 2015, 20:36 pm Buenas me acabo de registrar en este foro por que lo veo bueno y activo, soy Zitox
Vengo con una duda, eh visto en varios post de varios foros, sobre una funcion que se llama "ReadProcessMemory" Que seria para leer la memoria de un X programa. Lo que quiero hacer creo que es eso. Por ejemplo aca dejo una imagen: http://fotos.subefotos.com/1409def66bcaf6efd48b1d2bdce10e3fo.jpg Queria que detectara si el primer numero "400" esta sobre bajo del "400" y si pasa eso lo que haria seria ejecutar "x" accion. Busque en todos lados sinceramente, pero no entrontre eso. Encontre GetPixel de todo que tiene que ver con el tema pero no el mismo. Espero que me puedan ayudar. Saludos! Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Miseryk en 9 Marzo 2015, 16:54 pm Buenas me acabo de registrar en este foro por que lo veo bueno y activo, soy Zitox Vengo con una duda, eh visto en varios post de varios foros, sobre una funcion que se llama "ReadProcessMemory" Que seria para leer la memoria de un X programa. Lo que quiero hacer creo que es eso. Por ejemplo aca dejo una imagen: http://fotos.subefotos.com/1409def66bcaf6efd48b1d2bdce10e3fo.jpg Queria que detectara si el primer numero "400" esta sobre bajo del "400" y si pasa eso lo que haria seria ejecutar "x" accion. Busque en todos lados sinceramente, pero no entrontre eso. Encontre GetPixel de todo que tiene que ver con el tema pero no el mismo. Espero que me puedan ayudar. Saludos! Así es, ReadProcessMemory lee desde una posición de memoria tantos bytes, por lo que mostrás, puede leer desde 2 bytes a 4 bytes, si es un juego como leer la vida me imagino que son 4 bytes. Código
handle del proceso, (se le hace un OpenProcess 1ro) posición Address, (ej: 0x004561A0) salida, (variable tuya) bytes a leer, (cantidad, ej: 2&, 4&) 0 (vá casi siempre en cero, es para otra cosa) PD: ReadProcessMemory es indetectable. Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Zitox en 9 Marzo 2015, 21:04 pm Muchas gracias por responder.
Yo ahora no estoy en pc que tenga el vb Pero entiendo el code que me pasaste, cuandoi este en pc lo voy a probar. Si necesito algo que no entiendo respndo por aca, saludos! Devuelta, graicas por responder! Y por la onda de explicarme bien! Zitox! Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Zitox en 11 Marzo 2015, 00:15 am Mira use este code (VB 2010):
Código: Public Class Form1 Y puse en el form, un label de name "LblVida" y un texbox1 Pero lo que hace en el textox1 es modificar el dato donde dice "Health: ***" el *** modifica instantáneamente por que es un timer de intervalo 10 (http://fotos.subefotos.com/a4280c72afe79617a8bc845aff4337c3o.jpg) Ahora, yo quiero que en ves de dar/modificar el valor que seria el que yo le coloque al textbox1.text que seria 999, revisa el valor del "Health: ****" se entiende? Entiendo que la solucion seria simple Write es Escribir, y read, es leer, pero no encuentro el mismo code para declararlo de Read Muchisimas Gracias! Zitox! Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Miseryk en 11 Marzo 2015, 01:29 am Mira use este code (VB 2010): Código: Public Class Form1 Y puse en el form, un label de name "LblVida" y un texbox1 Pero lo que hace en el textox1 es modificar el dato donde dice "Health: ***" el *** modifica instantáneamente por que es un timer de intervalo 10 (http://fotos.subefotos.com/a4280c72afe79617a8bc845aff4337c3o.jpg) Ahora, yo quiero que en ves de dar/modificar el valor que seria el que yo le coloque al textbox1.text que seria 999, revisa el valor del "Health: ****" se entiende? Entiendo que la solucion seria simple Write es Escribir, y read, es leer, pero no encuentro el mismo code para declararlo de Read Muchisimas Gracias! Zitox! No sé como funciona .NET, pero el address es siempre de 4 bytes (long), lo mismo con el valor, integer = 2 bytes, long = 4 bytes PD: intentá leerlo 1ro. Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Zitox en 11 Marzo 2015, 20:19 pm Lo pude lograr, con este code
Declare asi: Código: Public Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer Y adapte los timer asi: Timer1 Código: Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick Código: Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick Para que lo tengan, y depaso tambien lo sepan! Saludos! Y gracias por toda la ayuda!! Título: Re: Leer imagen y ejecutar acción si cambia. Publicado por: Miseryk en 11 Marzo 2015, 21:07 pm Cuando leés una posición de memoria como por ejemplo:
Código
Bueno, el Ipbaseaddress lo tenés que saber de antemano, la variable "value" tiene que ser de X cantidad de bytes como el siguiente parámetro, en este caso 4. Luego vas a obtener los 4 bytes desde esa posición de memoria, con lo cual luego podrías hacer: Código
y listo, verías el valor leído en el textbox, ésto es muy eficiente para leer ciertas regiones de memoria para saber si te modificaron algo o no, como por ejemplo GetTickCount() por un speedhack. (Si está hookeada usualmente hay un JMP o un MOV EAX seguido del JMP EAX) Edit: PD: Cada vez que se hace un OpenProcess hay que hacer un CloseHandle, otra cosa, con que abras una vez sóla el proceso ya es suficiente, dejá la variable como global y listo. |