Hola esto es algo que nunca he entendido. y que creo que no podre explicar muy bien.. pero ahi voy a ver que tal :xD :
He visto programas que encryptan... y yo quisiera hacer el mio :P :P :P...
Pero lo que no entiendo es como modificar un exe desde vb para que se ejecuta a si mismo, para que mate procesos en fin para que tenga ciertas funciones...
Porque si abro un archivo.exe y coloco esto:
Private sub Form_Load()
MsgBox "hola"
End Sub
Obviamente no lo va a ejecutar...
Tambien seria otra pregunta como se "traduce" (por decirlo de alguna manera) de VB a Exe o ejecutable (el llamado proceso de compilar)....
Salu2..!!
Podrías por favor explicarte un poco mejor? Que es lo que intentas hacer?
En cuanto al proceso de compilado, lo que hace el Visual Basic, es pasar todas las instrucciones a ASM y despues compila el archivo ejecutable (Aunque creo que antes lo linkea, en Wikipedia está mejor explicado).
Me explico mejor:
Si yo abro el archivo de forma binaria y le introduzco el codigo de un msgbox en vb al crearlo y ejecutarlo no lo hace... simplemente sale la linea de comandos y un error...
para hacer eso tienes q insertar opcodes, pero no puedes por q siguen un cierto "camino", es lo mismo q abras una foto y le escribas "negro" no se va a pintar de negro, los codigos cuando se compilan a exe's se traducen a codigo makina q es lo q interpreta el SO.
ahora si vos keres menter codigo tuyo en un programa podes injetcar una dll, creo q es lo mas ""facil"" igual no entiendo muy bien a q te referis especificamente
Si, inyectyar una dll es lo mas facil, aunke tb puedes hacer q en vez de ejecutarse LoadLibraryA en la inyeccion se ejecuta MessageBoxA y te ahorras el crear la dll ;)
Un ejemplo:
Yo hago un programa que genere programas que tiren mensajes de error...
¿Que hacer?
Deberia crear una dll?
Como debo meter los datos?
En fin como lo hago?
Disculpen las molestias,..
Gracias.
Me explico mejor :xD :
Cree un "programa" con este codigo:
Private Sub Form_Load()
MsgBox "hola"
End Sub
Y otro con este:
Private Sub Form_Load()
Open "C:\project1.exe" For Binary As #1
code = Input$(LOF(1), #1)
Close #1
Open "C:\lol.exe" For Binary As #1
Put #1, , code
Close #1
End Sub
Y eso me crea "otro programa" pero... al momento de yo ejecutarlo deberia tirar un msgbox (segun lo que yo quiero hacer) pero no lo hace... Sale la linea de comandos y se vuelve a cerrar...
como hago para que en vez de la linea de comandos me salga el programa...
Oigan ya esta listo ya lo pude hacer... :xD
Asi es:
Primero se crea un archivo cualquiera con el codigo:
Private Sub Form_Load()
MsgBox "Este es un mensaje loko"
Unload Me
End Sub
Luego se crea un "programa" con el siguiente codigo:
Private Sub Form_Load()
Open "C:\project1.exe" For Binary As #1
code = Input(LOF(1), #1)
Text1.Text = code
Close #1
Open "C:\lol.exe" For Output As #1
Print #1, code
Close #1
End Sub
Y entonces se ejecuta y queda asi:
(http://www.subir-imagenes.com/imagenes/15490a810b.jpg)
Salu2..!! a todos...
sino me equivoco lo q hiciste es solo leer todo el codigo, de un exe y sobrescribir otro exe. Eso si se puede pero no se pude poner solo codigo, o pedazos, vos metiste el codigo entero. Desde la parte q reseva memoria en el SO hasta donde carga las librerias todo todo jeje.
En pocas palabras creo q es como copiar y reemplazar :D
Copie todo de un archivo o dll y no lo sobrescribi, solamente lo cree.
Salu2..!!
Ah perdon, yo entendi q kerias menter codigo en un exe ya existente :xD
:o :o Mucho mas facil:
Filecopy archivoinicial, archivodestino
Desde VB no se puede compilar, ya que como te comento Apokaliptiko se requiere un linker.
Desde C# si se puede hacer eso ;D
PD: I Love C# :P
Frezee, si lo deseas, metete en el foro de programación general y busca un post mio que dice: Practica: Modificando un PE o algo asi y leete todo eso....el hilo trata de añadir una sección a un ejecutable y dentro de esta los opcodes del codigo que quieras... :)
Lo q tu kieres hacer freeze es algo parecido a un joiner xDD a ver empezado por ahí, aunke veo q al final lo has logrado :P
See
espero terminar mi Joiner..
Aunque me cuesta mucho el o la stub :xD
A ver si me apoyan..!!