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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Inyección de DLL (Basic)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inyección de DLL (Basic)  (Leído 2,135 veces)
calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Inyección de DLL (Basic)
« en: 4 Septiembre 2011, 23:23 pm »

Buenas os molesto nuevamente debido a que tengo una inquietud. He creado una dll normal con el tutorial de elGuille en Basic, e intento inyectarla y ejecutar una función con Cheat Engine, a un proceso. El tema es que se inyecta correctamente pero al ejecutar una función, en este caso "Saludo()" tira un error de "Enviar - No Enviar" y el proceso inyectado se cierra.

He aquí el código de mi DLL. Cabe aclarar que el Linker fue modificado para poder generar DLL normales.

Código:
'
' ©Guillermo 'guille' Som, 2006
'------------------------------------------------------------------------------
Option Explicit

Public Const DLL_PROCESS_DETACH = 0
Public Const DLL_PROCESS_ATTACH = 1
Public Const DLL_THREAD_ATTACH = 2
Public Const DLL_THREAD_DETACH = 3

Public Function Saludo()
    MsgBox ("DLL en VB")
End Function

Public Function Suma(ByVal n1 As Double, ByVal n2 As Double) As Double
    Suma = n1 + n2
End Function


'
Public Function DllMain(hInst As Long, fdwReason As Long, lpvReserved As Long) As Boolean
   Select Case fdwReason
      Case DLL_PROCESS_DETACH
         ' No per-process cleanup needed
      Case DLL_PROCESS_ATTACH
            DllMain = True
      Case DLL_THREAD_ATTACH
'         ' No per-thread initialization needed
      Case DLL_THREAD_DETACH
'         ' No per-thread cleanup needed
   End Select
End Function

La única función que necesito es la de "Saludo()"

También he aquí el archivo .DEF de la DLL correspondiente:

Código:
NAME PruebaINY
LIBRARY PruebaINY
DESCRIPTION "Prueba de DLL creada con VB6"
EXPORTS Saludo @1
        Suma @2
        DllMain @3

Gracias, saludos.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Inyección de DLL (Basic)
« Respuesta #1 en: 5 Septiembre 2011, 02:26 am »

No entiendo el porque te han movido este tema de VB6 a malware cuando no se trata de ninguna manera de ello, aun asi, como la inyectas que metodo usas?.

Edito:

No uses Msgbox, usa un el api MessageBoxW/A declarada en una TLB he incluyela en el proyecto, la dll normal tengo entendido que no es propia de vb6 por ende en la modificacion del linker se quita la dependencia de vb6, seguro te crashea por el MsgBox... igual y me equivoco pero no esta de mas probar.

Dulces Lunas!¡.


« Última modificación: 5 Septiembre 2011, 02:29 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Inyección de DLL (Basic)
« Respuesta #2 en: 5 Septiembre 2011, 02:56 am »

Buenas, gracias por responder. Tampoco entiendo porque me han movido esto. Pero aún así respondo a tu pregunta.

La DLL la inyecto con el Cheat Engine 6.0, selecciono el proceso > Memory View > Tools > Inject DLL. Al seleccionar la DLL me pregunta si deseo ejecutar una función de la misma. Por lo tanto le digo que si. Elijo el "Saludo()" pero sucede lo explicado anteriormente (Enviar - No Enviar). Aclaro también, que he intentado ejecutar funciones las cuales hacen un hook pero también se cierra. Fue lo primero que intenté, pero me dije "antes de empezar haciendo un hook, empiezo con algo simple como un MsgBox".

P.D: http://www.elguille.info/vb/avanzado/crear_dll_windows_con_vb6_explicado.htm

Edito: En el Visor de API solo he encontrado MessageBox, MessageBoxEx y MessageBoxIndirect.
« Última modificación: 5 Septiembre 2011, 03:00 am por calk9 » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Inyección de DLL (Basic)
« Respuesta #3 en: 5 Septiembre 2011, 10:30 am »

.
usa MessageBox() ( realmente son 2 variantes Ansi y Unicole es decir A y W )... te das cuenta en el Alias... xP

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Inyección de DLL (Basic)
« Respuesta #4 en: 5 Septiembre 2011, 20:00 pm »

Hola, gracias, me ha funcionado a la perfección! Pero luego de ejecutar la función correctamente, crea el messagebox, pero unos segundos despues vuelve el mismo error de "Enviar - No Enviar". Alguna sugerencia?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines