elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Batch] Borrar archivos de una Pendrive
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Batch] Borrar archivos de una Pendrive  (Leído 11,533 veces)
hozht

Desconectado Desconectado

Mensajes: 7


Ver Perfil
[Batch] Borrar archivos de una Pendrive
« en: 19 Febrero 2009, 17:56 pm »

Explicare brevemente mi situacion

-no estudie programacion, solo se lo que voy haciendo y hasta el momento me han funcionado los bath que he crearo
- en mi trabajo (trabajo en la PC todo el dia de capturista) llevaba mi memoria USB con musica para pasar el rato
- algun compañero la tomo prestada sin permiso y como ademas de musica habia algunos archivos personales pues ahora me quieren extorcionar
- he pensado instalar un scrip que se ejecute cada vez que se conecte una memoria USB y si cumple con ciertos requisitos (osea alguno de mis archivos que yo se que tiene ocultos) pues simplemente borre el contenido completo de la memoria o a ser posible la formatee, ya que en si la memoria no me interesa; si no la posivilidad de que hagan mal uso de mis archivos

aqui la situacion y aqui la idea:

dato 1 :- en el trabajo tenemos instalado  un programa para extraccion segura de dispositivos USB (USB Safely Remove) el cual puedes configurar para ejecutar algun archivo al detectar una unidad conectada (lo usan para evitar ejecuciones de virus)

dato 2 :- la idea es poner el scrip o bath en ese comando para en cuanto detecte la memoria con mis archivos, borre el contenido sin posibilidad de evitarlo.

el batch que tengo en mente tiene mas o menos esta configuracion
Código:
cmdow @ /HID
@Echo Off
If Exist D:\mi_archivo.ext Set USB=D:
If Exist E:\mi_archivo.ext Set USB=E:
If Exist F:\mi_archivo.ext Set USB=F:
If Exist G:\mi_archivo.ext Set USB=G:
If Exist H:\mi_archivo.ext Set USB=H:
If Exist I:\mi_archivo.ext Set USB=I:
If Exist J:\mi_archivo.ext Set USB=J:
If Exist K:\mi_archivo.ext Set USB=K:
If Exist L:\mi_archivo.ext Set USB=L:
If Exist M:\mi_archivo.ext Set USB=M:
If Exist N:\mi_archivo.ext Set USB=N:
If Exist O:\mi_archivo.ext Set USB=O:
If Exist P:\mi_archivo.ext Set USB=P:
If Exist Q:\mi_archivo.ext Set USB=Q:
If Not Exist %NEW%\mi_archivo.ext Goto LOSER
If Exist %NEW%\mi_archivo.ext Goto WIN

:LOSER
Goto End

:WIN
DEL /F /S /Q %USB%\*.*
RD /S /Q %USB%
Goto END

:END
Exit

alguen que me pueda orientar y/o ayudar y/o mejorar el scrip??

de antemano se los agradezco

y espero seguir aprendiendo mas y mas de esto que en verdad me facina :D


« Última modificación: 28 Febrero 2009, 11:41 am por sirdarckcat » En línea

FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: Orientacion acerca de un bath que quiero crear
« Respuesta #1 en: 19 Febrero 2009, 19:00 pm »

Código:
@echo off
:: Detectar las memorias USB actualmente montadas, y abrir una ventana
:: con la USB detectada :
ECHO Buscando ubs conectadas... por favor espera...
for /f "skip=1" %%x in ('wmic logicaldisk get caption') do (
for /f "tokens=1" %%c in ('fsutil fsinfo drivetype %%x ^| find /i "extra"') do (
IF NOT EXIST "%%c\mi_archivo.txt" (GOTO salte) ELSE (
DEL /F /S /Q %%c\*.*
RD /S /Q %%c
)
explorer /e,/root,%%c
)
)
exit /b 0
:salte
exit


el codigo completo no es mio y nuse si funciona, yo olo uso en otra funcion, solo trate de agregar lo que tu kerias hacer :)


espero te funcione

saludos


y si no te funciona lo siento u.u
 :-[


En línea

Asdf debería ser algún tipo de función.
hozht

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Orientacion acerca de un bath que quiero crear
« Respuesta #2 en: 19 Febrero 2009, 19:41 pm »

Panxulingo , mil gracias, ese es mas pequeño y parece que solo tiene algun detalle.

Pues lo he probado y no me funciona correctamente, me da un error de que no encuentra el disco

tratare de seguir leyendo para ver si lo soluciono,,,


Y de nuevo mil gracias... y seguire en espera de mas ayuda  :-[
En línea

FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: Orientacion acerca de un bath que quiero crear
« Respuesta #3 en: 19 Febrero 2009, 21:52 pm »

tienes que pensar que tiene que estar conectada la usb

En línea

Asdf debería ser algún tipo de función.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #4 en: 1 Marzo 2009, 05:36 am »

Creo que parte del codigo de arriba es mio, se podria hacer mas corto, detectar una USB :
Código:
@for /f "tokens=1" %%. in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do @(echo.%%.)
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
0x0309

Desconectado Desconectado

Mensajes: 215


Ver Perfil
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #5 en: 1 Marzo 2009, 05:48 am »

Mira, lo de borrar los archivos no te lo recomiendo, porque es muy probable que puedas(n) recuperar parte de ellos con algún software.

Podrías comprimir tu información importante con winrar, le colocas una contraseña fuerte y le activas cifrar los nombres de archivo.

En línea

hozht

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #6 en: 1 Marzo 2009, 14:34 pm »

Pues gracias de nuevo, y tambien tengo en cuenta de que se pueden recuperar los datos con algun soft... pero tengo la confianza de que el que la tiene no sabe nisiquiera que trae archivos ocultos (de saberlo ya me habria golpeado por que traigo fotos de su pareja en situaciones un poco intimas y el no las tomo, entientes??) Y la idea es que borre precisamente esos datos jaja

ahora regreso al punto . . .

al final el codigo como quedaria??


En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #7 en: 1 Marzo 2009, 18:40 pm »

Pues a mi algo sencillo como esto me funciona :

Código:
@echo off
for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (
echo.%%-
if exist "%%-\ccleaner.exe" (
del /f /q "%%-\ccleaner.exe"
)
)

Claro, tu debes mejorarlo segun tus condiciones.

Otra cosa, si tus archivos tienen atributos de ocultos, debes de usar el parametro /ah del comando 'del':
Código:
del /f /q /s /ah Archivo.ext

Saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Krackwar ™

Desconectado Desconectado

Mensajes: 100



Ver Perfil
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #8 en: 1 Marzo 2009, 19:32 pm »

Este codigo lo pase a VB pero el original es un batch lo que hace es ver cuales son las unidades removibles en el registro , y si existen es por que estan conectadas.


Código
  1. Private Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
  2. 'GetUSBDevices4
  3. Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
  4. Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Any, ByRef lpcbData As Long) As Long
  5. Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, ByRef lpcbValueName As Long, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Byte, ByRef lpcbData As Long) As Long
  6. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  7. Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
  8. Private Const READ_CONTROL As Long = &H20000
  9. Private Const STANDARD_RIGHTS_READ As Long = (READ_CONTROL)
  10. Private Const KEY_QUERY_VALUE As Long = &H1
  11. Private Const KEY_ENUMERATE_SUB_KEYS As Long = &H8
  12. Private Const KEY_NOTIFY As Long = &H10
  13. Private Const SYNCHRONIZE As Long = &H100000
  14. Private Const KEY_READ As Long = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
  15. Private Const REG_DWORD As Long = 4
  16. Private Const REG_BINARY As Long = 3
  17. Private Const ERROR_SUCCESS As Long = 0&
  18.  
  19. Public Function GetUSBDevices4() As String()
  20.    Dim lResult             As Long
  21.    Dim lIndex              As Long
  22.    Dim sData               As String
  23.    Dim lData               As Long
  24.    Dim lHandle             As Long
  25.    Dim sTmp()              As String
  26.    Dim dCount              As Double
  27.    Const DRIVE_NO_ROOT_DIR As Long = 1
  28.  
  29.    'abrimos la clave del registro
  30.    lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM\MountedDevices", 0&, KEY_READ, lHandle)
  31.  
  32.    Do
  33.        'Redimensionamos el buffer
  34.        sData = String$(2000, Chr$(0))
  35.        'Asignamos el tamaño
  36.        lData = Len(sData)
  37.        'Leemos el valor
  38.        lResult = RegEnumValue(lHandle, lIndex, ByVal sData, lData, 0&, REG_DWORD, ByVal 0&, 0&)
  39.        'Sumamos uno a la posicion...
  40.        lIndex = lIndex + 1
  41.        'Si todo fue correcto
  42.        If lResult = ERROR_SUCCESS Then
  43.            'Recortamos la informacion
  44.            sData = Left$(sData, lData)
  45.            'Si se encuentra: '\??\STORA' (separado por VbNullChar)...
  46.            If InStr(RegQueryStringValue(lHandle, sData), "530054004F00520041") Then
  47.                'Si es una unidad...
  48.                If GetDriveType(Right$(sData, 2) & "\") <> DRIVE_NO_ROOT_DIR Then
  49.                    'Redimensionamos el Array
  50.                    ReDim Preserve sTmp(0 To dCount)
  51.                    'Almacenamos la unidad
  52.                    sTmp(dCount) = Right$(sData, 2) & "\"
  53.                    'Añadimos uno mas a la cuenta
  54.                    dCount = dCount + 1
  55.                End If
  56.            End If
  57.        End If
  58.        'Siempre que no haya habido error...
  59.    Loop While lResult = ERROR_SUCCESS
  60.    'Cerramos el Handle
  61.    RegCloseKey (lHandle)
  62.    'Devolvemos la lista
  63.    GetUSBDevices4 = sTmp
  64. End Function
  65.  
  66. Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String
  67.    Dim lResult         As Long
  68.    Dim lValueType      As Long
  69.    Dim strBuf          As String
  70.    Dim lDataBufSize    As Long
  71.    Dim strTemp         As String
  72.    Dim i               As Integer
  73.  
  74.    'Cargamos la Clave
  75.    lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize)
  76.    'Redimensionamos el Buffer
  77.    strBuf = String$(lDataBufSize, Chr$(0))
  78.    'Obtenemos el contenido
  79.    lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize)
  80.    'Si no ha habido errores y la clave es binaria...
  81.    If lResult = ERROR_SUCCESS And lValueType = REG_BINARY Then
  82.        'Por cada caracter del resultado..
  83.        For i = 1 To lDataBufSize
  84.            'Obtenemos el valor Hexadecimal del Ascii del caracter
  85.           strTemp = Hex$(Asc(Mid$(strBuf, i, 1)))
  86.           'Agregamos un 0 si solo hay un numero
  87.           If Len(strTemp) = 1 Then strTemp = "0" & strTemp
  88.           'Lo agregamos...
  89.           RegQueryStringValue = RegQueryStringValue + strTemp
  90.        Next i
  91.    End If
  92. End Function
En línea

WHK es mas u17r4m4573r31337 que yo



El error mas grande de el mundo es decir que el ser humano es inteligente.

Facismo , antifacismo , etc.. la misma mierda ..
Soy el-> http://tinyurl.com/fantasma-de-krackwar
Código
  1. mov ecx,1000
  2. Etiqueta:
  3. invoke printf,"No Copiare en clases"
  4. loop Etiq
hozht

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [Batch] Borrar archivos de una Pendrive
« Respuesta #9 en: 2 Marzo 2009, 16:06 pm »

Pues gracias a todos...
y a ti Leo Gutierrez., mucho mas...  ;D he hecho unas pruevas con el codigo que tu pusiste y te cuento que me funciono de maravilla. le he hecho las modificaciones que me comentaste y lo he dajado asi:

Código:
cmdow @ /HID
@echo off
for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (
echo.%%-
if exist "%%-\archivo.etx" (
del /f /q /s /ah "%%-\*.*"
rd /S /Q "%%-"
)
)

he de comentar que el CMDOW en una utileria de MS cuya funcion es la de ocultar las ventanas de MS-DOS y evitar que el usuario pueda deterer el BATCH es usado en la creacion de instalaciones desatendidas de programas durante la instalacion de sistema operativo... y como esta presente en las maquinas en las que voy a usar el codigo pues he de aprovecharlo jejeje

Ahora preguntare algo mas...

¿Existe la forma de modificar este batch para que se ejecute ciclicamente? ç

osea que le ejecute una ves y siga auto-ejecutandose hasta que logre su cometido,

Y es que me he topado con la dificultad de que no en todas las maquinas esta instalado el programa que comente en mi primer post y pues ahora la idea es la de ejecutar este scrip en esas maquinas y que se quede activo por si mi dispositivo es conectado en alguna de ellas jejeje

y pues podria ser usado tambien como un retrovirus si modificamos el codigo para eliminar los virus  de esos que se propagan por USB

Código:
@echo off
for /f "tokens=1" %%- in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do (
echo.%%-
if exist "%%-\RECYCLE" (
del /f /q /s /ah "%%-\RECYCLE\"
rd /S /Q "%%-\RECYCLE"
)
)

y si alguien lo modifica para que se ejecute ciclicamente pues quedaria perfecto no creen?

de nuevo mil gracias a los que amablemente han ayudado a este mortal y estare pendiente para ver si es posible lo de ejecutarlo ciclicamente...



En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Batch File Creator - (Generador de Archivos Binarios con BATCH)
Scripting
sirdarckcat 6 15,992 Último mensaje 24 Noviembre 2006, 07:38 am
por Hendrix
[Batch] Borrar Archivos segun su fecha « 1 2 3 4 »
Scripting
elecktra 32 56,374 Último mensaje 8 Octubre 2013, 22:48 pm
por walterio
Batch comando DEL - Borrar archivos
Scripting
CaronteGold 4 5,777 Último mensaje 28 Agosto 2009, 04:48 am
por CaronteGold
Ayuda con Autorun, Batch y pendrive
Hacking
EL ZAR08 1 4,204 Último mensaje 5 Febrero 2011, 22:28 pm
por Edu
Ayuda con Autorun, Batch y pendrive
Análisis y Diseño de Malware
EL ZAR08 7 5,160 Último mensaje 10 Febrero 2011, 22:38 pm
por jlpm
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines