Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: abdiel2475 en 17 Enero 2011, 22:58 pm



Título: Ayuda como leer un Pointer
Publicado por: abdiel2475 en 17 Enero 2011, 22:58 pm
Hola amm tengo una duda como puedo leer un pointer con offset y todo eso D:

me gustaria leer una address de un juego pero el juego tiene multi lvl pointers
y pss me gustaria como leer un pointer en vb6
el pointer ya lo encontre solo nesesito saber como leer el value D:

(http://img683.imageshack.us/img683/445/awads.jpg)

Gracias :)


Título: Re: Ayuda como leer un Pointer
Publicado por: raul338 en 17 Enero 2011, 23:12 pm
Busca sobre el API CopyMemory :)


Título: Re: Ayuda como leer un Pointer
Publicado por: BlackZeroX en 18 Enero 2011, 01:01 am
.
CopyMemory es este caso no sirve debes usar esta API:

ReadProcessMemory (http://msdn.microsoft.com/en-us/library/ms680553%28v=vs.85%29.aspx)

Hay un ejemplo mio editando el Score del pinball usando dicha API junto con WriteProcessMemory (http://msdn.microsoft.com/en-us/library/ms681674%28v=vs.85%29.aspx) en este foro

Edito: (Escribi mal mi firma xP) :

P.D.: Busca mas sobre que es un puntero y un offset, por que yo se que son sinonimos ( la gente confunde a la gente ).

Dulces Lunas!¡.


Título: Re: Ayuda como leer un Pointer
Publicado por: abdiel2475 en 18 Enero 2011, 03:58 am
muchas gracias por contestr :)
trate y trate y no pude hacer nada

amm me podrias dar un ejemplo :(
gracias

PD: tengo este codigo pero pss nose no me funciona ya lo modifiqe y todo
pero no me cambia el address solo lo suma :/ y no sale lo qe espero

Código:
Public Function ReadLongPointer(Address As Long, Offset As Long, WindowName As String) As Long

    Dim hwnd As Long
    Dim ProcessID As Long
    Dim ProcessHandle As Long
    Dim Valueofpointer As Long
    Dim valueX As String
    Dim Addy As String
    Dim Value As String
    hwnd = FindWindow("could not be fetched", vbNullString)


    If hwnd = 0 Then
        MsgBox "Could Not find process window!", vbCritical, "Read error"
        Exit Function
    End If

    GetWindowThreadProcessId hwnd, ProcessID
    ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, False, ProcessID)


    If ProcessHandle = 0 Then
        MsgBox "Could Not Get a process handle!", vbCritical, "Read error"
        Exit Function
    End If

    ReadProcessMem ProcessHandle, Address, Valueofpointer, 4, 0& 'Change the Four To two If you want For two bytes
    ' WriteLongPointer = Value
    valueX = Val(Valueofpointer) + Val(Offset)
    Decnum = valueX
    HexNum = ""

Dim valueX2 As String
Dim valueX3 As String

valueX2 = valueX + Val(140)
valueX3 = valueX2 + Val(60)

MsgBox valueX3

    While Decnum <> 0
    NextHexDigit = Decnum - (Int(Decnum / 16) * 16)


    If NextHexDigit < 10 Then
        HexNum = Chr(Asc(NextHexDigit)) & HexNum
    Else
        HexNum = Chr(Asc("A") + NextHexDigit - 10) & HexNum
    End If

    Decnum = Int(Decnum / 16)
Wend

If HexNum = "" Then HexNum = "0"
valueX = HexNum
Addy = "&H" + valueX3
Exit Function
ReadProcessMemory ProcessHandle, Addy, Value, 4, 0& 'Change the Four To two If you want For two bytes
ReadLongPointer = Value
CloseHandle ProcessHandle
End Function


Título: Re: Ayuda como leer un Pointer
Publicado por: BlackZeroX en 18 Enero 2011, 07:00 am
Dependiendo de como ayas declarado la API ReadProcessMemory los paametros cambian al pasarlo pero lo mas habitual es que en lpBuffer se pase l puntero a la variable mas no la variable en si misma ya que si haces esto ultimo solo estaras pasando su cntenido intenta con byval varptr().

Temibles Lunas!¡.


Título: Re: Ayuda como leer un Pointer
Publicado por: abdiel2475 en 18 Enero 2011, 23:55 pm
aff no logro hacer qe funcione :( maldicion