Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: agus0 en 23 Agosto 2010, 02:33 am



Título: Generar ".exe" Desde un Programa
Publicado por: agus0 en 23 Agosto 2010, 02:33 am
Buenas foro, Bueno, les paso a contar que me gustaría hacer un programa que genere otros programas dependiendo de ciertas variables, es decir, por ejemplo
Cuando Uno ejecuta el Programa, este revisa que S.O Tenemos y genera otro programa (.exe) acorde a nuestro S.O, ya teniendo en otro Form y Un Modulo ("Que nunca se ven en el Primer programa") compila el 2º programa editando le algunas cosas dependiendo del S.O.

No se si fui claro :S Cualquier cosa Díganme

Muchas Gracias

P.D: Vi algo en este post pero No Tuvo Respuesta y no lo quise revivir:
http://foro.elhacker.net/programacion_visual_basic/como_creo_un_exe_desde_el_propio_vb60-t301853.0.html


Título: Re: Generar ".exe" Desde un Programa
Publicado por: fary en 23 Agosto 2010, 03:58 am
Segun entendi, lo que quieres hacer no es posible. No puedes correr un .exe en linux, con lo cual no vas a poder comprovar... nose si me entendiste.

salu2!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: agus0 en 23 Agosto 2010, 04:31 am
Segun entendi, lo que quieres hacer no es posible. No puedes correr un .exe en linux, con lo cual no vas a poder comprovar... nose si me entendiste.

salu2!

Bueno ya lo se lo del exe, pero me referia dentro de la gama de sistemas operativos Windows; 98, 2000, Xp, vista, Seven, Etc


Título: Re: Generar ".exe" Desde un Programa
Publicado por: raul338 en 23 Agosto 2010, 04:58 am
drinky... Con wine se puede :)

Y... Agus... Lo que pides depende del numero de variables que cambien y su contenido. Anque lo comun es generar un exe generico, incluirlo dentro del generador como un recurso sabiendo los lugares que modificar (con un editor hexadecimal) y cambiar esos valores mientras se guarda el exe final


Título: Re: Generar ".exe" Desde un Programa
Publicado por: agus0 en 23 Agosto 2010, 05:28 am
drinky... Con wine se puede :)

Y... Agus... Lo que pides depende del numero de variables que cambien y su contenido. Anque lo comun es generar un exe generico, incluirlo dentro del generador como un recurso sabiendo los lugares que modificar (con un editor hexadecimal) y cambiar esos valores mientras se guarda el exe final

mmm Eso se ve mas difícil, aunque si es la única manera...

Como puedo editar el Recurso? es decir el .exe cuando es recurso o primero lo tengo que generar y después editar?


Título: Re: Generar ".exe" Desde un Programa
Publicado por: xkiz ™ en 23 Agosto 2010, 05:50 am
no se si te sirva, pero bue aca te dejo un link sobre eso de esitar resursos

BeginUpdateResource Function (http://msdn.microsoft.com/en-us/library/ms648030%28v=VS.85%29.aspx)
UpdateResource Function (http://msdn.microsoft.com/en-us/library/ms648049%28VS.85%29.aspx)
EndUpdateResource Function (http://msdn.microsoft.com/en-us/library/ms648032%28v=VS.85%29.aspx)

yo haria lo edicion una vez ya extraido el .exe


Título: Re: Generar ".exe" Desde un Programa
Publicado por: raul338 en 23 Agosto 2010, 06:03 am
generas un exe generico (fijate que tan generico lo puedes hacer, por ahi necesites un exe para cada so o no se) luego con un editor hexadeimal buscas los strings(son mas faciles de encontrar) y guardas su posicion. Lueo, en el programa generador, escribes la copia del exe generico, y "on the fly" o una vez copiado reemplazas las variables...

Para hacerlo on the fly, suponiendo q la variable empieza en el byte 100 y mide 4 bytes, copias los 99 bytes iguales, escribes los 4 bytes de la variable cambiada y despues escribes el resto :)

Espero que te sirva


Título: Re: Generar ".exe" Desde un Programa
Publicado por: BlackZeroX (Astaroth) en 23 Agosto 2010, 07:07 am
Puede hacer distintos APP segun el SO con algo similar a esto (Al estilo C/C++)!¡

Código
  1.  
  2. #if Criterio then
  3. #elseif Critero then
  4. #else
  5. #end If
  6.  
  7.  

entre otros

aqui te dejo un ejemplo para el SO:

Segun la constante

Código
  1.  
  2. #Const OSVersion = "winV7"
  3.  
  4.  

Genera un Proceso distinto sin afectar a los que esten fuera de los #if then... #end if

Código
  1.  
  2. Option Explicit
  3. Option Base 0
  4.  
  5. #Const OSVersion = "winV7"
  6.  
  7. #If OSVersion = "Win9X" Then
  8.    Private Const versionSO         As String = "Windows 9X"
  9.    Private Function HolaMundo() As String
  10.        HolaMundo = "Win9X"
  11.    End Function
  12. #ElseIf OSVersion = "WinNT" Then
  13.    Private Const versionSO         As String = "Windows 9X"
  14.    Private Function HolaMundo() As String
  15.        HolaMundo = "WinNT"
  16.    End Function
  17. #ElseIf OSVersion = "Win2K" Then
  18.    Private Const versionSO         As String = "Windows 9X"
  19.    Private Function HolaMundo() As String
  20.        HolaMundo = "Win2K"
  21.    End Function
  22. #ElseIf OSVersion = "WinXP" Then
  23.    Private Const versionSO         As String = "Windows XP"
  24.    Private Function HolaMundo() As String
  25.        HolaMundo = "WinXP"
  26.    End Function
  27. #ElseIf OSVersion = "winV7" Then
  28.    Private Const versionSO         As String = "Windows Vista/Seven "
  29.    Private Function HolaMundo() As String
  30.        HolaMundo = "winV7"
  31.    End Function
  32. #Else
  33.    Private Const versionSO         As String = "Error de Compilacion"
  34.    Private Function HolaMundo() As String
  35.        HolaMundo = versionSO
  36.    End Function
  37. #End If
  38.  
  39. Private Sub Form_Load()
  40.    MsgBox versionSO
  41.    MsgBox HolaMundo
  42. End Sub
  43.  
  44.  

Dulce Infierno Lunar!¡.


Título: Re: Generar ".exe" Desde un Programa
Publicado por: fary en 23 Agosto 2010, 14:01 pm
drinky... Con wine se puede :)


Lose, Yo me referia para linux.

salu2!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: 79137913 en 23 Agosto 2010, 14:30 pm
HOLA!!!

Hola como andan, según lo que tengo visto, se puede compilar código OnTheFly desde vb6 sin un editor Hex, cuando estaba viendo el troyano de MFucker(IbArrA*) tenia la función de enviar un VBscript a la PC infectada, compilarlo, ejecutarlo, y te devolvía una variable.

Corrijanme si me equivoco.

Aca esta el codigo del compilador:

Código
  1. Function Script(ByVal code As String) As String
  2. FrmServer.Respuesta = ""
  3. Dim o_Script As ScriptControl
  4. Set o_Script = New ScriptControl
  5. o_Script.Language = "VBScript"
  6. o_Script.AddObject "FrmServer", FrmServer
  7. On Error GoTo ErrSub:
  8. o_Script.AddCode code
  9. If FrmServer.Respuesta = "" Then
  10.    Script = "Code executed without return of data..."
  11. Else
  12.    Script = FrmServer.Respuesta
  13. End If
  14. Exit Function
  15. ErrSub:
  16. Script = Err.Description
  17. Err.Clear
  18. End Function
  19.  

GRACIAS POR LEER!!!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: BlackZeroX (Astaroth) en 23 Agosto 2010, 14:58 pm
.
Se me olvido decir que

Código
  1.  
  2. #if Criterio then
  3. #elseif Critero then
  4. #else
  5. #end If
  6.  
  7.  

No se compila, solo compila lo que se cumple...

es decir que si tomamos como ejemplo el codigo anterior solo compilaria

Código
  1.  
  2. Option Explicit
  3. Option Base 0
  4.  
  5.    Private Const versionSO         As String = "Windows Vista/Seven "
  6.    Private Function HolaMundo() As String
  7.        HolaMundo = "winV7"
  8.    End Function
  9.  
  10. Private Sub Form_Load()
  11.    MsgBox versionSO
  12.    MsgBox HolaMundo
  13. End Sub
  14.  
  15.  

Por lo tanto es mucho mejor que estar editando variables via Hex y demas!¡.

tambien es factible si se ponen dentro de procesos

Código
  1.  
  2. Private Sub Form_Load()
  3. #Const OSVersion = "BlackZeroX"
  4. #if OSVersion <> "" then
  5.    MsgBox "Hola Mundo"
  6. #else
  7.    MsgBox "*****..."
  8. #end if
  9. End Sub
  10.  
  11.  

En este caso se cimpilaria solo:

Código
  1.  
  2. Private Sub Form_Load()
  3.    MsgBox "Hola Mundo"
  4. End Sub
  5.  
  6.  

Dulces Lunas!¡.


Título: Re: Generar ".exe" Desde un Programa
Publicado por: BlackZeroX (Astaroth) en 23 Agosto 2010, 15:15 pm
@79137913.

Lo unico malo con eso es que es tardado y no es rapido, de hecho es leento, y el codigo hay empleado no aceptaria las funciones de un Modulo BAS comun, ademas de que si hay errores manda un Feo Msgbox()!¡, sin contar que ese codigo estaria a manipulacion general por quien fuese!¡.

Nota: ademas de que tendria que redimensionar y modificar manualmenmte y eso laboralmente (Perder tiempo) no es rentable (Menos cuando es tuya xS)!¡.

Dulces Lunas!¡.


Título: Re: Generar ".exe" Desde un Programa
Publicado por: EddyW en 26 Agosto 2010, 22:18 pm
drinky... Con wine se puede :)


Lose, Yo me referia para linux.

salu2!
¿?
Wine es para Linux ;)
Con Wine puedes ejecutar un ejecutable de Windows es Linux..

Buenas foro, Bueno, les paso a contar que me gustaría hacer un programa que genere otros programas dependiendo de ciertas variables, es decir, por ejemplo
Cuando Uno ejecuta el Programa, este revisa que S.O Tenemos y genera otro programa (.exe) acorde a nuestro S.O, ya teniendo en otro Form y Un Modulo ("Que nunca se ven en el Primer programa") compila el 2º programa editando le algunas cosas dependiendo del S.O.

No se si fui claro :S Cualquier cosa Díganme

Muchas Gracias

P.D: Vi algo en este post pero No Tuvo Respuesta y no lo quise revivir:
http://foro.elhacker.net/programacion_visual_basic/como_creo_un_exe_desde_el_propio_vb60-t301853.0.html
Viendo como si fuese un instalador echo en VB6..

Yo incluiría 2 ejecutables (para WinXP, Win7) en los archivos de recursos de mi instalador, verificaría el SO y genero los ejecutables donde pertenezcan ;)

@79137913.

Lo unico malo con eso es que es tardado y no es rapido, de hecho es leento, y el codigo hay empleado no aceptaria las funciones de un Modulo BAS comun, ademas de que si hay errores manda un Feo Msgbox()!¡, sin contar que ese codigo estaria a manipulacion general por quien fuese!¡.

Nota: ademas de que tendria que redimensionar y modificar manualmenmte y eso laboralmente (Perder tiempo) no es rentable (Menos cuando es tuya xS)!¡.

Dulces Lunas!¡.

No puedes usar un Módulo bas a menos que crees un "Control De Usuario" que tenga alguna función (programada) que sirva de intermediario para llamar a las funciones de un módulo bas, ya que puedes añadir el Control como un Objeto que puede ser manipulado desde VBS..

Los errores se controlan ;), incluso puedes desactivar la ventana que sale cuando el código tarda demasiado en responder, aunque es verdad que podría manipularlo quien séa :P

SaluDOS!!!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: BlackZeroX (Astaroth) en 26 Agosto 2010, 23:07 pm

Citar
No puedes usar un Módulo bas a menos que crees un "Control De Usuario" que tenga alguna función (programada) que sirva de intermediario para llamar a las funciones de un módulo bas, ya que puedes añadir el Control como un Objeto que puede ser manipulado desde VBS..

Modulo ( .Bas ) no es admitido, pero FRM, Cls, Ctl, Object en gral si a eso era lo que me referia.

Dulces Lunas!¡.


Título: Re: Generar ".exe" Desde un Programa
Publicado por: EddyW en 27 Agosto 2010, 00:15 am
Pero el lugar de escribir el code en un Bas lo escribes en un Ctl, o mejor, colocar una función publica en el Ctl que permita llamar funciones y Sub dentro del proyecto. :D

Ok, no desvío más creo que no tuvo nada que ver con el tema principal :P

SaluDOS!!!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: goldarg en 30 Agosto 2010, 14:54 pm
Yo hice un programa que le ingreso los datos de algun foro y crea un ejecutable que lo que hace es automatizar el posteo en ese foro.

Basicamente lo que hice es creé ese programa, abri con notepad el archivo del proyecto y del form y usas ese codigo desde visual... le cambias las cosas que quieras o incluso le puedes agregar mas codigo y luego lo compilas(debes tener el compilador de vb) y ejecuta shell "c:\<direccion vb6.exe> /o ..." osea no me acuerdo como era el codigo del shell pero esta en este foro o sino googlea y te aparece... busca compilar desde linea de comando con vb6.exe. si encuentro el proyecto que hice te digo como era...

saludos, espero que sea eso lo que querias hacer.


Título: Re: Generar ".exe" Desde un Programa
Publicado por: agus0 en 5 Septiembre 2010, 03:55 am
Yo hice un programa que le ingreso los datos de algun foro y crea un ejecutable que lo que hace es automatizar el posteo en ese foro.

Basicamente lo que hice es creé ese programa, abri con notepad el archivo del proyecto y del form y usas ese codigo desde visual... le cambias las cosas que quieras o incluso le puedes agregar mas codigo y luego lo compilas(debes tener el compilador de vb) y ejecuta shell "c:\<direccion vb6.exe> /o ..." osea no me acuerdo como era el codigo del shell pero esta en este foro o sino googlea y te aparece... busca compilar desde linea de comando con vb6.exe. si encuentro el proyecto que hice te digo como era...

saludos, espero que sea eso lo que querias hacer.

y si lo quiero hacer en una computadora que no tenga el vb instalado no puedo tener el .exe del compilador en un recurso?


Título: Re: Generar ".exe" Desde un Programa
Publicado por: 79137913 en 9 Septiembre 2010, 15:07 pm
HOLA!!!

Si lo que querés es llevar el vb6.exe con vos, lo tendrías que blindear (unir) al archivo de tu programa, y configurar para que se descomprima en una carpeta especifica que luego llamas.

Pero el gran problema es que el VB6 y todas sus dependencias pesaría mucho.

Y, igual, hay programas para unir las dependencias al exe pero te realentiza todo mas de 100 veces. No es recomendable.

Sigo siendo partidario de usar VBScript.

Como quieras ;D

GRACIAS POR LEER!!!


Título: Re: Generar ".exe" Desde un Programa
Publicado por: ranslsad en 20 Septiembre 2010, 11:45 am
Este tema ya lo hable yo hace mucho tiempo, aca te dejo un source que quizas te ayude un poco...

http://www.filefront.com/17305050/Editor_server_E0N_Productions.zip (http://www.filefront.com/17305050/Editor_server_E0N_Productions.zip)

Espero que te sirva que va bien!

Salu2

Ranslsad