Desarmando PuntoBat V3.0: El Código Detrás de “Quitar Bing” (Botón 3)

PuntoBat 3.0

Cualquier técnico de soporte en terreno conoce esta escena: un usuario intenta abrir una aplicación corporativa escribiendo su nombre en el menú de inicio de Windows. Se equivoca en una letra y, en lugar de decirle que el programa no existe, Windows congela el menú por medio segundo para buscar esa palabra mal escrita en internet utilizando Bing.

Esta integración web dentro del buscador local no solo ralentiza equipos de gama de entrada, sino que genera confusión y, en entornos corporativos, puede llegar a exponer nombres de herramientas o servidores internos a un motor de búsqueda público.

El Botón 3: Quitar Bing de PuntoBat V3.0 elimina este comportamiento de raíz, devolviéndole al menú de inicio su función original: buscar exclusivamente archivos y programas locales. Veamos cómo lo logramos inyectando claves de registro directamente desde C#.

private void btnBing_Click(object sender, EventArgs e)
{
    // AUDITORÍA: Registramos la intención del usuario de modificar el registro
    RegistrarLog("BOTON_UI", "Clic en Desactivar Bing del Menú Inicio", @"RegEdit: HKCU\Software\Microsoft\Windows\CurrentVersion\Search -> BingSearchEnabled = 0");

    // 1. INYECTAR EN EL REGISTRO DE FORMA SEGURA Y NATIVA
    try
    {
        // Abrimos (o creamos si no existe) la ruta exacta en el Regedit (HKCU)
        using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Search"))
        {
            if (key != null)
            {
                // Inyectamos la clave "BingSearchEnabled" con valor 0 (DWord)
                key.SetValue("BingSearchEnabled", 0, Microsoft.Win32.RegistryValueKind.DWord);
            }
        }

        // 2. AVISO DE ÉXITO
        MessageBox.Show("Búsqueda web de Bing desactivada del menú inicio con éxito.", "PuntoBat V3.0", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    catch (Exception ex)
    {
        // AUDITORÍA: Registramos si el sistema o un antivirus bloqueó el cambio en el registro
        RegistrarLog("ERROR_CRITICO", "Fallo al desactivar Bing en el Registro", ex.Message);

        // Si algún Antivirus bloquea el cambio, lo atrapamos y te avisamos en lugar de que el programa se estrelle.
        MessageBox.Show("No se pudo modificar el registro: " + ex.Message, "Error de Permisos", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Anatomía de la Inyección en el Registro

A diferencia de las versiones antiguas escritas en archivos .bat que dependían de llamar a comandos externos como reg add, en la arquitectura V3.0 interactuamos con el sistema operativo de forma pura y nativa mediante las clases Microsoft.Win32.Registry.

1. Manipulación Segura (using y CreateSubKey)

La instrucción CreateSubKey es estratégicamente superior a OpenSubKey. En las versiones más recientes de Windows, es posible que la carpeta Search ni siquiera exista dentro de la ruta CurrentVersion si el sistema es muy nuevo. CreateSubKey resuelve esto inteligentemente: si la ruta existe, simplemente la abre con permisos de escritura; si no existe, la crea al instante.

Además, al envolver la operación en una declaración using, nos aseguramos de que el programa libere inmediatamente el bloqueo sobre el registro de Windows tan pronto como se inyecta el valor, previniendo fugas de memoria.

2. La Clave Maestra (BingSearchEnabled)

Al inyectar el valor BingSearchEnabled y forzarlo a 0 como un DWord, le cerramos la puerta de comunicación a Cortana y al motor web en la cuenta del usuario actual (HKCU). El impacto es inmediato: el menú de inicio vuelve a sentirse ágil y las búsquedas se limitan estrictamente al disco duro local.

3. Blindaje contra Software de Seguridad (try / catch)

Modificar el Registro de Windows es una acción sensible. En infraestructuras corporativas con reglas estrictas, herramientas como Trellix, BitLocker o Microsoft Defender for Endpoint podrían interceptar esta acción y bloquearla preventivamente.

Si esto ocurre, el bloque catch hace su trabajo. En lugar de que PuntoBat sufra un cierre forzoso (el temido “PuntoBat dejó de funcionar”), el programa captura el error elegantemente. Le avisa al técnico mediante un MessageBox que los permisos fueron denegados y graba la excepción exacta en nuestro archivo de log local, permitiendo al administrador saber de inmediato que una política de seguridad (GPO) o un antivirus está interfiriendo.

Transparencia Total Recuperar la privacidad y el rendimiento del menú de inicio no requiere instalar programas de dudosa procedencia. Con el código abierto de PuntoBat V3.0, puedes auditar exactamente qué llaves del registro se están tocando en tu sistema.

Si quieres auditar el código completo o implementar la herramienta en tu infraestructura, puedes revisar el repositorio oficial en GitHub.

No responses yet

Agregar un comentario

Tu dirección de correo electrónico no será publicada. Los campos requeridos están marcados *