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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  actualizacion por plugins! ayuda plz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: actualizacion por plugins! ayuda plz  (Leído 1,834 veces)
Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
actualizacion por plugins! ayuda plz
« en: 11 Marzo 2006, 04:38 am »

Hola tanto tiempo, estaba haciendo mi troyano y se me ocuririo q se actualize pero lo quise hacer por medio de plugins (el ej es el que le dieron a martin) pero a mi no me deja cargar mas de una dll y queria saber si alguno me puede ayudar por favor. Codigo para leer las dll:
Código:
Option Explicit

Public Sub AñadirAlMenu(ByVal Nombre$, ByVal Titulo$)
Dim index As Integer
If ListaDePlugins(0).Enabled = True Then
    index = index + 1
    Load ListaDePlugins(index)
Else
    ListaDePlugins(0).Enabled = True
End If
ListaDePlugins(index).Caption = Titulo
ListaDePlugins(index).Tag = Nombre
End Sub
Public Sub CargarPlugins()
On Error GoTo error:
Dim dll$, temp$, obj
dll = Dir("C:\Windows\System32\*.dll", vbNormal) 'se obtiene la dll
Do Until dll = ""
 
    dll = Left(dll, Len(dll) - 4) 'quita ".dll" del nombre
    temp = dll & "." & "plugin"
    Set obj = CreateObject(temp) 'se crea el plugin
    AñadirAlMenu temp, obj.NombrePlugin 'se añade el plugin al menu
    dll = Dir()
Loop
Exit Sub
error:
    MsgBox "Error al cargar un plugin. Puede que no esté corretamente registrado.", , "Error"
End Sub

Private Sub ListaDePlugins_Click(index As Integer)
Dim obj
Set obj = CreateObject(ListaDePlugins(index).Tag)
obj.AbrirPlugin Me
End Sub

Private Sub mnuplugins_Click()
CargarPlugins 'se cargan los plugins que están el el directorio plugins.
End Sub
Contiene un text1.text y un menu
caption: plugins
name: mnuplugins
->caption lala
->name: ListaDePlugins  (con index 0 para crear una matriz)

y este es el code de la dll a crear con vb esto es en el form1 lo otro va en un modulo de clase llamado plugin

Código:
Public miFormularioPadre As Form 'el manejador del formulario
Option Explicit

Private Sub Command1_Click()
miFormularioPadre.Caption = Text1.Text
End Sub

Private Sub Command2_Click()
miFormularioPadre.Text1.Text = miFormularioPadre.Text1 + Text2.Text
End Sub

Private Sub Command4_Click()
MsgBox miFormularioPadre.Text1.Text, vbInformation, "From Plugin"
End Sub

Código:
Option Explicit

Public Property Get NombrePlugin() As String 'El nombre del plugin
NombrePlugin = "Este es miplugin"

End Property

Public Sub AbrirPlugin(Form As Object)
Set Form1.miFormularioPadre = Form
Form1.Show
End Sub

bueno al compilar la dll la ponemos en system32 y la regsitramos asi en MS-DOS o en cmd o en ejecutar como quieran ponen regsvr32 miplugin.dll ese nombre xq asi lo compile miplugin.dll
y si o si al registrarla tiene q estar en system32 al dll (si me equivoco corijanmen)

ese code no me fuciona bien y yo probe hacer esto

Código:
Public Sub CargarPlugins()
On Error GoTo error:
Dim dll$, temp$, obj
open "C:\dll.txt" for input as #1
Do While Not EOF(1)
Line Input #1, lala
    dll = Left(lala, Len(lala) - 4) 'quita ".dll" del nombre
    temp = dll & "." & "plugin"
    Set obj = CreateObject(temp) 'se crea el plugin
    AñadirAlMenu temp, obj.NombrePlugin 'se añade el plugin al menu
Loop
Exit Sub
error:
    MsgBox "Error al cargar un plugin. Puede que no esté corretamente registrado.", , "Error"
End Sub

bueno en C:\dll.txt estan los nombres de las dll entonces las saca de a una pero no sirve ninguno de los 2 ejemplos espero q alguien me ayude y perdon x escribir tanto.


Sancho.Mazorka     :P


En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


.Slasher-K.

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: actualizacion por plugins! ayuda plz
« Respuesta #1 en: 11 Marzo 2006, 06:39 am »

No lo probé y no sé donde está el error, pero ya te digo que eso no va a funcionar, no se puede pasar como argumento un objeto privado como lo es un Form a una función en un módulo de clase público, ni se puede forzar a un Object.


En línea

krispin

Desconectado Desconectado

Mensajes: 90


Ver Perfil WWW
Re: actualizacion por plugins! ayuda plz
« Respuesta #2 en: 11 Marzo 2006, 10:10 am »

creo que estás utilizando el ejemplo
de mi pagina, asi que
¿Estas seguro que cuando generas la dll, la dll que generas y el nombre del proyecto es el mismo?
puede que sea eso lo que te falle, tienen que llamarse igual.
saludox.
En línea

Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
plugin (otro problema)! ayuda plz
« Respuesta #3 en: 12 Marzo 2006, 04:26 am »

krispin ni idea si es de tu pagina yo se q lo saque del foro de otro ejemplo pero encontre uno mas sencillo y entendi como funciona les pongo el nuevo ej:

'CODIGO DE LA DLL
Código:
'esto es para el modulo de clase llamado ModPrincipal
'y el proyecto ponganlen Plugin_num1

Public miFormularioPadre As Form 'el manejador del formulario

Public Function Arranca(Form As Object)
Set miFormularioPadre = Form
Form1.Text1.Text = miFormularioPadre.Text1.Text
Form1.Show
End Function

Public Function msgbox()
Form1.Text1.Text = miFormularioPadre.Text1.Text
End Function

'este es el code del q lee las plugin

dim Miplugin
private sub form_load()
Set Miplugin= CreateObject("Miplugin.ModPrincipal")
Miplugin.arranca Me
end sub

private sub command1_click()
Miplugin.msgbox
end sub

miren lo q esta en rojo es para referirse a las function ej:

Código:
Miplugin.msgbox '<- haria q se ejecute la funcion q se llame msgbox en el plugin

y lo q esta en verde es al nombre del modulo q nos referimos.

el problema q me salta ahora es en la linea esta
Código:
Set Miplugin= CreateObject("Miplugin.ModPrincipal")
y debe ser porque ahora leo las dll q tiene q cargar con un line input desde un .txt y hago un
Código:
do while not EOF(1)
entonces no se como hacer para q vayan cambiando las variables no se si me entiende o hacer un tipo de matriz de variables, lei el post pegado de NekroByte pero no entendi bien, alguien me podria ayudar con ese pedazo de code


Sancho.Mazorka     :P
« Última modificación: 12 Marzo 2006, 04:28 am por Sancho.Mazorka » En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


.Slasher-K.

Desconectado Desconectado

Mensajes: 79


Ver Perfil
Re: actualizacion por plugins! ayuda plz
« Respuesta #4 en: 12 Marzo 2006, 15:17 pm »

El siguiente ejemplo es mediante menús, lo que tenés que hacer es crear un menú llamado mnuPlugin con el índice 0.

Luego al inicio del programa carga desde un archivo (puede ser desde otro lado) los plugins instalados, y los pone en el menú. Después carga los plugins cuando se hace click en el menú correspondiente.

Ah, y también registra el componente en segundo plano por si no está registrado. No te olvides de tener en cuenta que los plugins no están en el directorio del sistema sino que deben estar en PLUGIN_PATH, relativo al path del programa.

Código:
Const PLUGIN_PATH = "plugins\"

Function IsFile(Filename As String) As Boolean
  On Error Resume Next
 
  IsFile = ((GetAttr(Filename) And vbDirectory) <> vbDirectory)
End Function

Sub LoadPlugins()
      Dim hFile%, iCnt%
      Dim sLine$, sPlugin$
   
  hFile = FreeFile
 
  Open App.Path & "\plugins.txt" For Input As #hFile
 
  Do While Not EOF(hFile)
    Line Input #hFile, sLine
   
    sPlugin = App.Path & "\" & PLUGIN_PATH & sLine
   
    If IsFile(sPlugin) Then
      ' Registra el componente por si no está registrado.
      '
      Call Shell("REGSVR32.EXE /u " & Chr$(34) & sPlugin & Chr$(34))
      Call Shell("REGSVR32.EXE /s " & Chr$(34) & sPlugin & Chr$(34))
     
      If iCnt > 0 Then
        Call Load(mnuPlugin(iCnt))
       
        mnuPlugin(iCnt).Visible = True
      End If
     
      mnuPlugin(iCnt).Caption = sLine
     
      iCnt = iCnt + 1
    End If
  Loop
 
  Close #hFile
End Sub

Private Sub Form_Load()
  Call LoadPlugins
End Sub

Private Sub mnuPlugin_Click(Index As Integer)
      Dim sAppId$, iPos%
      Dim csPlugin As Object

  iPos = InStr(1, mnuPlugin(Index).Caption, ".dll")
 
  If iPos Then
    sAppId = Left$(mnuPlugin(Index).Caption, iPos - 1) & ".VBPlugin"
   
    Set csPlugin = CreateObject(sAppId)
   
    Call csPlugin.CargarPlugin(Me)
  End If
End Sub

En el archivo plugins.txt debería haber algo así:

Citar
Plugin1.dll
Plugin2.dll
En línea

Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
Re: actualizacion por plugins! ayuda plz
« Respuesta #5 en: 17 Marzo 2006, 00:51 am »

Gracias .Slasher-K. por todo ese lio gigantesco, pero ya lo solucione yo pensaba q era el nombre de la dll donde iba ("Miplugin.ModPrincipal") era el nombre q contenia el proyecto osea como ModPrincipal y eso era el unico problema ponia mal el nombre, pero gracias =
PD: para q sirve poner q el canal del txt es freefile

Sancho.Mazorka     :P
« Última modificación: 17 Marzo 2006, 00:55 am por Sancho.Mazorka » En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con T-SEPS plugins photoshop « 1 2 3 4 5 »
Ingeniería Inversa
pmgpablo7 47 30,813 Último mensaje 19 Septiembre 2011, 03:50 am
por apuromafo CLS
Plugins - Ayuda
Dudas Generales
Zorronde 0 1,686 Último mensaje 7 Diciembre 2014, 17:57 pm
por Zorronde
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines