Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Arconte en 14 Julio 2012, 05:32 am



Título: [RESUELTO]¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: Arconte en 14 Julio 2012, 05:32 am
segui el tutorial de elguille donde muestra como crear una dll estandar y todo me salio bien excepto que no se logra ejecutar el DllMain al cargar la dll, en algunos post decian que se tiene que cambiar el ep , ¿asi se soluciona el problema, como se hace eso?


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: raul338 en 14 Julio 2012, 23:07 pm
Tu quieres hacer una DLL estandar y poner algo al ejecutar el DLLMain? O queres cargar una DLL y ejecutar su DllMain automaticamente?

Si es la primera, busca sobre vbadvance ( esta descontinuado ) y la segunda... supongo que con API's...


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: Arconte en 15 Julio 2012, 03:03 am
se supone que al cargar una dll se deberia ejecutar automaticamente la funcion DllMain como en las dll hechas en c y lo que quiero es eso precisamente ¿como lo hago?

Código
  1. Public Function DllMain(hInst As Long, fdwReason As Long,
  2.  lpvReserved As Long) As Boolean
  3.   Select Case fdwReason
  4.      Case DLL_PROCESS_DETACH
  5.         ' No per-process cleanup needed
  6.      Case DLL_PROCESS_ATTACH
  7.         DllMain = True
  8.      Case DLL_THREAD_ATTACH
  9.         ' No per-thread initialization needed
  10.      Case DLL_THREAD_DETACH
  11.         ' No per-thread cleanup needed
  12.   End Select
  13.  
  14. End Function
  15.  



Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: rembolso en 15 Julio 2012, 09:04 am
La Dll en VB no funciona...tiene que ser una en C/C++ :-[ :-[ :-[ :-[ :-[


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: raul338 en 15 Julio 2012, 16:29 pm
De hecho si se puede :P

Classic VB Tools: vbAdvance (http://vb.mvps.org/tools/vbAdvance/)


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: rembolso en 16 Julio 2012, 20:21 pm
si tu quieres hacer un Inyeccion Dll en VB. con una dll made for vb. no te va a funcionar por mas que el programa sea el notepad. pero si la dll esta en c/c++ si. espero no equivocarme !!! :huh:


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: cobein en 17 Julio 2012, 22:34 pm
Si se pueden hacer dll standard y si se pueden inyectar, lo dificil es hacer la libreria correctamente para no explotar el proceso inyectado.


Título: Re: ¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: Arconte en 19 Julio 2012, 05:18 am
gracias raul338 , probe ese programa vbAdvance y si me anda rebien, tan solo con cargar la dll se ejecuta automaticamente el dllmain y al descargarse se vuelve a ejecutar, lo probe con este  codigo

la Dll:

Código:
Option Explicit


Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As Long) As Long


Public Function DllMain() As Long
    DllMain = MessageBox(0, "hola", "titulo", 64)
    DllMain = MessageBox(0, "hola", "titulo", 48)
    DllMain = MessageBox(0, "hola", "titulo", 16)
End Function


el programa:

Código:
Option Explicit

Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long



Dim hModule As Long
Private Sub Command1_Click()
    hModule = LoadLibrary("test.dll")
    Me.Caption = hModule
End Sub

Private Sub Command2_Click()
    Call FreeLibrary(hModule)
    Me.Caption = ""
End Sub

Private Sub Form_Load()
    Me.Caption = ""
End Sub

aunque si  cierras el programa sin antes descargar la dll me sale un mensaje de error : la instruccion "xxxxxxx" hace referencia a la memoria "xxxxx" no se puede written , pero es un problema de lo mas minimo que lo solucione con FreeLibrary, gracias y saludos.


Título: Re: [RESUELTO]¿como ejecutar el DllMain de una dll estandar hecha en vb6?
Publicado por: raul338 en 19 Julio 2012, 13:59 pm
aunque si  cierras el programa sin antes descargar la dll me sale un mensaje de error : la instruccion "xxxxxxx" hace referencia a la memoria "xxxxx" no se puede written , pero es un problema de lo mas minimo que lo solucione con FreeLibrary, gracias y saludos.
Y claro, es como manejar punteros, si terminas sin liberarlos tienes un problema de memoria :P solo que en este caso ni el sistema se encarga de liberarlo :xD