elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Leer imagen y ejecutar acción si cambia.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Leer imagen y ejecutar acción si cambia.  (Leído 2,713 veces)
Zitox

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Leer imagen y ejecutar acción si cambia.
« 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!


En línea

Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #1 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
  1. BOOL WINAPI ReadProcessMemory(
  2.  _In_   HANDLE hProcess,
  3.  _In_   LPCVOID lpBaseAddress,
  4.  _Out_  LPVOID lpBuffer,
  5.  _In_   SIZE_T nSize,
  6.  _Out_  SIZE_T *lpNumberOfBytesRead
  7. );
  8.  

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.


En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Zitox

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #2 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!
En línea

Zitox

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #3 en: 11 Marzo 2015, 00:15 am »

Mira use este code (VB 2010):
Código:
Public Class Form1
    Private Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hprocess As Integer, ByVal Address _
                                                                                           As Integer, ByRef Value As Integer, ByVal Size As Integer, ByRef BytesWritten As Integer) As Integer
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim address As Integer = &H2A4D00
            Dim value As Integer = TextBox1.Text
            LblVida.Text = value
            WriteProcessMemory(hprocess(0).Handle, address, value, 4, 0)
        Catch ex As Exception
        End Try
    End Sub

    Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim address As Integer = &H2A4D00
            Dim value As Integer = TextBox1.Text
            WriteProcessMemory(hprocess(0).Handle, address, value, 4, 0)
        Catch ex As Exception
            MsgBox("Engine for Game")
        End Try
    End Sub
End Class

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



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!
« Última modificación: 11 Marzo 2015, 00:21 am por Zitox » En línea

Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #4 en: 11 Marzo 2015, 01:29 am »

Mira use este code (VB 2010):
Código:
Public Class Form1
    Private Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hprocess As Integer, ByVal Address _
                                                                                           As Integer, ByRef Value As Integer, ByVal Size As Integer, ByRef BytesWritten As Integer) As Integer
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim address As Integer = &H2A4D00
            Dim value As Integer = TextBox1.Text
            LblVida.Text = value
            WriteProcessMemory(hprocess(0).Handle, address, value, 4, 0)
        Catch ex As Exception
        End Try
    End Sub

    Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim address As Integer = &H2A4D00
            Dim value As Integer = TextBox1.Text
            WriteProcessMemory(hprocess(0).Handle, address, value, 4, 0)
        Catch ex As Exception
            MsgBox("Engine for Game")
        End Try
    End Sub
End Class

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



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.
« Última modificación: 11 Marzo 2015, 01:31 am por Miseryk » En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Zitox

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #5 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
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim Ipbaseaddress As Integer = &H1874D00
            Dim IpBuffer As Integer = TextBox1.Text
            LblVida.Text = value
            ReadProcessMemory(hprocess(0).Handle, Ipbaseaddress, value, 4, 0)
        Catch ex As Exception
        End Try
    End Sub
Timer2
Código:
Private Sub Timer2_Tick(sender As System.Object, e As System.EventArgs) Handles Timer2.Tick
        Try
            Dim name As String = "Tutorial-i386"
            Dim hprocess As Process() = Process.GetProcessesByName(name)
            Dim Ipbaseaddress As Integer = &H1874D00
            Dim IpBuffer As Integer = TextBox1.Text
            ReadProcessMemory(hprocess(0).Handle, Ipbaseaddress, value, 4, 0)
        Catch ex As Exception
            MsgBox("Engine for Game")
        End Try
    End Sub
End Class

Para que lo tengan, y depaso tambien lo sepan!
Saludos! Y gracias por toda la ayuda!!
En línea

Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
Re: Leer imagen y ejecutar acción si cambia.
« Respuesta #6 en: 11 Marzo 2015, 21:07 pm »

Cuando leés una posición de memoria como por ejemplo:

Código
  1. ReadProcessMemory(hprocess(0).Handle, Ipbaseaddress, value, 4, 0)
  2.  

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
  1. TextBox1.Text = value
  2.  

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.
« Última modificación: 11 Marzo 2015, 21:13 pm por Miseryk » En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
imagen de video que cambia al pasar el cursor sobre el
Multimedia
BUSCAMINAS® 0 3,519 Último mensaje 17 Septiembre 2011, 03:15 am
por BUSCAMINAS®
xubuntu no me cambia imagen del grub
GNU/Linux
General Dmitry Vergadoski 2 2,075 Último mensaje 11 Noviembre 2012, 21:53 pm
por adgellida
Ejecutar accion sin reiniciar página
PHP
glcc11 1 1,691 Último mensaje 10 Junio 2013, 06:05 am
por engel lex
leer y ejecutar
Scripting
nimpos 1 1,911 Último mensaje 15 Diciembre 2013, 19:34 pm
por Eleкtro
Google cambia de imagen: la simplicidad por estandarte
Noticias
wolfbcn 0 929 Último mensaje 1 Septiembre 2015, 21:34 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines