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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso  (Leído 4,492 veces)
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« en: 8 Diciembre 2009, 08:35 am »

Bueno mi problema es bastante complejo y lo detallo aqui con la esperanza de que alguien puede ayudarme:
La cosa es asi:
Estoy Programado una DLL normal en VB6, para hacerlo segui esta guia depues de creear el contol de compilacion como dice la guia y probar que fucnionaba usando el ejemplo alli descrito me propuse crear un dll la cul su funcion es:
Verificar si existe un proceso DAdo, si este existe cerrarlo y continuar la ejecucionde proceso Padre, en caso contrario(el proceso buscado no existe) la dll cierra el proceso padre y abre el programa enscionad al pricipio.

Ahora ahi que desctacar varias cosas sin las cuales no se entenderia el problema.

La dll esta hookeada usando olly para editar el EXE el hook es de esta forma
HOOK:

Código
  1. PUSH + offset Loader.dll
  2. LOADLIBRARYA
  3. OR EAX,EAX
  4. JE (DB 00)
  5. PUSH offset_DllMain
  6. PUSH EAX
  7. PUSH GetProcAddress
  8. CALL EAX
  9. JMP OEP
Luego de hookear la dll con este metodo, cambio el EP por el  del PUSH + offset DLL
La dll debe ser iniciada con un proceso que en este caso se LLama DllMain
Este es el unico metodo de hook que puedo hacer ya que una inyecion dese otro programa no me sirve y no tengo acceso al codigo del exe para hacer el hook de otra forma
MODULO.bas
Código
  1. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  2.  
  3. ' Funciòn APi para buscar Ventanas de Windows
  4. Public Declare Function FindWindow _
  5.    Lib "user32" _
  6.    Alias "FindWindowA" ( _
  7.        ByVal lpClassName As String, _
  8.        ByVal lpWindowName As String) As Long
  9.  
  10.  
  11. 'Para finalizar dicha ventana
  12. Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
  13.                 ByVal hwnd As Long, _
  14.                 ByVal wMsg As Long, _
  15.                 ByVal wParam As Long, _
  16.                 lParam As Any) As Long
  17.  
  18. Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
  19.     ByVal hwnd As Long, _
  20.     ByVal lpOperation As String, _
  21.     ByVal lpFile As String, _
  22.     ByVal lpParameters As String, _
  23.     ByVal lpDirectory As String, _
  24.     ByVal nShowCmd As Long) As Long
  25.  
  26.  
  27. Public Sub Comprobar()
  28. Dim clase As String
  29. clase = "ThunderRT6FormDC"
  30. Dim ret As Long
  31.  
  32.    ' busca la ventana y retorna el Handle
  33.    ret = FindWindow(clase, "MuPaysandú V 1.0.59")
  34.  
  35.    'si retorna distinto _
  36.      de 0 es porque la encontró
  37.    If ret <> 0 Then
  38.                ' Finaliza la ventana
  39.             Log ("Launcher cerrado corectamente con el HWD " & ret)
  40.            SendMessage ret, "&H112", "&HF060&", ByVal 0
  41.  
  42.  
  43.  
  44.        Else
  45.        Log ("Launcher no encontrado.")
  46.        ret = FindWindow("MU", vbNullString)
  47.        If ret <> 0 Then
  48.            SendMessage ret, "&H112", "&HF060&", ByVal 0
  49.            Log ("Procediendo a cerrar el Cliente.")
  50.            Log ("Abriendo Launcher.")
  51.            ShellExecute ret, "Open", App.Path & "\MU.exe", vbNullString, "0", "1"
  52.            Else
  53.            Log ("MuPaysandu No encontrado.")
  54.        End If
  55.    End If
  56.  
  57. End Sub
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64. Public Sub Log(Razon As String)
  65.    Open App.Path & "\log.txt" For Append As 1
  66.    Print #1, "[" & Date & "] " & Razon
  67.    Close #1
  68. End Sub
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. Public Function DllMain() As String
  77.  
  78.          Comprobar
  79. End Function
Para cree un exe estandar y pude declare la dll
y luego hice la llamada y el resultado es:
Error '429 en tiempo de ejecucion.
El componente ActiveX no puede crear el objecto.

Código
  1. Private Declare Function DllMain Lib "Loader.dll" () As String
  2.  
  3. Private Sub Command1_Click()
  4. DllMain
  5. End Sub
si pruebo este mismo exe dese el IDE no pasa nada
y si hookeo la dll al ejecutable al cual va destinado genera el tipico "Main.exe ha generado un error y deb cerrarse"


En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #1 en: 8 Diciembre 2009, 09:44 am »

El proceso donde cargas la libreria tiene msvbvm60 en memoria?


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #2 en: 8 Diciembre 2009, 09:49 am »

No el proceso esta programado en VC++ asi que no creo
Como seria para cargarlo en memoria habria que hookearlo con el mismo procedimeinto?
« Última modificación: 8 Diciembre 2009, 09:51 am por shaggikpo » En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #3 en: 8 Diciembre 2009, 23:45 pm »

Bien, entonces posiblemente ese sea tu problema. Por lo que comprendi hiciste una libreria en VB le cambiaste el EP y todo eso no?
Si ese es el caso habria que saber mas detalles, como por ejemplo que metodo utilizaste para compilar la libreria etc. hay muchas cosas que pueden estar causando el error pero parece que es lo mas comun de todo, el uso de APIs declaradas en el codigo y las funciones de VB.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #4 en: 8 Diciembre 2009, 23:48 pm »

la dll la compile usando este metodo Crear DLL nOrmal en VB6
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #5 en: 8 Diciembre 2009, 23:52 pm »

Ok, no tenes ningun preloader o algo asi en la libreria, simplemente tu codigo verdad?
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #6 en: 8 Diciembre 2009, 23:55 pm »

NO ese es el codigo completo
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #7 en: 9 Diciembre 2009, 00:11 am »

Si, perdon no vi que habia un link, el tema es asi, cuando usas ese metodo el EP de la libreria se modifica, el tema es que las librerias asi como los exes en VB tienen como un stub, este stub lo que hace entre otras cosas es "corregir" el IAT (Import Address Table), si abris tu libreria en PE explorer o algun programa similar vas aver que en el IAT no aparecen ni las librerias ni las funciones que estas usando en tu codigo ej:SendMessageA.

Como solucionar esto? Hay un par de maneras que conozco

1- es utilizar un addin para VB (no recuerdo el nombre) que utilizando shellcode inicializa el stub de la libreria (nunca me funciono).
2- esta es mi preferida pero requiere mas trabajo. Primero que nada tenes que declarar absolutamente todas las APIs en un type library (esto va a hacer que VB las agregue en el IAT como cualquier otro programa) y el codigo lo tenes que hacer teniendo en cuenta que ninguna de las funciones de VB (llamdas a msvbvm60) van a estar disponibles.
3- esta es la mas clasica, hace la libreria en otro lenguage
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #8 en: 9 Diciembre 2009, 00:31 am »

Creo que voy a probar la opcion 2 a que no usomuchas fucniones de VB en realidad pero. podria orientarme de como hacerlo pues no entendi muy bien
En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Gran Problema DLL estandar en VB6(No activex)+HooK en proceso
« Respuesta #9 en: 9 Diciembre 2009, 00:50 am »

=D opcion 2 !!! te ganaste un dolor de cabeza!!!!

Bien mi preferida, primero que nada, las APIs que vayas a utilizar en codigo las tenes que declacrar en un type library, Hay varios tutoriales y ejemplos por ahi de como crearlas si queres pego el source de una que utilizo para inyeccion. Obviamente hay que compilarla, si tenes Visual Studio tenes que tener midl.exe por ahi en tu disco.

Inject.odl source
http://pastebin.com.ar/5567

Una vez que tenes el tlb creado lo agregas a las referencias y eso tendria que resolver el tema de las APIs, con respecto al codigo, muchas cosas no te van a funcionar, como ser los & para concatenar y Mid y esas cosas, por lo que vi en el codigo que tenes son simplemente unos if y cosas asi que no te van a dar mayores problemas.

Una aclaracion, para debuguear eso no uses un log, usa Outputdebugstring y el programa DebugView.
En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Avanza el proceso para oficializar el estándar HTML 5
Noticias
wolfbcn 0 1,407 Último mensaje 27 Mayo 2011, 21:02 pm
por wolfbcn
En proceso de aprender este gran lenguaje Java
Java
Ila26 1 1,845 Último mensaje 25 Noviembre 2013, 21:19 pm
por Mitsu
calcular la desviacion estandar de un arreglo (problema)
Programación C/C++
Yamakasi_Jr 1 11,365 Último mensaje 28 Agosto 2017, 04:50 am
por A.I.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines