| |
Mostrar Temas
|
|
Páginas: [1]
|
|
1
|
Programación / Ingeniería Inversa / Duda sobre valores de la memoria!!!
|
en: 7 Septiembre 2008, 19:04 pm
|
Holas amigo estoy haciendo un pequeño programa en visual bsic 6.0 donde quiero modificar valores de la memoria en tiempo de ejecución, por ejemplo el programa selecciona un proceso y en una direccion de memoria leer y guardar valores, soy un poco novato en esto pero ya he avanzado un poco... para valores de 1,2 y 4 byte ya lo se hacer de esta manera:Esta es la funcion que uso para leer valores y me funciona perfecto
Public Function ReadLong(Offset As Long, ProcessID As Long) As Long Dim ProcessHandle As Long Dim Value As Long ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID) If ProcessHandle = 0 Then MsgBox "No se encuentra el proceso", vbCritical, "Error de Lectura" Exit Function End If ReadProcessMem ProcessHandle, Offset, Value, 4, 0& ReadLong = Value CloseHandle ProcessHandle End FunctionEsta es la funcion que uso para escribir valores.
Public Function WriteLong(Offset As Long, ProcessID As Long, Value As Long) As Boolean
Dim ProcessHandle As Long ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID) If ProcessHandle = 0 Then MsgBox "No se encuentra el proceso", vbCritical, "Error de Lectura" Exit Function End If WriteProcessMemory ProcessHandle, Offset, Value, 4, 0& CloseHandle ProcessHandle End Functionahora lo que me gustaria saber es como leer y guardar valores de Array de Byte Por ejemplo: en la dirección de memoria &H353BD7C0 guardar los siguientes valores, esto es un array de 96 bytes... 28 79 3D 35 00 00 00 00 2C 79 3D 35 00 00 00 00 48 BB 3B 35 01 00 00 00 4C 79 3D 35 01 00 00 00 DC 75 2F 35 58 93 2D 35 A4 04 00 00 F8 BE 3B 35 70 A3 0F 35 C0 A0 0F 35 D0 A0 0F 35 E0 A0 0F 35 00 A1 0F 35 10 A1 0F 35 20 A1 0F 35 F0 A0 0F 35 01 00 00 00 FF FF FF FF 30 A6 0F 35 58 93 2D 35 Acotación: Cada bloque de memoria tiene 16 posiciones, para 4 posiciones ya lo se modificar con la funcion que puse. de todos modos adjunto una imagen de referencia para explicarme mejor. Muchas Gracias por leer mi pregunta espero que puedan ayudarme!!!
|
|
|
|
|
2
|
Programación / Programación Visual Basic / Modificar Valores de la Memoria
|
en: 3 Septiembre 2008, 19:13 pm
|
|
Hola amigos estoy haciendo un pequeño programa donde quiero modificar valores de la memoria en tiempo de ejecución, por ejemplo el programa selecciona un proceso y en una direccion de memoria leer y guardar valores, soy un poco novato en esto pero ya he avanzado un poco... para valores de 1,2 y 4 byte ya lo se hacer de esta manera:
Esta es la funcion que uso para leer valores y me funciona perfecto
Public Function ReadLong(Offset As Long, ProcessID As Long) As Long Dim ProcessHandle As Long Dim Value As Long ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID) If ProcessHandle = 0 Then MsgBox "No se encuentra el proceso", vbCritical, "Error de Lectura" Exit Function End If ReadProcessMem ProcessHandle, Offset, Value, 4, 0& ReadLong = Value CloseHandle ProcessHandle End Function
Esta es la funcion que uso para escribir valores.
Public Function WriteLong(Offset As Long, ProcessID As Long, Value As Long) As Boolean
Dim ProcessHandle As Long ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID) If ProcessHandle = 0 Then MsgBox "No se encuentra el proceso", vbCritical, "Error de Lectura" Exit Function End If WriteProcessMemory ProcessHandle, Offset, Value, 4, 0& CloseHandle ProcessHandle End Function
ahora lo que me gustaria saber es como leer y guardar valores de Array de Byte
Por ejemplo:
en la dirección de memoria &H353BD7C0 guardar los siguientes valores, esto es un array de 96 bytes...
28 79 3D 35 00 00 00 00 2C 79 3D 35 00 00 00 00 48 BB 3B 35 01 00 00 00 4C 79 3D 35 01 00 00 00 DC 75 2F 35 58 93 2D 35 A4 04 00 00 F8 BE 3B 35 70 A3 0F 35 C0 A0 0F 35 D0 A0 0F 35 E0 A0 0F 35 00 A1 0F 35 10 A1 0F 35 20 A1 0F 35 F0 A0 0F 35 01 00 00 00 FF FF FF FF 30 A6 0F 35 58 93 2D 35
Muchos Gracias por leer el tema espero puedan ayudarme!!!
|
|
|
|
|
|
| |
|