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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Pregunta readprocessmemory
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Pregunta readprocessmemory  (Leído 3,497 veces)
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Pregunta readprocessmemory
« en: 5 Enero 2011, 08:09 am »

Holaaa  ;-) ;-) ;-) ;-) ;-) ;-)

Primero que nada felices fiestas a todos, un poquitin tarde pero seguro :P

Queria consultar algo... Estoy tratando de leer en memoria el "textbox" de donde se pone el email en el msn... (Digo "textbox" porque no se que es ya que no tiene hwnd propio)

Entonces que hice fue usar un convertidor, y por ejemplo escribi "hola@hola.com" lo converti en array de bytes con el convertidor* y quedo esto:
"68 6f 6c 61 40 68 6f 6c 61 2e 63 6f 6d"

Lo que hice fue agregarles nops o "00" entre cada uno y me quedo asi:
"68 00 6f 00 6c 00 61 00 40 00 68 00 6f 00 6c 00 61 00 2e 00 63 00 6f 00 6d"
Despues, lo busque con el ce, y encontre el address dinamica (tranquilamente puedo buscar el pointer pero por ahora primero quiero ver si es posible lo que quiero hacer)

Entonces eso lo puedo transformar en texto con la funcion Hex2ASCII*...

Hasta ahi vamos bien, mi problema es que no logro leer, desde visual basic, en el formato array of bytes que lee el cheat engine... Si puedo leer por ejemplo en 4 bytes tranquilamente, pero no es lo mismo no me da cada caracter en hex como para que lo pueda convertir...
Alguien tiene alguna idea sobre como leer al igual que el cheat engine en array of bytes?

Muchisimas gracias y ahora explico los asteriscos :P Saludos!!!



*Convertidor online:
Código:
http://home2.paulschou.net/tools/xlate/

*Funcion Hex2ASCII
Código:
Public Function Hex2ASCII(sText As String) As String
 On Error Resume Next
 Dim sBuff() As String, A As Long
 sBuff() = Split(sText, Space$(1))
 For A = 0 To UBound(sBuff)
 Hex2ASCII = Hex2ASCII & Chr$("&h" & sBuff(A))
 DoEvents
 Next A
 End Function


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pregunta readprocessmemory
« Respuesta #1 en: 5 Enero 2011, 10:22 am »

.
Me imagino que se puede hacer asi... aun que si tuviera Nops ( 00 ) pues usaria un string pero mejor un array de Bytes.

Código
  1.  
  2. Dim Byt_ARR_Data() as byte
  3. Redim Byt_ARR_Data(1 to longituddeBytes)
  4.  
  5.  

y en el ReadProcessMemory en lugar de poner el puntero a un long o el long mismo pones

Código
  1.  
  2. byval varptr(Byt_ARR_Data(1))
  3.  
  4.  

y le pones la longitud del array sin pasarte OJO con eso...

P.D.: en los enlaces pegados en rtinas o algo asi hay un programa que hizo MadAntraX que Dumpea la memoria al Disco Duro de un Proceso X quisas te sirva... aun es casi lo mismo viene con el Codigo Fuente en VB6.

Dulces Lunas!¡.


« Última modificación: 5 Enero 2011, 10:24 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Pregunta readprocessmemory
« Respuesta #2 en: 5 Enero 2011, 18:33 pm »

Hola blackzerox, gracias por contestar, busque ese programita que dijiste y lo encontre, es el Mem Dumper v.1.3, lo probe y si encontro mi string... Ahora me fije como hacia e intente ponerlo en mi programa...
Declare:
Código:
Dim hBuffer As String * 50000
Dim readLen As Long

Y en la funcion read puse:
Código:
If Offset = "&H2CBB114" Then  '
ReadProcessMemory ProcessHandle, Offset, hBuffer, 50000, readLen
Datos = hBuffer
End If

Lo que logre ahi es leer el primer caracter del "textbox"
Y ya me lo manda como texto automaticamente pero solo el primer caracter...
No se donde ubicar
Código:
byval varptr(Byt_ARR_Data(CANTIDAD))
que vos me pasaste :P

Gracias!
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Pregunta readprocessmemory
« Respuesta #3 en: 5 Enero 2011, 21:11 pm »

.
Como que donde... Pues donde tienes hBuffer... que no sabes donde sale?

P.D.: Declara lpBuffer para que te resiva el puntero...

Dulces Lunas!¡.
« Última modificación: 5 Enero 2011, 21:20 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Cromatico

Desconectado Desconectado

Mensajes: 110


Ver Perfil
Re: Pregunta readprocessmemory
« Respuesta #4 en: 5 Enero 2011, 21:34 pm »

Disculpa mi ignorancia pero no logro comprender donde tengo que cambiar :S
Código:
If Offset = "&H16846C" Then  '
ReadProcessMemory ProcessHandle, Offset, hBuffer, 50000, readLen
Datos = hBuffer
End If

si yo pongo
Código:
If Offset = "&H16846C" Then  '
ReadProcessMemory ProcessHandle, Offset, byval varptr(Byt_ARR_Data(10)), 50000, readLen
Datos = hBuffer
End If

Como se supone que obtengo los bytes para asignarlos en "Datos" ?

Gracias y perdona mi ignorancia xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Uso de API's ReadProcessMemory y WriteProcessMemory « 1 2 3 »
Programación Visual Basic
aaronduran2 22 13,897 Último mensaje 7 Mayo 2008, 04:35 am
por seba123neo
ReadProcessMemory [VB6] ??? « 1 2 »
Programación Visual Basic
Xhelar 10 8,817 Último mensaje 8 Enero 2010, 05:01 am
por engel lex
ReadProcessMemory da resultados diferentes w7/XP
Programación C/C++
Nork 4 2,890 Último mensaje 5 Julio 2010, 13:32 pm
por Nork
ReadProcessMemory en Windows 7
.NET (C#, VB.NET, ASP)
Keyen Night 1 3,114 Último mensaje 28 Febrero 2011, 06:00 am
por BlackZeroX
(Duda) Pregunta readprocessmemory array
Programación C/C++
Cromatico 8 4,439 Último mensaje 15 Abril 2011, 18:49 pm
por Arkangel_0x7C5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines