Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: LeandroA en 11 Diciembre 2011, 19:56 pm



Título: Cambiar Bits de otro proceso.
Publicado por: LeandroA en 11 Diciembre 2011, 19:56 pm
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.


Título: Re: Cambiar Bits de otro proceso.
Publicado por: seba123neo en 11 Diciembre 2011, 20:50 pm
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.



Título: Re: Cambiar Bits de otro proceso.
Publicado por: x64core en 12 Diciembre 2011, 03:08 am
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


Título: Re: Cambiar Bits de otro proceso.
Publicado por: raul338 en 12 Diciembre 2011, 03:16 am
Es la memoria de ese proceso? O seia parte del ejecutable?


Título: Re: Cambiar Bits de otro proceso.
Publicado por: BlackZeroX en 12 Diciembre 2011, 09:07 am
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!¡.


Título: Re: Cambiar Bits de otro proceso.
Publicado por: x64core en 12 Diciembre 2011, 09:14 am
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



Título: Re: Cambiar Bits de otro proceso.
Publicado por: LeandroA en 13 Diciembre 2011, 00:03 am
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

Código:
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.





Título: Re: Cambiar Bits de otro proceso.
Publicado por: x64core en 17 Diciembre 2011, 01:31 am
Código:
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