Wenassss estaba pensando el otro dia como se podria hacer algo como el boton de crear servidor de los troyanos pero con visual basic pero nada. Se me ocurrio crear un programa que se configurase con un archivo de texto y luego intentarlos juntar con un joiner, pero quisiera saber como se podria crear uno ya configurado al darle al boton para crearlo. He mirado algunos codigos fuente de programas que tienen esta funcion pero no lo entiendo :-[ si alguien me pudiera inspirar un poco.
Un saludo.
No he entendido nada...que quieres crear un joiner?
(creo) que quiere hcer un programa que al darle click a un botón cree otro exe, no se si es eso pero bueno, yo hace tiempo estuve intentando hacer esto que digo (al darle click a un botón creara un exe con los datos que hayas puesto en el otro exe) pero no fui capaz si alguien sabe como hacerlo me interesaría mucho ya que acabe haciéndolo con un bat y no es lo mismo... saludos
No entiendo muy bien lo q kieres decir askrator.. pero si es lo q dice Hate esto es lo q buscas:
http://foro.elhacker.net/index.php/topic,171824.0.html
Eso es muy simple...
Simplemente te lees a ti mismo, y lo pegas todo en otro archivo.
Cita de: -Freeze- en 8 Septiembre 2007, 02:28 AM
Eso es muy simple...
Simplemente te lees a ti mismo, y lo pegas todo en otro archivo.
Si eso use yo cuando me entraba la curiosidad de como hacerlo :P
Buena respuesta, estas en todo Freeze :D
Salu2
Ranslsad
Quiero hacer lo que dice HATE, pero no me explico muy bien la verdad :-[
EON tu programa no lo entiendo muy bien como haces para pasarle los datos a otro exe...
Citar
Simplemente te lees a ti mismo, y lo pegas todo en otro archivo.
A que te refieres con eso??
Creo que quiero ir demasiado lejos si veo que esto no lo entiendo mucho seguire leyendo y ya lo hare dentro de un tiempo.
Un saludo.
Haber, los datos se escriben al final del .exe, puedes meter lo que quieras despues de un .exe que este no se estropea...entonces haces que el .exe se lea a si mismo, que lea los ultimos X bytes (puedes escribir un ultimo byte que tenga la longitud de los datos)...
Saludos ;)
Usando la funcion Open.
Te lees a ti mismo. Te almacenas en una variable. Abres otro archivo. Introduces los datos y LISTO.
Te sirve?
algo como open app.path app.exe name &".exe" for binary access read as #1
y luego... como podeis posionarle en el ultimo byte ... y como saber cuando es el ultimo byte y luego como saber desde donde vas a empezar e leer???
saludos!!!
Open App.Path & App.EXEName & ".exe" For Binary As #1
Yo = Space(LOF(1))
Get #1, , Yo
Close #1
No te lo puedo hacer todo. Tienes que pensar. Es muy simple.!
es que no lo acabas de explicar tio, a mi al menos no me queda claro, como guardas la variable ? Es decir en tu ejemplo luego debería ir comprobando si existe la palabra "yo" o puede hacerse mas facil guardándolo como una variable que luego puedes utilizar?
CitarOpen App.Path & App.EXEName & ".exe" For Binary As #1
Yo = Space(LOF(1))
Get #1, , Yo
Close #1
ya estamos eso me trate de explicar... bueno de ahi... ya tenemos una copia de nosotros almacenado en la variable yo... bueno ahora abro otro y lo le pongo la variable "yo" despues.... le escribo lo que yo quiera no? y qui lo tenemos ya insertado... pero la pregunta era despues como identificar despues mis datos que escribi y tendria que saber en que posicion o byte acabo el exe y en que posicion escribi los datos no??? eso es lo que no he podido hacer o tal vez sera que tengo que ponerle un marcador para saber en donde empiezan los datos que me interesan????
salu2
Ammmm vale me empiezo a enterar, voy a hacer unos experimentos por mi propia cuenta haber como salen y si tengo problemas los posteare aqui.
Un saludo y gracias a todos.
Cita de: askrator en 8 Septiembre 2007, 14:14 PM
Quiero hacer lo que dice HATE, pero no me explico muy bien la verdad :-[
E0N tu programa no lo entiendo muy bien como haces para pasarle los datos a otro exe...
A ver, lo explico un poco... Lo q tienes q hacer es lo siguiente:
Necesitas dos programas, uno q seria en el q tu tienes q meter los datos necesarios (el cliente del troyano o lo q tu kieras) y otro q es el q tiene q meter esos datos.
Te lo explicare para hacer q el cliente y el server esten en el mismo ejecutable, q creo q es lo q kieres hacer no??
Lo primero es crear un programa independiente al troyano q leerá el server y añadirá sus datos al final del cliente (el q en mi ejemplo seria el juntador). El programa kerdaria asi:
' Ruta Cliente -> C:\Cliente.exe
' Ruta Server -> C:\Server.exe
dim firma as string
firma = "-_E0N_-"
Open "C:\Server.exe" For Binary As #1
Dim Server as string
server = Space(LOF(1))
Get #1, , server
Close #1
open "C:\cliente.exe" for binary as #1
seek(1), lof(1)+1
put #1, , firma & server 'Esta linea añade al final del cliente los datos del server y una firma, q es una
'cadena de texto ("-_E0N_-") para que luego sepas donde empiezan los datos del server y poder extraerlo.
close #1
Ahora en tu cliente pones el botoncito ese de crear server y este code:
Dim Yo As String, Partes As Variant, Server As String
Dim Firma As String, SubFirma As String
Firma = "-_E0N_-"
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1 'Nos autoleemos
Yo = Space(LOF(1))
Get #1, , Yo
Close #1
Partes = Split(Yo, Firma) ' Partimos el cliente por la firma. De esta manera
' Partes(0) será el cliente y Partes(1) el server.
Open "C:\ServerExtraido.exe" For Binary As #1
Put #1, , Partes(1)
Close #1
msgbox "Server extraido =P"
Ya esta, con eso conseguirias meter en un mismo ejecutable tu server y tu cliente ;)
Pruevalo y me cuentas
Salu2
Muxas gracias por tu explicacion EON, ahora lo entiendo todo perfecto me imagino que no tendre ningun problema ;D, (espero vamos jeje).
Por cierto... se me a ocurrido que podria autocopiar el server al principio de algun archivo importante de windows (explorer.exe...) y luego que el server saque el explorer.exe lo ponga en algun sitio y luego lo ejecute para no levantar sospechas.
Voy a experimentar, primero con lo facil, y ya vere.
Por cierto no creo que sea el primero al que se le ocurra eso de copiarse delante de algun programa importante, ¿me equivoco?
Un saludo y muxas gracias a todos.
CitarPor cierto no creo que sea el primero al que se le ocurra eso de copiarse delante de algun programa importante, ¿me equivoco?
Siento decirte q no :xD Los virus mas simples funcionan asi ;)
Me rindo no encuentro el error. Utilizo un juntador y lo separo por una firma 2 programas, hasta aqui todo va bien, utilizo un editor de texto y veo el codigo la firma y al final el codigo del 2 programa.
Pero al darle al boton que lo separa me sale un error:
Error '9' en tiempo de ejecucion:
El subindice esta fuera del intervalo.
Se me crea un programa pero al editarlo me sale el codigo vacio.
El error tiene que estar en una de estas lineas:
dim yo as string
dim cadenaparapegar as string
dim primera as string
dim partes as variant ' las variables las he declarado asi antes
primera = "jahagafadasa" 'cadena con la que estan los dos programas separados, comprobado
cadenaparapegar = cadenaparapegar & Text2.Text
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
yo = Space(LOF(1))
Close #1
partes = Split(yo, primera)
Open App.Path & "\" & Text1.Text & ".exe" For Binary As #1
Put #1, , partes(1) & cadenaparapegar
Close #1
He mirado y lo veo todo bien, donde fallo.
Un saludo.
Si le das a depurar te debería de aparecer la linea en la que seproduce el error :P
El mismo error te lo dice, "El subindice está fuera del intervalo"...eso es que llamaste a una matriz con un Index que no existe...busca y aprende a usar el Debug de VB que es muy weno
Saludos ;)
Yo veo un fallo aki:
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
yo = Space(LOF(1))
Close #1
Asi solamente defines el tamaño q tendra yo, pero no lo extraes.. tienes q poner un get ;)
El code completo seria asi:
dim yo as string
dim cadenaparapegar as string
dim primera as string
dim partes as variant ' las variables las he declarado asi antes
primera = "jahagafadasa" 'cadena con la que estan los dos programas separados, comprobado
cadenaparapegar = cadenaparapegar & Text2.Text
Open App.Path & "\" & App.EXEName & ".exe" For Binary As #1
yo = Space(LOF(1))
get #1,,yo
Close #1
partes = Split(yo, primera)
Open App.Path & "\" & Text1.Text & ".exe" For Binary As #1
Put #1, , partes(1) & cadenaparapegar
Close #1
Prueva asi y si te da algun otro error pregunta :P
Posiblemente esto tb te falle:
Open App.Path & "\" & Text1.Text & ".exe" For Binary As #1
Put #1, , partes(1) & cadenaparapegar
Close #1
A mi (no se por q) si uso put así me añade un par de bytes al principio del archivo, y lo deja inutil... si te pasa lo mismo haz esto:
Open App.Path & "\" & Text1.Text & ".exe" For Binary As #1
dim poner as string
poner = partes(1) & cadenaparapegar
Put #1, , poner
Close #1
1S4ludo
aiss nada lo he probado de mil formas y nada, >:( voy a seguir cambiando lineas de codigo aver... Si consigo encontrar el problema ya posteare.
Un saludo y gracias.
Revisa mi source de ejemplo y mira las diferencias, a ver si encuentras el fallo.. por q por el source q has pegado no le veo pegas.. q error tienes ahora y en q linea te salta??
La linea esque no lo puedo probar, necesito compilarlo y despues pegarle el otro programa...
Estoy mirando un poco el source y se me acaba de acurrir ahora mismo que en vez de abrirlo en binario lo puedo abrir de otra fora y a ver...
Ahora que ya he empezado todas las clases no me queda tiempo libre por las tardes pero ya ire cogiendo tiempo ;), por eso he tardado tanto en responder.
Un saludo y gracias.
CitarLa linea esque no lo puedo probar, necesito compilarlo y despues pegarle el otro programa...
Pon un msgbox detras de cada linea, y asi puedes saber en q linea falla... no se si me explico, tu pones una linea de code y a continuacion un msgbox q muestre un 1, luego un 2 y asi con todas. De esa manera cuando lo ejecutes puedes saber donde esta el fallo y corregirlo ;)
Aqui esta el problema:
Get #1, , yo
alguien se le ocurre algun modo para coger la informacion que no sea get xq e buscado y no encuentro..
Siento contestar tan tarde pero no tengo tiempo...
Un saludo
Yo = Input(LOF(1),#1)
;) ;) ;) ;) ;)
Pero recuerda que es mejor Get. Luego lo aprenderas :D
Bien esto ya esta solucionado jeje.
Ahora me da un error en el array :xD pero de este ya me encargo yo ;)
Muchas gracias x las respuestas y un saludo.