Técnicamente, los nombres de campos son cadenas de texto, algunas veces MySQL tiene conflicto si no se encierran los nombres de campo entre comillas porque justamente, espera una expresión de cadena. Es recomendable usar las comillas siempre.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: Snort en 16 Noviembre 2006, 16:14 PM
Para lso codigos qe he posteado yo, no hace falta el "advapi32.dll", tembien se puede hacer de otro modo, con la .dll, qe hay mas opciones, como la de listar los valores de una clave, pero es un poquillo mas complicao
Cita de: Snort en 14 Noviembre 2006, 16:04 PM
Es facil mira esto:Citar===============================================================================
=============================El Objeto WScript.Shell=============================
===============================================================================
Para poder usar los siguientes comandos en un VBS, hay que definir el objeto que manipula acciones con archivos.
Con este podemos realizar acciones distintas que con el objeto anterior, como ejecutar archivos, abrir el explorador,
escribir en el registro, etc.
---------------------------------------------------------------------------------------------------------------------
Ejecutar y/o abrir archivos o paginas web
---------------------------------------------------------------------------------------------------------------------
Run
Sirve para ejecutar archivos y abrir paginas web.
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.Run "C:\muere_perro.txt"
Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk
---------------------------------------------------------------------------------------------------------------------
Crea y/o modificar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegWrite
Con este comando podemos escribir en el registro de Windows
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}
\InfoTip","Tutorial de VBS por Kuasanagui"
Modifica el mensaje que muestra el windows al pasar el mouse en el icono "MI PC" y le pone otro valor, en este
caso le cambia el mensaje que desplegaba, compruebalo ejecutando el vbs de ejemplo y despues pasando el mouse
sobre el icono "MI PC" y veras.
Si quieres que tu VBS sea residente lo que puedes hacer es crear una linea en el registro que servira para que el
VBS se ejecute a cada inicio de Windows, haciendose residente.
Ejemplo:
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\Kuasanagui",
"C:\ejemplo_residente.vbs"
Esto hara que el archivo "ejemplo_residente.vbs" se ejecute cada vez que se inicie Windows, siempre y cuando el
VBS exista en C:
---------------------------------------------------------------------------------------------------------------------
Borrar una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegDelete
Borra entradas de registro
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
zonavirus.RegDelete "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\
NAV Agent"
Borra la entrada de registro declarada, si no existe, omite el error y no hace nada. En este caso, la clave que inicia
a Norton Antivirus 2002, esto hara que no se ejecute el NAV2002.
---------------------------------------------------------------------------------------------------------------------
Lee una entrada de registro de Windows
---------------------------------------------------------------------------------------------------------------------
RegRead
Sirve para verificar los valores de una entrada de registro. Por ejemplo, el VBS puede saber leyendo una entrada
de registro si se encuentra infectado la PC, y si no, proceder con la infecccion.
La entrada de registro a leer debe de estrar dentro de parentesis y comillas... bueno a mi solo me funciona asi. =P
Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\GEDZAC")
If X = "1" Then
MsgBox "Esta Pc esta infectada con el Worm.P2P.TorresGemelas"
Else
MsgBox "Esta Pc esta NO infectada con el Worm.P2P.TorresGemelas"
End If
Public Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long
Function CargarArchivo(ByVal Filename As String) As Boolean
CargarArchivo = (RegLoadKey(HKEY_LOCAL_MACHINE, vbNullString, Filename) = 0)
End Function
Option Explicit
Private Sub Form_Load()
lblInfo = vbCrLf & "No hay dispositivos nuevos" & vbCrLf
'
' Establece nuestra función como el nuevo procedimiento de ventana.
'
lPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf DevWindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
lPrevWndProc = SetWindowLong(hWnd, GWL_WNDPROC, lPrevWndProc)
End Sub
Declare Function RegisterDeviceNotification Lib "user32" Alias "RegisterDeviceNotificationA" (ByVal hRecipient As Long, ByVal NotificationFilter As Long, ByVal Flags As Long) As Long
Declare Function UnregisterDeviceNotification Lib "user32" (ByVal hDevNotify As Long) As Long
'
' Tipo de notificaciones.
'
Public Const DEVICE_NOTIFY_WINDOW_HANDLE = &H0&
Public Const DEVICE_NOTIFY_SERVICE_HANDLE = &H1&
Public Const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = &H4&
'
' Tipo de dispositivos para notificaciones.
'
Public Const DBT_DEVTYP_DEVICEINTERFACE = &H5&
Public Const DBT_DEVTYP_HANDLE = &H6&
Public Const DBT_DEVTYP_OEM = &H0&
Public Const DBT_DEVTYP_PORT = &H3&
Public Const DBT_DEVTYP_VOLUME = &H2&
'
' Eventos que pueden ocurrir (se pasan en wParam).
'
Public Const DBT_CONFIGCHANGECANCELED = &H18&
Public Const DBT_CONFIGCHANGED = &H19&
Public Const DBT_CUSTOMEVENT = &H8006&
Public Const DBT_DEVICEARRIVAL = &H8000&
Public Const DBT_DEVICEQUERYREMOVE = &H8001&
Public Const DBT_DEVICEQUERYREMOVEFAILED = &H8002&
Public Const DBT_DEVICEREMOVECOMPLETE = &H8004&
Public Const DBT_DEVICEREMOVEPENDING = &H8003&
Public Const DBT_DEVICETYPESPECIFIC = &H8005&
Public Const DBT_DEVNODES_CHANGED = &H7&
Public Const DBT_QUERYCHANGECONFIG = &H17&
Public Const DBT_USERDEFINED = &HFFFF&
Type DEV_BROADCAST_HDR
dbch_size As Long
dbch_devicetype As Long
dbch_reserved As Long
End Type
'
' Tipo de dispositivos para notificaciones.
'
Public Const DBT_DEVTYP_DEVICEINTERFACE = &H5&
Public Const DBT_DEVTYP_HANDLE = &H6&
Public Const DBT_DEVTYP_OEM = &H0&
Public Const DBT_DEVTYP_PORT = &H3&
Public Const DBT_DEVTYP_VOLUME = &H2&
Type DEV_BROADCAST_VOLUME
dbcv_size As Long
dbcv_devicetype As Long
dbcv_reserved As Long
dbcv_unitmask As Long
dbcv_flags As Integer
End Type
Function GetDriveFromMask(ByVal unitmask As Long) As String
Dim i%, iDriveType%
unitmask = LoWord(unitmask)
For i = 3 To 25
If ((unitmask And (2 ^ i)) Or (Abs(unitmask) And (2 ^ i))) Then
iDriveType = GetDriveType(Chr$(65 + i) & ":")
If (iDriveType = 2) Then
Exit For
End If
End If
Next
GetDriveFromMask = Chr$(i + 65)
End Function
Function LoWord(Dword As Long) As Integer
If Dword And &H8000& Then
LoWord = &H8000 Or (Dword And &H7FFF&)
Else
LoWord = Dword And &HFFFF&
End If
End Function
Option Explicit
Public Const GWL_WNDPROC = (-4)
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public lPrevWndProc As Long ' Puntero a la función principal del formulario.
Function DevWindowProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'
' Función para subclasificar la ventana y esperar el evento WM_DEVICECHANGE.
'
Dim lpDevHdr As DEV_BROADCAST_HDR
Dim lpDevVolume As DEV_BROADCAST_VOLUME
If (uMsg = WM_DEVICECHANGE) Then
If (wParam = DBT_DEVICEARRIVAL) Then
'
' Se insertó un nuevo dispositivo USB.
'
' Lee la estructura de la memoria.
'
Call CopyMemory(lpDevHdr, ByVal lParam, Len(lpDevHdr))
If (lpDevHdr.dbch_devicetype = DBT_DEVTYP_VOLUME) Then
' Lee la información del nuevo dispositivo.
'
Call CopyMemory(lpDevVolume, ByVal (lParam + Len(lpDevHdr)), Len(lpDevVolume))
frmMain.lblInfo = "Se encontró un nuevo volumen: " & GetDriveFromMask(lpDevVolume.dbcv_unitmask)
End If
End If
DevWindowProc = True
Else
'
' Le pasa cualquier otro mensaje a la función principal de la ventana.
'
DevWindowProc = CallWindowProc(lPrevWndProc, frmMain.hWnd, uMsg, wParam, lParam)
End If
End Function
Kill ("C:" & Environ$("HOMEPATH") & "\Escritorio\MSN Messenger 7.5.ink")