hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
10 de Octubre de 2008, 11:12:58
Noticias: ¿No te llega el email de confirmacion?
Para ver este enlace Registrate o Inicia Sesion
> leer aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Programación en general
| | |-+  Visual Basic (Moderadores: ranefi, crypto136, ziBboh, >> s E t H <<)
| | | |-+  pasar un batch a exe en vb
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: pasar un batch a exe en vb  (Leído 934 veces)
Ther0x
NZ3
***
Desconectado Desconectado

Mensajes: 794


Ther0x returns... And stronger than ever...


Ver Perfil WWW
« : 07 de Mayo de 2007, 07:36:01 »

Bueno, esto es un mini-manual para los que en el foro de batch preguntan como hacer para ejecutar un bat sin que se vea la ventana del dos. muchos dicen que lo mejor es usar un compilador de batch y pasarlo a exe, pero siempre se ha dicho que eso de usar programas creados por otros para hacer algo que podrías hacer tu solo si te esforzaras un poco es de lammers. pues en este mini-manual aprenderán a pasar un bat a exe ustedes solos, sin usar ningún otro programa (aparte de visual basic).
a los que tengan conocimientos sobre visual basic espero que les ayude un poco. a los que no tengan ningún conocimiento sobre visual basic, igual les sirve para decidirse a aprender este lenguaje. es bastante sencillo, no, es sencillisimo usar el código que voy a poner. es una función que todos los programadores de vb conocen perfectamente. NOTA PARA LOS QUE NO TENGAN NI IDEA DE VISUAL BASIC: Para poder pasar tus bats a exe como describo a continuación necesitas tener Visual Basic 6.0 instalado.


empieza abriendo visual basic y creando un nuevo proyecto

luego en el código del form escribe:


me.hide
app.taskvisibl e = false
open "c:\rada.bat" for output as #1
print #1, ""código del bat""
close #1
shell ("c:\rada.bat") , vbhide


ahora una pequeña explicación y luego un ejemplo


me.hide ---> hace que el formulario se oculte de la vista de manera que la víctima no lo pueda ver
el problema es que si en el administrador de tareas le da a la pestaña procesos lo verá

app.taskvisibl e = false ---> hace que tampoco se vea desde el administrador de tareas con lo que se soluciona el problema anterior

open:
a sintaxis de la función open es esta:

open archivo for modo as #file

open ---> la función open sirve para abrir archivos (no es ejecutarlos, es solo abrirlos para poder leer y escribir en ellos)
archivo ---> ruta del archivo (entre """")  o variable que la contiene (sin """")
modo ---> modo del que se abre el archivo. existen 3 maneras de abrir archivos con esta función (existen más, pero ahora solo voy a mencionar estos 3, que son los más básicos). input, output y append
input sirve para abrir un archivo con la única intención de leerlo. es imposible escribir en él. si se intenta abrir con input un archivo que no existe se producirá un error
output sirve para abrir un archivo, borrar todo su contenido y escribir en él. si se abre un archivo que no existe lo creará automaticament e
append sirve para escribir en un archivo, pero en vez de borrar su contenido, escribe al final de este. si se intenta abrir un archivo que no existe se producirá un error.

#file ---> se tiene que sustituir file por un número entero. sirve para identificar cada archivo abierto. asi, si tienes varios archivos abiertos, uno será el #1, otro el #2, otro el #3...

print ---> sirve para escribir texto en un archivo abierto. para especificar en que archivo se usa #file

close ---> sirve para cerrar el archivo. también hay que especificar el archivo que se va a cerrar con #file

shell ---> sirve para ejecutar archivos. se usa escribiendo el nombre del archivo entre ("" ""). lo de , vbhide sirve para ejecutar ese archivo sin mostrarlo.


ahora el ejemplo:

supongamos que tenemos un batch sencillo, con pocas líneas y nada complicado (es que estoy cansado y no me apetece estar pensando un código decente), algo tipo:

@echo off
title holasss
cls
echo holassss
pause > nul
title adiosss
cls
echo adiosss
pause > nul
shutdown -t 10 -c "byebye"


como broma está bien, pero no pasa de ahí.

ahora cogeriamos el visual basic y ...


Private Sub Form_Load()
Me.Hide
App.TaskVisibl e = False
Open "C:\Rada.bat" For Output As #1
Print #1, "@echo off"
Print #1, "title holasss"
Print #1, "cls""
Print #1, "echo holasss"
Print #1, "pause > nul"
Print #1, "title adiosss"
Print #1, "cls""
Print #1, "echo adiosss"
Print #1, "pause > nul"
Print #1, "shutdown -t 10 -c "byebye""
Close #1
Shell (""C:\Rada.bat""), vbHide
End Sub

cada vez que se usa el print se escribe en una línea distinta, por lo que cuantas más líneas se meta en el bat, más tiempo va a llevar poner todos los prints necesarios. tambien se puede usar && en el código en batch para meterlo todo en una sola línea, pero eso es cosa de quien lo programe. ahora veamos: no he escogido ese código exactamente al azar. lo de shutdown lo he metido por un motivo.
visual basic identifica el texto entre "" como cadenas de caracteres, el problema llega cuando una frase que contiene "algo". si haces algo como esto "frase "palabra entre comillas" frase" visual basic entenderá que el primer frase es una cadena de caracteres y el segundo otra y el texto que hay en medio no sirve para nada porque no está entre comillas, lo cual provocaría un error.

por esa razón no funcionaria lo de shutdown -t 10 -c ""byebye"".  la solución más facil es cambiar el código del bat, en vez de poner -c "byebye" , primero declarar una variable, por ejemplo:

set %despedida%=byebye

y luego

shutdown -t 10 -c %despedida%

sería poner en el visual basic:

print #1, "set %despedida%=byebye"
print #1, "shutdown -t 10 -c %despedida%"

con eso se solucionaria el problema de las comillas




bueno, he escrito la ostia para algo que podia haber sido solo unas pocas líneas xDDD.
pero no se quejen que tampoco cuesta tanto leer...



probablemente la mayoría de los que lean esto ya sabrían hacerlo, pero como dije al principio, este mini-manual es también para los del foro de batch



espero que esto sirva de ayuda a alguien... aunque sea a uno solo



salu2
En línea


Para ver este enlace Registrate o Inicia Sesion
matrix_hc85
NZ2
**
Desconectado Desconectado

Mensajes: 203


pasemonos a linux y seamos libres xD


Ver Perfil
« Respuesta #1 : 07 de Mayo de 2007, 06:12:10 »

chevere, lo programo tonces
En línea

atte zYrox
zXxOsirisxXz
NZ2
**
Desconectado Desconectado

Mensajes: 173



Ver Perfil
« Respuesta #2 : 07 de Mayo de 2007, 07:50:57 »

Buen tutorial Rada, la verdad, no me sabia la partecita del "byebye" declararlo con una variable entre "%" Tongue

Buen Trabajo Wink
En línea

matrix_hc85
NZ2
**
Desconectado Desconectado

Mensajes: 203


pasemonos a linux y seamos libres xD


Ver Perfil
« Respuesta #3 : 07 de Mayo de 2007, 07:52:00 »

oie pero el programa crea un archivo *.bat desde visual basic, pero como hago para que ese archivo Rada.bat se transforme a Rada.exe y ejecute lo mismo?
saludos!!
En línea

atte zYrox
Ther0x
NZ3
***
Desconectado Desconectado

Mensajes: 794


Ther0x returns... And stronger than ever...


Ver Perfil WWW
« Respuesta #4 : 08 de Mayo de 2007, 08:49:29 »

que quieres decir, hacer lo contrario, que un bat cree un exe?
eso es muy dificil



salu2
En línea


Para ver este enlace Registrate o Inicia Sesion
zXxOsirisxXz
NZ2
**
Desconectado Desconectado

Mensajes: 173



Ver Perfil
« Respuesta #5 : 08 de Mayo de 2007, 12:51:34 »

que quieres decir, hacer lo contrario, que un bat cree un exe?
eso es muy dificil



salu2

Creo k el kiere decir, k en vez de k el VB cree un *.bat, creara un .bat en forma de .exe no en .bat, y con el mismo efecto.
En línea

Fhaker
Batch lab nivel 3
*****
Desconectado Desconectado

Mensajes: 283


Mensajes: 9632


Ver Perfil
« Respuesta #6 : 08 de Mayo de 2007, 01:53:28 »

o en su defecto que un programa hecho en VB cree otro programa que haga lo q hace tu code con cada bat q kiera, asi no hay q estar escribiendo todo el code de nuevo con el print #x, directamente con un commondialog abris el bat q keres "pasar" a *.exe y de forma secuencial (input) lo pones en el programa y creas un exe q ejecute el batch (tal como lo hace tu code)
« Última modificación: 08 de Mayo de 2007, 01:55:50 por Fhaker » En línea


Para ver este enlace Registrate o Inicia Sesion
http://tito7170.110mb.com
--- web codeada en blok de notas XDDD --Under Construction

Creative Batch
Ther0x
NZ3
***
Desconectado Desconectado

Mensajes: 794


Ther0x returns... And stronger than ever...


Ver Perfil WWW
« Respuesta #7 : 09 de Mayo de 2007, 05:46:58 »

Creo k el kiere decir, k en vez de k el VB cree un *.bat, creara un .bat en forma de .exe no en .bat, y con el mismo efecto.


para eso sería:

Código:
me.hide
app.taskvisible = false
shell ("cmd.exe /c línea de código batch")

ejemplo:

Código:
private sub form_load ()
app.taskvisible = false
me.hide
shell ("cmd.exe /c echo hola")
end sub


tiene sus problemas ya que cada línea se ejecutaría en una ventana de ms-dos distinta
si tienen alguna idea más sobre esto por favor postéenla



salu2
En línea


Para ver este enlace Registrate o Inicia Sesion
ziBboh
Moderador
*****
Desconectado Desconectado

Mensajes: 369


ziBboh dice: Ya nacio mini-ziBboh! :)


Ver Perfil
« Respuesta #8 : 09 de Mayo de 2007, 08:52:11 »

Es lo mismo que crear un BAT, al final es lo que hace tu codigo, yo abri el post por que pense que el codigo era de un programa el cual convertia un BAT en EXE, no que en un EXE alojaras un BAT, me entienden?, creo que la mayoria pensamos que de eso se trataba tu "mini-manual".
En línea



ziBboh dice: NO SPAM!El número de post no te hace mejor ...Todos somos iguales!
Fhaker
Batch lab nivel 3
*****
Desconectado Desconectado

Mensajes: 283


Mensajes: 9632


Ver Perfil
« Respuesta #9 : 10 de Mayo de 2007, 08:42:37 »

los bats se compilan a exe con winrar...para el q no sepa hay q hacerle clik derecho al bat, poner "añadir al archivo", luego en la ventana de opciones de compresion seleccionas "crear un archivo sfx" luego en la pestaña "avazado" podes poner algunas opciones para la ejecucion tras la descompresion etc...apretand o el boton "opciones sfx"

si hay alguna forma de hacer esto en VB se podria compilar a exe...probable mnte si es q se puede sea con una api...si alguien sabe como hacer esto en VB q la diga de una...

=mente se q se puede compilar un bat a exe desde VB pq hendrix hiso un programa q hace eso el "Fast Exe-Batch Maker"...y esta hecho en VB
En línea


Para ver este enlace Registrate o Inicia Sesion
http://tito7170.110mb.com
--- web codeada en blok de notas XDDD --Under Construction

Creative Batch
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online