Página 1 de 1

Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 03 Oct 2015, 18:30
por __ws
Hola!

Dejo estos codigos

Funcion leer memoria:
Public Declare Function NtReadVirtualMemory Lib "ntdll" (ByVal ProcessHandle As Long, ByVal BaseAddress As Long, pBuffer As Any, ByVal NumberOfBytesToWrite As Long, NumberOfBytesWritten As Long) As Long
Public Declare Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long

Public Function ReadMem(BaseAddress As Long, nSize As Long) As String
Dim bAsm() As Byte
ReDim bAsm(nSize) As Byte
VirtualProtect ByVal BaseAddress, nSize, &H40, &H0
NtReadVirtualMemory -1, ByVal BaseAddress, ByVal VarPtr(bAsm(0)), nSize, 0&
VirtualProtect ByVal BaseAddress, nSize, &H0, &H0
ReadMem = bAsm()
End Function
Funcion escribir memoria:
Public Declare Function NtWriteVirtualMemory Lib "ntdll" (ByVal ProcessHandle As Long, ByVal BaseAddress As Long, ByVal pBuffer As Long, ByVal NumberOfBytesToWrite As Long, ByRef NumberOfBytesWritten As Long) As Long
Public Declare Function VirtualProtect Lib "kernel32" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long

Public Function WriteMem(BaseAddress As Long, BytesToWrite As String, nSize As Long) As String
Dim bAsm() As Byte
ReDim bAsm(nSize) As Byte
For i = 0 To Len(BytesToWrite) - 1 Step 2
bAsm((i / 2)) = CByte("&H" & Mid(BytesToWrite, i + 1, 2))
Next i
VirtualProtect ByVal BaseAddress, nSize, &H40, &H0
NtWriteVirtualMemory -1, ByVal BaseAddress, ByVal VarPtr(bAsm(0)), nSize, 0&
VirtualProtect ByVal BaseAddress, nSize, &H0, &H0
End Function
Saludos!

Re: Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 03 Oct 2015, 23:03
por Blau
Por ahí leí que protegiendo la memoria (no sé con qué flags) se puede bypassear NOD.

Re: Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 09 Oct 2015, 20:08
por __ws
Blau escribió:Por ahí leí que protegiendo la memoria (no sé con qué flags) se puede bypassear NOD.
Imagen


Para proteger la memoria, deberás denegar todo el acceso, y ni el propio programa podrá acceder a su memoria, entonces va a crashear.

Re: Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 09 Oct 2015, 20:57
por SadFud
Ninfrock escribió:
Blau escribió:Por ahí leí que protegiendo la memoria (no sé con qué flags) se puede bypassear NOD.
Imagen


Para proteger la memoria, deberás denegar todo el acceso, y ni el propio programa podrá acceder a su memoria, entonces va a crashear.
Blau se refiere a esto http://indetectables.net/viewtopic.php?f=8&t=53150

Re: Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 09 Oct 2015, 23:23
por __ws
SadFud escribió:
Ninfrock escribió:
Blau escribió:Por ahí leí que protegiendo la memoria (no sé con qué flags) se puede bypassear NOD.
Imagen


Para proteger la memoria, deberás denegar todo el acceso, y ni el propio programa podrá acceder a su memoria, entonces va a crashear.
Blau se refiere a esto http://indetectables.net/viewtopic.php?f=8&t=53150
Eso es proteger el proceso, ya se testeó, y no funciona bien.

Para denegar el acceso a la memoria, usas VirtualProtect

Para denegar el acceso al proceso usas SetSecurityInfo

Son cosas distintas...

@Blau, realmente te referias a lo que dijo SadFud ?

Re: Funciones WriteMem y ReadMem [Escribir y leer Memoria]

Publicado: 12 Oct 2015, 11:49
por Blau
No he mirado lo de Cruz, no sé qué método usará. Yo me refería a [Enlace externo eliminado para invitados]. No me dedico al modding ni a la indetección así que no sé bypassear cosas