|
Mostrar Mensajes
|
Páginas: 1 [2]
|
11
|
Programación / Scripting / Re: BAT&VBS:Codigo Dudoso
|
en: 12 Septiembre 2011, 18:36 pm
|
Bien Compaero S3kh, lo que piensas del code es correcto, primero intentar eliminar algunas carpetas dependiendo el nombre y luego intentar cambiar los atributos del Listado del Carpetas que hice Antes,.... Pero lo que en si quiero saber es, si me tiraria algun error en el cambio principal de atributos, justo aqui: For Each FALL In RSTEAM 'Aqui la Parte Dudosa - Accediendo a Cada Carpeta Listada. If FALL.Attributes<>16 Then 'Aqui Es la Parte Para Comprobar los Atributos de las Carpetas Antes Listadas(No Malware Se Supone). FALL.Attributes = 16 'Cambio de Atributos Principal. ¿Fallara? <----'Aqui la Linea de la Duda. If Err.Number<>0 Then Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:NoRestablished!" MFET.Close Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:Restablished!" MFET.Close End If End If Next Next 'Aqui Termina la Parte Dudosa.
Y si, voy a Intentar "Documentar" cada parte del code para un mejor entendimiento, ya que: "La información es libre" ¿no?... y por cierto, gracias por responder tan rapido.
|
|
|
12
|
Programación / Scripting / BAT&VBS:Codigo Dudoso
|
en: 12 Septiembre 2011, 07:57 am
|
Bien, pues para empezar quisiera agradecer de antemano a quien pueda ayudarme con mi poblema. -Hace un tiempo hice una aplicación para: 1; Eliminar archivos con extenciónes maliciosas. 2; Desocultar carpetas, ademas, eliminar aquellas que tengan un nombre como: "RECYCLER ó DaTa". 3;Terminar Procesos Locales y en la Misma Instancia "Inyectar Codigo" al archivo que terminara los procesos("kb.bat"). Nota: Todo Esto Lo Hara Sobre Unidades Extraibles, Excepto la Opción "3". Code entero para que sepan como funciona: On Error Resume Next Dim Drive_Map() ReDim Drive_Map(10) Dim Port_Map() ReDim Port_Map(10) Dim Bit_Map() ReDim Bit_Map(512) Set WshFSO = CreateObject("Scripting.Filesystemobject") Set WshShell = CreateObject("Wscript.Shell") User = WshShell.ExpandEnvironmentStrings("%UserName%") Temp = WshShell.ExpandEnvironmentStrings("%Temp%") Unit = Array("D","E","F","G","H","I","J","K","L","M","N") ExtE = Array("bat","BAT","cmd","CMD","com","COM","dll","DLL","exe","EXE","hsh","HSH","js","JS","jse","JSE","lnk","LNK","pif","PIF","scr","SCR") CarE = Array("Data","Restore","Recycler","System") 'Aqui las Probables Carpetas de Malware. ROOTF = WshFSO.GetAbsolutePathName(".\") Set PATH = WshFSO.GetFolder(ROOTF & "\" & "LOGS") CPATH = PATH.ShortPath c = 0 For i=0 To 10 Step 1 If (WshFSO.DriveExists(Unit(i))) Then Drive_Map(c) = Unit(i) c = c + 1 End If Next e = 0 For j=0 To c-1 Step 1 Set LIST = WshFSO.Drives(Drive_Map(j) & ":") If LIST.DriveType = 1 Then Port_Map(e) = Drive_Map(j) e = e + 1 End If Next Do FASM = InputBox("Elija Por Numero La Opción Deseada:"+Chr(10)+"1;Eliminar Virus De Unidades Con Registros."+Chr(10)+"2;Desocultar Carpetas De Unidades."+Chr(10)+"3;Terminar Procesos Locales Por Selección.","KILL BYTES","2",5000,7000) Loop Until IsNumeric(FASM) Select Case (FASM) Case (0): WScript.Quit Case (1): Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "Session: " & User & " - Files" MFET.Close f = 0 For k=0 To e-1 Step 1 Root = Port_Map(k) & ":\" Set PathA = WshFSO.GetFolder(Root) Set FILES = PathA.Files For Each FILE In FILES Bit_Map(f) = FILE f = f + 1 Next Next For l=0 To f-1 Step 1 Set Cmp_File = WshFSO.GetFile(Bit_Map(l)) If Cmp_File.Attributes<>0 Then Cmp_File.Attributes = 0 End If RFILE = Bit_Map(l) For m=0 To 29 Step 1 If WshFSO.GetExtensionName(RFILE) = ExtE(m) Then WshFSO.DeleteFile RFILE, True If Err.Number<>0 Then Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&Bit_Map(l)&Chr(34) & " - Status:NoDeleted!" MFET.Close Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&Bit_Map(l)&Chr(34) & " - Status:Deleted!" MFET.Close End If End If Next Next Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "End Session Of: " & User & " - Files" MFET.WriteBlankLines(1) MFET.Close Case (2): Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "Session: " & User & " - Folders" MFET.Close For m=0 To e-1 Step 1 STEAM = Port_Map(m) & ":\" Set FSTEAM = WshFSO.GetFolder(STEAM) Set RSTEAM = FSTEAM.SubFolders For u=0 To 3 Step 1 CARPF = STEAM & CarE(u) Set CARPA = WshFSO.GetFolder(CARPF) CARPA.Attributes = 16 If Err.Number=0 Then If (WshFSO.FolderExists(CARPF)) Then Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&CARPF&Chr(34) & " - Status:Deleted!" MFET.Close WshFSO.DeleteFolder CARPF, True End If Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&CARPF&Chr(34) & " - Status:NoDeleted!" MFET.Close End If Next For Each FALL In RSTEAM If FALL.Attributes<>16 Then FALL.Attributes = 16 If Err.Number<>0 Then Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:NoRestablished!" MFET.Close Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:Restablished!" MFET.Close End If End If Next Next Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "End Session Of: " & User & " - Folders" MFET.WriteBlankLines(1) MFET.Close Case (3): Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "Session: " & User & " - TaskKiller 2.0" MFET.Close Do MASK = MsgBox("¿Desea Terminar Más Procesos?",vbYesNo+vbQuestion,"¿Opción?") If MASK = vbYes Then TASK = InputBox("Escriba El Nombre Del Proceso Que Desea Terminar:","TaskKiller 2.0","EXPLORER.EXE",5000,7000) 'Aqui el InputBox. VAR = Len(TASK) If VAR<>0 Then Set FET = WshFSO.OpenTextFile(Temp & "\" & "K-B\" & "KB.BAT",2,True) FET.WriteLine "@echo off" FET.WriteLine "taskkill /f /im " & TASK '<---- En El InputBox se Prodra Agregar Codigo Batch Con: "& comando" - Inyectar Codigo. FET.WriteLine "If %ErrorLevel%==0 echo NOERR>%Temp%\K-B\0" FET.WriteLine "If %ErrorLevel%==1 echo ERR1>%Temp%\K-B\1" FET.WriteLine "If %ErrorLevel%==128 echo ERR128>%Temp%\K-B\128" FET.WriteLine "@exit" FET.Close WshShell.Run Temp & "\" & "K-B\" & "KB.BAT", 0, True If (WshFSO.FileExists(Temp & "\" & "K-B\" & "0")) Then WshShell.PopUp "Se Pudo Terminar El Proceso:¡Terminado!",5,"¡Terminado!",vbOKOnly+vbInformation WshFSO.DeleteFile Temp & "\" & "K-B\" & "0", True Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&TASK&Chr(34) & ": No Error" MFET.Close ElseIf (WshFSO.FileExists(Temp & "\" & "K-B\" & "1")) Then WshShell.PopUp "No Se Pudo Terminar El Proceso:¡No Terminado!",5,"¡No Terminado!",vbOKOnly+vbCritical WshFSO.DeleteFile Temp & "\" & "K-B\" & "1", True Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&TASK&Chr(34) & ": Error 1" MFET.Close ElseIf (WshFSO.FileExists(Temp & "\" & "K-B\" & "128")) Then WshShell.PopUp "No Se Pudo Encontrar El Proceso:¡No Encontrado!",6,"¡No Encontrado!",vbOKOnly+vbCritical WshFSO.DeleteFile Temp & "\" & "K-B\" & "128", True Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&TASK&Chr(34) & ": Error 128" MFET.Close Else WshShell.PopUp "Ocurrio Un Error Desconocido:¡Desconocido!",5,"¡Desconocido!",vbOKOnly+vbCritical End If WshFSO.DeleteFile Temp & "\" & "K-B\" & "KB.BAT", True End If Else Exit Do End If Loop Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine "End Session Of: " & User & " - TaskKiller 2.0" MFET.WriteBlankLines(1) MFET.Close Case Else: WshShell.PopUp "Comando Desconocido:¡Error!",5,"¡Error!",vbOKOnly+vbCritical End Select On Error GoTo 0
Mi duda radica en esta parte del code: For m=0 To e-1 Step 1 STEAM = Port_Map(m) & ":\" 'Aqui Empieza a Listar. Set FSTEAM = WshFSO.GetFolder(STEAM) Set RSTEAM = FSTEAM.SubFolders 'Aqui Acaba de Listar. For u=0 To 3 Step 1 CARPF = STEAM & CarE(u) Set CARPA = WshFSO.GetFolder(CARPF) 'Aqui la Probable Ruta de La Carpeta con Malware. CARPA.Attributes = 16 'Aqui Intenta Quitar Los Atributos a la Carpeta del Malware. If Err.Number=0 Then 'Aqui, Si Falla al Cambiar los Atributos Tal Vez no Existe la Carpeta. If (WshFSO.FolderExists(CARPF)) Then 'Aqui Comprueba si Verdaderamente Existe la Carpeta. Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&CARPF&Chr(34) & " - Status:Deleted!" MFET.Close WshFSO.DeleteFolder CARPF, True 'Aqui Elimina la Carpeta(Si Existio) End If Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&CARPF&Chr(34) & " - Status:NoDeleted!" MFET.Close End If Next For Each FALL In RSTEAM 'Aqui la Parte Dudosa - Accediendo a Cada Carpeta Listada. If FALL.Attributes<>16 Then 'Aqui Es la Parte Para Comprobar los Atributos de las Carpetas Antes Listadas(No Malware se Supone). FALL.Attributes = 16 'Cambio de Atributos Principal. ¿Fallara? <---- Aqui la Linea de la Duda. If Err.Number<>0 Then Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:NoRestablished!" MFET.Close Else Set MFET = WshFSO.OpenTextFile(CPATH & "\" & "K-B.LOG",8,True) MFET.WriteLine Chr(34)&FALL&Chr(34) & " - Status:Restablished!" MFET.Close End If End If Next Next 'Aqui Termina la Parte Dudosa.
Aqui lo que hago es Listar los Subdirectorios de las Unidades Removibles uno por uno, pero mi pregunta principal es: ¿No Afecta Listar las Subcarpetas Primero y Luego Eliminar las que Estan en el Array "CarE"?. Es decir, en la comprobación de Atributos que hago despues ¿No me saltara algún error por que falten las carpetas antes mencionadas?, si es que existen en la USB claro. No se si ¿me di a entender bien?... Modificado Para Mejor Entendimiento y Corregir Unas Faltas de Ortografía.
|
|
|
|
|
|
|