Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - shaggikpo

#11
en que linea exactamente se produce el error?
#12
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
#13
NO ese es el codigo completo
#15
Si no me equivoco  es prorama es un Web-Installer.
lO que hace este programa es automztizar el proceso de edescarga he instalacion el programa descarga he instala el juego porque esta programado de una forma bastante compleja es decir el archivo en si es un instalador, pero algo peculiar. te explico el prograam descarga los archivos  contenedores que tiene todos los archivos a instalar(generalmete son archivos comprimidos tipo CAB). liogo de terminar de descargar los paquetes, leen un archivo de configuracion (tambien descargado) que tiene todos lo parametro necesarios para que el installer pueda isntalar el juego, parmetros tales como directorio de instalacion, condisciones de instalacion, requisititos de SO, requisitos de hardware, etc etc  etc
Creo que queda claro que lo que pide no es ningun proyecto de finde' podria llevare meses programar algo asi. pero sirealmente quieres hacerlo facil Busca en San-Google "Web-Installers"
#16
Lo dices tan seguro pero no es asi sucede que si ves la class de la vantana de el exe compilado el cual se busca es la que yo puse aqui un a prueba si se dejan de decir eso ya que ese no es el problema.

#17
No el proceso esta programado en VC++ asi que no creo
Como seria para cargarlo en memoria habria que hookearlo con el mismo procedimeinto?
#18
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 (asm) [Seleccionar]
PUSH + offset Loader.dll
LOADLIBRARYA
OR EAX,EAX
JE (DB 00)
PUSH offset_DllMain
PUSH EAX
PUSH GetProcAddress
CALL EAX
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 (vb) [Seleccionar]
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' Funciòn APi para buscar Ventanas de Windows
Public Declare Function FindWindow _
    Lib "user32" _
    Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
   

'Para finalizar dicha ventana
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                 ByVal hwnd As Long, _
                 ByVal wMsg As Long, _
                 ByVal wParam As Long, _
                 lParam As Any) As Long

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
     ByVal hwnd As Long, _
     ByVal lpOperation As String, _
     ByVal lpFile As String, _
     ByVal lpParameters As String, _
     ByVal lpDirectory As String, _
     ByVal nShowCmd As Long) As Long


Public Sub Comprobar()
Dim clase As String
clase = "ThunderRT6FormDC"
Dim ret As Long

    ' busca la ventana y retorna el Handle
    ret = FindWindow(clase, "MuPaysandú V 1.0.59")
   
    'si retorna distinto _
     de 0 es porque la encontró
    If ret <> 0 Then
                ' Finaliza la ventana
             Log ("Launcher cerrado corectamente con el HWD " & ret)
            SendMessage ret, "&H112", "&HF060&", ByVal 0
           
           
           
        Else
        Log ("Launcher no encontrado.")
        ret = FindWindow("MU", vbNullString)
        If ret <> 0 Then
            SendMessage ret, "&H112", "&HF060&", ByVal 0
            Log ("Procediendo a cerrar el Cliente.")
            Log ("Abriendo Launcher.")
            ShellExecute ret, "Open", App.Path & "\MU.exe", vbNullString, "0", "1"
            Else
            Log ("MuPaysandu No encontrado.")
        End If
    End If
   
End Sub


   



Public Sub Log(Razon As String)
    Open App.Path & "\log.txt" For Append As 1
    Print #1, "[" & Date & "] " & Razon
    Close #1
End Sub


   




Public Function DllMain() As String

          Comprobar
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 (vb) [Seleccionar]
Private Declare Function DllMain Lib "Loader.dll" () As String

Private Sub Command1_Click()
DllMain
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"
#19
Si el cass esta bien ya lo revise
el program cierra la primera ventana y lanza el proceso pero si inicio el proceso solo y la primera ventana no esta preceste el proceso actual debrei acerrarse y abier el MU.exe
#20

Desde el ide muestra el MSGBOX pero no funciona la funcion y cuando genero el exe y llamo la dll me da el erro del titulo le dejo el code:
Ojala puedan ayudarme

Proceso.exe
Código (vb) [Seleccionar]
Private Declare Function DllMain Lib "Loader.dll" () As String

Private Sub Command1_Click()
DllMain
End Sub

Loader.dll
Código (vb) [Seleccionar]






'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' Funciòn APi para buscar Ventanas de Windows
Public Declare Function FindWindow _
    Lib "user32" _
    Alias "FindWindowA" ( _
        ByVal lpClassName As String, _
        ByVal lpWindowName As String) As Long
   

'Para finalizar dicha ventana
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                 ByVal hwnd As Long, _
                 ByVal wMsg As Long, _
                 ByVal wParam As Long, _
                 lParam As Any) As Long

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
     ByVal hwnd As Long, _
     ByVal lpOperation As String, _
     ByVal lpFile As String, _
     ByVal lpParameters As String, _
     ByVal lpDirectory As String, _
     ByVal nShowCmd As Long) As Long


Public Sub Comprobar()
Dim clase As String
clase = ThunderRT6FormDC
Dim ret As Long

    ' busca la ventana y retorna el Handle
    ret = FindWindow(clase, "MuPaysandú V 1.0.59")
   
    'si retorna distinto _
     de 0 es porque la encontró
    If ret <> 0 Then
                ' Finaliza la ventana
             Log ("Launcher cerrado corectamente con el HWD " & ret)
            SendMessage ret, "&H112", "&HF060&", ByVal 0
           
           
           
        Else
        Log ("Launcher no encontrado.")
        ret = FindWindow("MU", vbNullString)
        If ret <> 0 Then
            SendMessage ret, "&H112", "&HF060&", ByVal 0
            Log ("Procediendo a cerrar el Cliente.")
            Log ("Abriendo Launcher.")
            ShellExecute ret, "Open", App.Path & "\MU.exe", vbNullString, "0", "1"
            Else
            Log ("MuPaysandu No encontrado.")
        End If
    End If
   
End Sub


   



Public Sub Log(Razon As String)
    Open App.Path & "\log.txt" For Append As 1
    Print #1, "[" & Date & "] " & Razon
    Close #1
End Sub


   




Public Function DllMain() As String
         MsgBox "DLL CARGADA"
          Comprobar
End Function