elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Temas
Páginas: [1]
1  Programación / .NET (C#, VB.NET, ASP) / Leer Memoria de un Proceso en: 18 Noviembre 2010, 07:10 am
Tengo este codigo

Código:
Public Class Form1
    'API ReadProcessMemory
    Private Shared Function ReadProcessMemory( _
        ByVal hProcess As IntPtr, _
        ByVal lpBaseAddress As IntPtr, _
        ByVal lpBuffer() As Byte, _
        ByVal dwSize As Integer, _
        ByRef lpNumberOfBytesRead As Integer) As Boolean
    End Function

    Private Function FindAddress(ByVal pHandle As IntPtr, ByVal BaseAddress As IntPtr, ByVal StaticPointer As IntPtr, ByVal Offsets() As IntPtr) As IntPtr
        ' Crearemos un buffer de 4 bytes para sistema de32-bit o 8 bytes sobre un sistema de 64-bit .
        Dim tmp(IntPtr.Size - 1) As Byte
        Dim Address As IntPtr = BaseAddress
        ' Checaremos para 32-bit vs 64-bit.
        If IntPtr.Size = 4 Then
            Address = New IntPtr(Address.ToInt32 + StaticPointer.ToInt32)
        Else
            Address = New IntPtr(Address.ToInt64 + StaticPointer.ToInt64)
        End If
        ' Loop de cada Offset hasta encontrar el Address
        For i As Integer = 0 To Offsets.Length - 1
            ReadProcessMemory(pHandle, Address, tmp, IntPtr.Size, 0)
            If IntPtr.Size = 4 Then
                Address = BitConverter.ToInt32(tmp, 0) + Offsets(i).ToInt32()
            Else
                Address = BitConverter.ToInt64(tmp, 0) + Offsets(i).ToInt64()
            End If
        Next
        Return Address
    End Function

    Public Function Obtener_Address()
        Dim p As Process
        For Each p In Process.GetProcesses()
            If Not p Is Nothing Then
                If (LCase(p.ProcessName) = "l2") Then
                    Dim pID As IntPtr = p.Handle
                    Dim base As IntPtr = p.MainModule.BaseAddress
                    ' Colocamos Nuestro Pointer Estatico
                    Dim sptr As IntPtr = &HB5C3320
                    ' Y aqui nuestro Offset segun los necesarios
                    Dim offsets() As IntPtr = {&HF4, &H14, &H308, &HC4, &H0}
                    Dim addr As IntPtr = FindAddress(pID, base, sptr, offsets)
                    Dim f As String
                    f = addr.ToString
                    Return f
                    Exit Function
                End If
            End If
        Next
        Return ("Error")
        ' Obtendremos el Handle y el BaseAddress de nuestro proceso
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(Obtener_Address())
    End Sub
End Class

Lo que quiero hacer es obtener el nombre del personaje para el juego Lineage 2 (Interlude) pero siempre me devielve 0, alguno tiene una idea de que es lo que esta pasando.- Muchas gracias
2  Programación / Programación General / Insertar Modulo en Aplicacion. en: 11 Septiembre 2010, 22:19 pm
Hola Gente del foro, tengo un par de preguntas para ahcerles, estuve haciendo una aplicacion en vb.net que es un cliente/servidor manejado por sokets.

Este programa hace lo siguiente:
1- Al abrir, envia datos de login a la aplicacion servidor con fecha de login, hwid.
2- El servidor recive los datos y los almacena en una base de datos sql, si el hwid esta en la tabla de aceptados, genera un codigo y envia mensaje de continuar con el codigo para aceder a los datos.
3- Esta aplicacion (el cliente) trabaja en conjunto con otra que es de terceros, yo en mi cliente, recivo y envio datos para manejar la conexion como se habran dado cuenta, si el hwid no esta en la tabla, recivo mensaje de cierre de aplicacion, y por medio del cliente mato el proceso en la pc.
4-Cabe aclarar que es absolutamente imperativo que el cliente este corriendo mientras la aplicacion se esta ejecutando.
6-Cada determinado tiempo, el cliente revisa el listado de procesos en busca de determinados programas, que en este caso servirian para interrumpir en el correcto funcionamiento de la aplicacion principal, y asi alterar datos que la aplicacion guarda en una base de datos sql.

Lo que quiero saber es si:
-¿Se puede insertar (inyectar) una dll que haga esto mismo que yo hago en el programa cliente. O insertar otra que me ejecute el cliente cuando abra la aplicacion y me lo mantenga abierto mientras trabajo con el programa, una vez termine, cierre el cliente?
-¿Es recomendable usar la inyeccion de dll?, o ¿hay algun metodo mejor que me permita mantener la aplicacion abierta hasta que se cierre la principal?
-


Aclaro que soy programador, pero nunca en mi vida tuve que hacer algo asi y sinceramente no tengo la mas minima idea de por donde empezar.

Agradeceria sus prontas respuestas, y si son con ejemplo tipo para nene de jardin, por que estuve leyendo inyeccion dll en el foro pero no cazo una.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines