domingo, 14 de octubre de 2012

Como ejecutar archivos batch y comandos de forma invisible y ocultos


Crear  en lenguaje MSDOS, que al ser ejecutadas por el no muestren la   negra, o sea que las instrucciones se transmitan de forma oculta, sin ninguna señal que indique que se está procesando una orden de la  de CMD. Como copiar datos e información de forma automática de la computadora a  de  y viceversa, solo al insertarlos en el equipo.
 


Se puede ejecutar en Windows cualquier archivo batch de forma oculta, silenciosa e invisible, de manera que no se muestre el proceso en la consola de CMD.
Para eso es necesario crear un  escrito en lenguaje VBScript, que sea el que llame y ejecute el archivo batch y lo ejecute de forma oculta.
Los scripts son sencillas aplicaciones auto ejecutables similares a los batch, la diferencia es que contienen código escrito en lenguaje VBScript, una derivación del famoso Visual Basic de .
Para crear uno de estos scripts, solo es necesario pegar el código necesario en el Bloc de notas de Windows y guardar el archivo con cualquier nombre, pero que tenga la extensión de archivo: .vbs, en vez de la tradicional: .txt
 
 

Crear un script para ejecutar un archivo batch de forma oculta


Para crear el script necesario copia el siguiente código en el Bloc de notas y guárdalo con la extensión .vbs.
Cambia "archivo.cmd", por la ruta y el nombre del archivo batch que se desea ejecutar.
Como comprobaras en el código, la opción "vbhide" es la que hace que no se muestre la pantalla al ejecutarse el batch.

set objshell = createobject("wscript.shell")
objshell.run "archivo.cmd",vbhide

Archivo batch para copiar datos de dispositivos en unidades USB de forma oculta


Archivo batch que permite copiar de manera eficaz datos de cualquier insertado en un puerto USB de la PC de forma oculta.
El método utilizado es un VBScript que al ejecutarlo llama al batch que hace la función de copia, este batch está diseñado de forma tal que automáticamente detecta en que unidad esta insertado el dispositivo y copia todo su contenido a una carpeta en tu PC, en este caso en la ruta D:\COPIA\.
Tanto el script como el batch se ejecutan de forma invisible por lo que todo el proceso es imperceptible.
El script tiene que estar en este caso en el mismo directorio que el batch, pero puedes crear un acceso directo y tenerlo por ejemplo en el escritorio.
En este caso el script ejecutará el copiador FLASHCopy.cmd por lo que al insertar cualquier  o disco duro USB en tu PC te permitirá con solo dos clics copiar su contenido de forma inadvertida.
Puedes descargar en el link más abajo un archivo que contiene FLASHCopy.cmd y el script, recuerda de tenerlos siempre en el mismo directorio.

Descarga en el siguiente vínculo el archivo que contienen los batch que se mencionan anteriormente, descomprímelos para poder usarlos. Estan incluidas las versiones para usarlo en Windows XP, Vista y 7

Copiar datos de forma automática de la PC a la memoria flash.


Es posible también hacer lo inverso, tener los archivos necesarios en la memoria  para que al insertarla en una PC, de forma automática se copien al dispositivo los archivos que hayas especificado de antemano en el archivo batch, esto se logra creando un archivo autorun.inf que indica a Windows iniciar el script y este a su vez ejecuta el batch que realiza la copia, todo esto funciona de forma automática e imperceptible para el usuario.
El código del archivo batch puede ser como el siguiente, que hace la copia de la carpeta Mis Documentos a la carpeta DATOS en la memoria, solo cambia la ruta por la de tu conveniencia, cópialo al Bloc de notas y guárdalo como Rcopy.cmd:
robocopy.exe /MIR "%userprofile%\Documents" %1\DATOS"

Si usas Windows XP y no has instalado robocopy.exe en tu sistema, entonces tendrás que utilizar en tu archivo batch el comando XCOPY como en el ejemplo siguiente:

XCOPY "%userprofile%\Documents" %1\DATOS" /E /F /I /C /Y

Para hacer el archivo autorun.inf copia el siguiente código al Bloc de notas y guárdalo como autorun.inf:

[Autorun]
Open= start.vbs
Icon=icons\drive.ico
Label=Test
UseAutoPlay=1
action=Abrir USB

El otro archivo a crear seria el script con el siguiente código, cópialo al Bloc de notas y guárdalo comostart.vbs:

set objshell = createobject("wscript.shell")
objshell.run "bin\Rcopy.cmd",vbhide
Lo siguiente es copiar start.vbs y autorun.inf a la raíz de la memoria y elbatch Rcopy.cmd al interior de una carpeta nombrada bin. Listo, cuando insertes la memoria en otra PC copiará la carpeta en este caso Mis Documentos a la carpeta DATOS de tu memoria flash.

Como cancelar el proceso de cualquier copia en curso


Recuerda que en el proceso de copia no se mostrará ninguna ventana, por lo que si tienes que cancelar la copia solo podrás hacerlo mediante el de tareas.
También tienes la alternativa de utilizar un batch para cancelar el proceso, para eso créalo con el siguiente código:
@echo off

taskkill /f /IM robocopy.exe
taskkill /f /IM cmd.exe

Para Windows XP seria de la siguiente forma:

@echo off

taskkill /f /IM xcopy.exe
taskkill /f /IM cmd.exe

Descarga en el siguiente vínculo el archivo que contienen los archivos batch que se mencionan anteriormente, descomprímelos para poder usarlos. Estan incluidas las versiones para usarlo en Windows XP, Vista y 7

La reproducción automática en Windows

➔ Los archivos batch anteriores solo funcionan si el equipo donde se introduce la memoria flash usa Windows XP.
➔ Si se tiene instalado Windows Vista, es necesario oprimir la tecla , ya que será la primera opción que aparezca en el cuadro de Autoplay.
➔ En el caso de Windows 7 no funcionarán de ninguna manera ya que este sistema operativo tiene deshabilitada por completo la reproducción automática en medios extraíbles, solo es posible hacerlos funcionar, ejecutando el archivo que inicia la  manualmente, en este caso el script "start.vbs".

Copiar datos de forma automática y oculta de una memoria USB a la PC o Notebook, como usar el comando SCHTASKS

Hay que tener en cuenta de que en Vista y aún más en Windows 7 esta deshabilitada la reproducción automática en unidades extraíbles, por lo que es imposible utilizar el archivo autorun.inf para planificar la ejecución de ninguna tarea mediante un batch ni cualquier otro archivo.


Entonces primeros vamos a comentar sobre como hacer backup o respaldo de datos en una memoria flash de forma automática.


Archivo batch para crear una copia de la información en una memoria USB


Este proceso puede hacerse posible utilizando un sencillo archivo batch, que al ejecutarse use el comando ROBOCOPY para realizar la copia.
Para usarlo solo es necesario tener una copia del archivo en la raíz de la memoria y ejecutarlo manual o automáticamente como veremos más adelante.
La ventaja de usar el comando ROBOCOPY para realizar el proceso de copia, es que por sus características, en caso de usarse repetidamente, solo copiará los archivos  que no existan en la carpeta de respaldo, nunca sobrescribirá los que ya tenemos guardados, a no ser que el archivo original se haya modificado.
Esto permitirá que el proceso de copia sea rápido y al mismo tiempo los archivos antiguos se mantengan intactos.

¿Cómo funciona el archivo batch de copia?


• Al usarse por primera vez, en caso de que no exista, creará una carpeta USB en el directorioMis Documentos.
• A continuación copiara en dicha carpeta, todos los archivos contenidos en el interior del dispositivo.
• Al finalizar mostrará el resultado de la copia realizada.
• Al ejecutarse en otro momento, solo copiará archivos nuevos que no existan en la carpeta de respaldo.

Requisitos para usar el archivo batch


Es necesario poseer en el sistema la aplicación ROBOCOPY, si tienes instalado Windows 7 o Vista, estos sistemas operativos lo incluyen.
En el caso de Windows XP, es necesario agregar manualmente la aplicación, solo mide (KB), aunque también es posible crear un archivo batch, que use la aplicacion XCOPY incluida en el XP, pero nunca tendrá la misma funcionalidad.

Descargar ROBOCOPY
Si usas Windows XP puedes descargar ROBOCOPY en el link más abajo y agregarlo a tu sistema. 
Para eso descomprime el archivo que descargues y la aplicación robocopy.exe en su interior muévala a la carpeta C:\Windows. 
Desde ese momento podrás ejecutar ROBOCOPY en la consola de CMD.

Ejecutar el archivo batch manual o automáticamente


Para ejecutar el archivo copiador manualmente, solo es necesario localizar el archivo batch llamado copiador en el interior de la carpeta bin y ejecutarlo.

En Windows XP

En caso de que se tenga instalado Windows XP, el archivo batch se ejecutará automáticamente al insertarse la memoria en el equipo, gracias al autorun.inf que iniciará la acción necesaria.

En Windows Vista

Solo es necesario presionar la tecla Enter, ya que será la primera opción que aparezca en la ventana de Autoplay, después de insertar el dispositivo al equipo.

En Windows 7

Es totalmente imposible ejecutar el archivo batch de forma automática ya que este sistema operativo tiene desactivada la reproducción automática en los medios extraíbles.
Es necesario hacerlo manualmente.

Crear manualmente el archivo batch para crear los respaldos


Para el que le interese crear el o los archivos batch manualmente, puede utilizar los códigos a continuación.
El que busque algo más fácil y sencillo, puede descargar en el vínculo más abajo un comprimido que contiene dos archivos, uno para Windows Vista y 7, que funciona usando ROBOCOPY y un archivo para Windows XP que utiliza el comando XCOPY, incluido en este sistema.
No obstante los usuarios de XP tienen la posibilidad de agregar ROBOCOPY a su sistema, como se indicó anteriormente.

Para crear el archivo batch copia el siguiente código, pégalo en el Bloc de notas y guárdalo con el nombre copiador.cmd
Para utilizar otra carpeta en vez de la predeterminada, especifica su nombre y ruta en el archivo.

Código para crear el archivo batch copiador

@echo off 
robocopy.exe %1\ "%userprofile%\Documents\USB" /E

Código para crear el archivo autorun.inf


El archivo autorun.inf es el que le indica a Windows cuando insertes la memoria flash, iniciar el archivo batch.
Haz lo mismo que en el caso anterior, copia el código y pégalo en el Bloc de notas y guárdalo con el nombre autorun.inf.

[Autorun]
Open= bin\copiador.cmd
Icon=icons\drive.ico
Label=Copiador
UseAutoPlay=1
action= Comenzar Copiador
Descarga en el siguiente vínculo el archivo que contiene los archivos batch que se mencionan anteriormente, descomprímelos para poder usarlos.
Estan incluidas las versiones para usarlo en Windows XP, Vista y 7

Otras opciones para crear respaldos del contenido de dispositivos USB


Código para crear un archivo batch similar al anterior, pero en este caso el respaldo se creará de forma diferente.
Cada vez que se vaya a hacer un proceso de copia, se creará una carpeta diferente, que tendrá la fecha y hora actual para identificarla.
Es útil cuando se necesita hacer el respaldo de dispositivos con contenidos diferentes.

@echo off

set tiempo=%time:~0,5%
set tiempo=%tiempo::=-% 
set fecha=%date:~0%
set fecha=%fecha:/=-%
set file=%fecha%_%tiempo% 

robocopy.exe %1\ "%userprofile%\Documents\USB\%file%" /E

Como usar el archivo AUTORUN.INF en la reproducción automática de medios


A continuación una explicación de todos los parámetros que se pueden especificar en el archivo AUTORUN.INF. 
En caso de usarlo en unidades ópticas funciona en todos los sistemas operativos.
Al emplearlo en unidades extraíbles funcionan todas las opciones solo en Windows XP, en Windows Vista es posible después que aparezca la ventana de AutoPlay y oprimir la tecla Enter.
En Windows 7 esta deshabilitada totalmente la reproducción automática, por lo que el AUTORUN.INF no tendrá ninguna utilidad en las unidades extraíbles USB.

[Autorun]
OPEN=start.vbs Especifica el programa a ejecutar de forma automática
ICON= icons\drive.ico Archivo que contiene el  o ruta a su localización
ACTION=Abrir USB
ACTION =@ start.vbs
Acción a ejecutar, en el caso de Vista permitirá que aparezca como la primera opción en la ventana de AutoPlay.
Label=Copiador Etiqueta que se mostrará en el explorador de Windows.
UseAutoPlay=1 Permite que se use el AutoPlay 

Opciones que se mostrarán en el  contextual:
shell\open=Abrir
shell\open\Command= start.vbs
shell\open\Default=1
shell\explore=Explorar
shell\explore\Command= start.vbs

En algunos casos es viable mediante la línea de comandos  una tarea que cada cierto tiempo ejecute el script que se vio en el primer caso, que verifica si hay algún dispositivo conectado en la PC y si es así copia su contenido a una carpeta nuestra de forma silenciosa e invisible.
Para eso podemos utilizar el comando SCHTASKS.

Utilizar el comando SCHTASKS para programar tareas


El comando SCHTASKS es creado para programar tareas en el equipo, con opciones más avanzadas de lo que permite el anterior comando AT, que todavía es posible de utilizar, pero solo en tareas sencillas.
SCHTASKS lista, crea, elimina o permite editar tareas programadas en el equipo.
Al usarlo sin parámetros muestra todas las tareas programadas en la PC, algunas que ni tenemos idea ya que las ordenan aplicaciones o el propio sistema sin enterarnos.
Usándolo con la opción /CREATE podemos planificar una acción, que es lo que se ordena en el siguiente archivo batch, ejecutar el script start.vbs cada 3 minutos.

Uso práctico del comando SCHTASKS


El siguiente batch hubo necesidad de crearlo y probarlo en solo cinco minutos, en una emergencia real de un caso de una persona allegada que esperaba a alguien (conocedor de informática y difícil de distraer), que venía a hacer una labor en su PC y tenía en su memoria flash un documento que le era muy necesario, pero que no iba a poder estar cerca ni en los alrededores de dicha PC.
En este caso se utiliza el siguiente batch llamado run.cmd

@echo off
SCHTASKS /create /SC MINUTE /MO 3 /tn copiar /TR C:\Hide\start.vbs
El archivo batch run.cmd ejecuta el comando SCHTASKS que crea una tarea programada para ejecutarse cada 3 minutos.

Dicha tarea es ejecutar el script start.vbs, el cual a su vez ejecuta de forma oculta el batch FLASHCopy.cmd que verifica si existe algún dispositivo extraíble conectado y si es así copia todo su contenido de manera imperceptible a la carpeta D:\COPIA.
Las opciones usadas en este caso con SCHTASKS son las siguientes:
/SC MINUTE = Frecuencia de la programación

/MO Número de minutos

/tn = Nombre de la tarea

/TR = Ruta de acceso y el nombre de archivo del programa que se va a ejecutar
Si te interesa descarga un paquete con todos los archivos en el link más abajo.

Para usarlo copia la carpeta Hide a la unidad C. 
Utilízalo con precaución, se adjunta un batch llamado detener_tarea para detener y eliminar la tarea creada, si no es así el script se mantendrá ejecutándose aunque reinicies el sistema y poco a poco te llenará el disco duro de datos que capture en las  o cualquier dispositivo USB insertado.
Puedes usar los siguientes comandos en la consola de CMD para verificar manualmente si la tarea se está ejecutando, para detenerla y eliminarla en ese mismo orden.
 
SCHTASKS /query /tn copiar
SCHTASKS /tn copiar /End
SCHTASKS /tn copiar /delete
 

 

No hay comentarios:

Publicar un comentario