Autor
|
Tema: pregunta convertir (Leído 6,621 veces)
|
thearing
Desconectado
Mensajes: 2
|
Holaaa que tal una pregunta... Estoy usando el cheat engine para leer un address de memoria de un proceso... Resulta que es el caption de un label, pude encontrar el pointer (tiene 5 offsets) y tambien leerlo hasta llegar al address dinamico desde vb...
Pero resulta que desde vb, obtengo el value en 4bytes, 2bytes 1byte, y lo que necesito es que lo detecte como el cheat engine cuando ponemos en TYPE: "Text" y lo convierte a texto automaticamente... Y no se como hacer para convertirlo desde vb directamente! Alguien puede darme alguna mano?
por ejemplo tengo esto: En 4bytes, el value que detecta es: "791687217" (en decimal) y en hexadecimal es: "2F303031" Ahora cuando en el cheat engine pongo en TYPE: Text, el value es: "100/100"
Queria saber si es posible eso desde vb directamente, gracias!
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Lo obtienes en formato string o long? Tendrias que tomar cada 2 letras del valor hexadecimal y usar ese valor como ascii para agregarlo a otro string 2F = 47 = 1 en la tabla ASCII Usa las funciones de string: Asc, y Mid
|
|
|
En línea
|
|
|
|
Cromatico
Desconectado
Mensajes: 110
|
Hola reaul338 gracias por contestar, yo leia desde vb en 4 bytes, pero ahora estuve mirando y si pongo array of byte en el cheat engine, me tira: 31 30 30 2F 31 30 30 00 04 00 que en la tabla: http://www.asciitable.com/ es exactamente "100/100" Lo que vos me dijiste 2F=47=1 no pude ubicarlo en la tabla, no lo encontre... Ahora la pregunta es, como hago para leer en array of bytes, en vez de 4 bytes desde vb? Tendria que saber la longitud de la cadena tambien... Alguna idea?
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Ahh... no no, mala mia, pense cualquier cosa. Mira, Un string esta formado por una cadena de caracteres y que termina en 0Bajo esa condicion, podes hacer un bucle con RtlMoveMemory a un byte temporal y agregalo a un vector de bytes hasta que el byte temporal sea 0 y de ahi convertir el vector a string usando StrConv El problema es que si no termina en 0 podes quedarte en bucle infinito (a menos que pongas un limite )
|
|
|
En línea
|
|
|
|
Cromatico
Desconectado
Mensajes: 110
|
Por lo que estuve mirando, los ultimos 3 (por ejem: "00 00 65") no forman parte del texto que yo quiero, asi que podria utilizar el primer null "00" para leer hasta ahi con readprocessmemory... Igual tengo un problema, no logro leer el array completo... ReadProcessMem phandle, address, valbuffer, 4, 0& Me devuelve "791687217" o hex("791687217") = "2F303031" (esto es lo mismo que me detecta el cheat engine si pongo 4bytes en TYPE. Pero si pongo en el cheat engine en TYPE, array of bytes, me detecta: "31 30 30 2F 31 30 30 00 00 65" (Lenght 10) aunque yo podria cortarlo en el primer "00" eso no importa por ahora Y el array que tendria que recibir en vb es: "31 30 30 2F 31 30 30 00 00 65", no entiendo como convertirlo a esto! Gracias y perdon mi ignorancia
|
|
« Última modificación: 19 Marzo 2011, 00:04 am por Cromatico »
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
La verdad no entendi nada , y esa linea de codigo sola mucho no me ayuda
|
|
|
En línea
|
|
|
|
Cromatico
Desconectado
Mensajes: 110
|
Disculpa xD, aver si puedo explicar mejor... Te dejo una imagen de lo que obtengo desde el cheat engine, seguramente esta mas claro: Entonces yo puedo leer correctamente desde vb la segunda y tercera fila, pero lo que intento obtener es el TEXTO, entonces tengo entendido que necesito leer el formato de la 4ta fila, para desp convertirlos a letras... Que es lo que no logro hacer, leer en array of bytes hasta el 00. XD gracias por ayudarrrme EDIT: Recien me doy cuenta que habia posteado con mi usuario viejo jajajajaj edit2: Desde vb si leo en 4bytes: ReadProcessMem phandle, address, valbuffer, 4, 0& obtengo lo de la 2da columna (4bytes decimal) y si lo convierto de esta manera: Private Sub Form_Load() MsgBox StrReverse(DecimalToString(791687217)) End Sub
Private Function DecimalToString(ByVal Number As Long) As String Dim r As Long Do While Number > 255 r = Number Mod 256 Number = Number \ 256 DecimalToString = Chr$(r) & DecimalToString Loop DecimalToString = Chr$(Number) & DecimalToString End Function
Obtengo la primera parte del texto: "100/" nada mas :S
|
|
« Última modificación: 19 Marzo 2011, 00:44 am por Cromatico »
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Porque si te pones a pensar, son 4 bytes, son 4 caracteres que estas leyendo Ponle mas espacio y obtendras todo y mas Pon por ejemplo, 10 y haces un split(Texto, vbNullChar) y te quedas con la primera parte
|
|
|
En línea
|
|
|
|
Cromatico
Desconectado
Mensajes: 110
|
Si fue lo primero que intente pero por mas que el 4 lo cambie por 10, 8 u lo que sea, me sigue leyendo lo mismo Habra que cambiar algo en la declaracion? Public Declare Function ReadProcessMem Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, ByRef lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
|
|
|
En línea
|
|
|
|
raul338
Desconectado
Mensajes: 2.633
La sonrisa es la mejor forma de afrontar las cosas
|
Si, pondria ByVal a lpNumberOfBytesWritten y ... quisiera saber que tipo de variable le estas pasando a lpBuffer ? Yo haria asi Dim bArrayTemp(10) as Byte Call ReadProcessMem(phandle, address, VarPtr(bArrayTemp(0)), 10, 0&)
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Convertir ram a mp3
« 1 2 »
Multimedia
|
Ambolius
|
11
|
22,495
|
30 Diciembre 2003, 05:44 am
por Songoku
|
|
|
vhs convertir a avi
Multimedia
|
Pansaca
|
4
|
6,644
|
22 Marzo 2004, 19:01 pm
por Mason33
|
|
|
Convertir WMV a MPG????
Multimedia
|
Darode
|
1
|
2,425
|
4 Mayo 2004, 19:42 pm
por Songoku
|
|
|
[MOD] Re: Un pregunta, ¿como convertir wma a mp3?
Multimedia
|
Cch
|
6
|
2,656
|
14 Julio 2006, 20:48 pm
por Cch
|
|
|
[PREGUNTA] Convertir una declaracion API de C# a VB6 (problema con punteros)
« 1 2 »
Programación Visual Basic
|
el_c0c0
|
14
|
7,647
|
19 Marzo 2012, 14:47 pm
por el_c0c0
|
|