Hola, se que esto ya se hablo en el foro, pero no recuerdo bien con que apis buscar, quiero modificar cierta parte de el array de bits de un proceso.
Se agradecen aportes.
Hola, sera alguno de estos post ?
Como Hacer Que Este Code Edite Array Of Bytes? (http://foro.elhacker.net/programacion_vb/como_hacer_que_este_code_edite_array_of_bytes-t235687.0.html)
Duda sobre valores de la memoria!!! (http://foro.elhacker.net/ingenieria_inversa/duda_sobre_valores_de_la_memoria-t226997.0.html;topicseen)
[VB6] Memoria (http://foro.elhacker.net/programacion_visual_basic/vb6_memoria-t347304.0.html;msg1694414;topicseen)
Como crear Memoria Dinamica? (http://foro.elhacker.net/programacion_visual_basic/como_crear_memoria_dinamica-t343380.0.html)
Duda sobre valores de la memoria!!! (http://foro.elhacker.net/ingenieria_inversa/duda_sobre_valores_de_la_memoria-t226997.0.html)
saludos.
yo tengo una duda! yo estuve estudiando fuerte ese tema hace poco e hice unos codigos de prueba
pero no se si es a lo que quieren :P
querer escribir en otro proceso diferente? :P
Es la memoria de ese proceso? O seia parte del ejecutable?
OpenProcess
CloseHandle
ReadProcessMemomy
WriteProcessMemomy
y para desbloquear la memoria bloqueada:
VirtualProtectEx
Nota: No querias decir Bytes en lugar de Bits?... ya que con las apis que conozco solo usan en sus primitivas de acceso los bytes no los bits.
Dulces Lunas!¡.
Jeje Asi va mi codigo :3
solo que el mio:
findwindow
getwindowthreadprocessid
openprocess
virtualallocex
writeprocessmemory
close handle
Lo publicare esta semana :3 le estoy añadiendo asm inline :3
Hola ya me estoy reorientando, bien, si la idea es cambiar un array de Bytes por otro de un ejecutable externo, la idea era hacer un cheat par aun juego on line el cual creo que ya me vanearon asi que me lo meto en el ....
pero en fin volviendo al tema Gracias a lo que me paso Seba me puse a investigar un poco y me tope con el problema de ReadProcessMemory el cual desdusco que no me leia nada porque no se puede empezar a leer desde el bite 0
ReadProcessMemory ProcHandle, ByVal 0&, ByVal sBuffer, Len(sBuffer), BytesRead
hay una parte de la memoria que no se puede leer, lo cual se puede saber con VirtualQueryEx ((mbi.lType = MEM_PRIVATE) And (mbi.State = MEM_COMMIT))
como no se la dirección exacta en la memoria donde esta el array de bits que debo reemplazar tengo que buscar el array que tengo dentro del proceso, una vez encontrada la posición meter el nuevo array.
Saludos.
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" _
(ByVal hwnd As Long, lpdwProcessId As Long) As Long
Public Declare Function CreateToolhelp32Snapshot Lib "kernel32" _
(ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function Module32Next Lib "kernel32" _
(ByVal hSnapShot As Long, lpMe32 As MODULEENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
' Constantes APIs
Private Const PROCESS_ALL_ACCESS = &H1F0FFF
Private Const TH32CS_SNAPMODULE = &H8
Private Const MAX_PATH = 260
Private Type MODULEENTRY32
dwSize As Long
th32ModuleID As Long
th32ProcessID As Long
GlblcntUsage As Long
ProccntUsage As Long
modBaseAddr As Long
modBaseSize As Long
hModule As Long
szModule As String * 256
szExePath As String * MAX_PATH
End Type
Sub main()
Dim hWin As Long
Dim pID As Long
Dim hwSnap As Long
Dim PTRMOD As MODULEENTRY32
Dim retVal As Long
hWin = FindWindow("Notepad", vbNullString)
If hWin Then
GetWindowThreadProcessId hWin, pID
hwSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pID)
If hwSnap Then
PTRMOD.dwSize = Len(PTRMOD)
retVal = Module32Next(hwSnap, PTRMOD)
If retVal Then
'... readprocessmemory,writeprocessmemory, etc
CloseHandle (hwSnap)
End If
CloseHandle (hwSnap)
End If
Else
Debug.Print "Notepad no esta en ejecucion"
End If
End Sub
sin asm, no logre adaptarlo :P de ejemplo el notepad