El registro de Windows clave HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Conexiones contiene un valor binario llamado DefaultConnectionSettings que almacena todo tipo de datos sobre el usuario de configuración del proxy. ¿Cuál es el formato exacto de estos datos?

Todo lo que he podido averiguar hasta ahora es lo que está en este post del foro, que no está completa y parece estar equivocado en algunos aspectos.

InformationsquelleAutor Andrew Swan | 2010-11-26

4 Comentarios

  1. 6

    He encontrado esto tal vez les ayude!

    0.  keep this value
        1.  "00" placeholder
        2.  "00" placeholder
        3.  "00" placeholder
        4.  "xx" increments if changed
        5.  "xx" increments if 4. is "FF"
        6.  "00" placeholder
        7.  "00" placeholder
        8.  "01"=proxy deaktivated; other value=proxy enabled
        9.  "00" placeholder
        10. "00" placeholder
        11. "00" placeholder
        12. "xx" length of "proxyserver:port"
        13. "00" placeholder
        14. "00" placeholder
        15. "00" placeholder
        "proxyserver:port"
    if 'Bypass proxy for local addresses':::
        other stuff with unknown length
        "<local>"
        36 times "00"
    if no 'Bypass proxy for local addresses':::
        40 times "00"
    
    • Usted salvó mi día – he desactivado el proxy estableciendo #8 a 1 y funcionó !! 🙂 Yo estoy usando Windows 2008 R2, he instalado el IE 11, a continuación, desinstalar, ahora el diálogo de opciones de internet no funciona, así que he tenido que pelearme con el registro para deshabilitar el proxy.
  2. 4

    Lugar de leer/escribir el valor del Registro directamente, debe ser con WinInet del InternetQueryOption() y InternetSetOption() funciones en su lugar.

    Con eso dicho, echa un vistazo a estas:

    Cómo establecer ‘script de configuración automática» para una conexión de acceso telefónico mediante programación?

    http://www.visualbasicscript.com/fb.ashx?m=76412

    • Gracias por los enlaces, aunque no parecen aportar mucho al foro post enlazado en mi pregunta. Estoy seguro de cómo usar WinInet de Java, pero esa es otra cuestión.
    • … ahora me preguntaba como stackoverflow.com/q/4299481/10433
    • Sólo para hacerle saber, es InternetQueryOption no InternetGetOption. Acabo de pasar los últimos 10 minutos de búsqueda para obtener información acerca de la inexistencia de InternetGetOption!!
    • Usted no puede cambiar toda la configuración de proxy usando InternetSetOption, sólo lo básico. Registro es la única opción para modificar todos los ajustes disponibles.
  3. 1

    Simplemente quieres ampliar Zain Ali respuesta (como una respuesta, ya que no tengo suficientes puntos de reputación para el comentario), y por Supuesto, gracias a Zain para la publicación de la información que ellos hicieron como que me ayudó mucho cuando yo estaba tratando de encontrar el resto.

    El número 8 es un poco más complicado que simplemente mostrando que el proxy está deshabilitado o no. También establece otras dos casillas de verificación en la configuración.

    El número de ajuste de 8 a «01» desactiva la casilla para habilitar el proxy, y desactiva la casilla «Detectar la Configuración Automáticamente» y la casilla para utilizar una secuencia de comandos.

    La configuración del número 8 «0f» sin embargo permite todo.

    Para ser claros, este 8 byte es básicamente la configuración de banderas. El bit menos significativo del byte es siempre un «1» por lo que puedo decir. El segundo bit menos significativo es «1» si el manual de configuración de proxy casilla de verificación está activada. El 3er bit menos significativo es un «1» si la casilla para utilizar una secuencia de comandos está activada y usted proporciona una dirección para la secuencia de comandos. El 4 bit menos significativo es el de establecer la casilla «Detectar la Configuración Automáticamente» (básicamente, la configuración de estos bits a 1, marque la casilla, y de 0 desactiva ellos)

    He ido para ajustar «03», que permite sólo el proxy manual

    También, a «Otras cosas con longitud desconocida» no parece ser la correcta como la longitud es conocida. Cosas después de que se hace referencia es la lista de excepciones para el proxy delimitado por punto y coma. La longitud de esta lista es el byte de la derecha después de la «proxyserver:puerto». Que, combinado con el de 3 «00»s de relleno de cuentas para la diferencia de 4 bytes que se mencionaron como ser diferente dependiendo de lo que había.

    0.  keep this value
    1.  "00" placeholder
    2.  "00" placeholder
    3.  "00" placeholder
    4.  "xx" increments if changed
    5.  "xx" increments if 4. is "FF"
    6.  "00" placeholder
    7.  "00" placeholder
    8.  "03"=enable proxy, enable auto detect settings, auto script etc
    9.  "00" placeholder
    10. "00" placeholder
    11. "00" placeholder
    12. "xx" length of "proxyserver:port"
    13. "00" placeholder
    14. "00" placeholder
    15. "00" placeholder
    "proxyserver:port"
        "xx" length of proxy exception list
        "00" placeholder
        "00" placeholder
        "00" placeholder
    Proxy Exception list delimited by semi-colons (use "<local>" to exclude local addresses)
    36 times "00"
    

    He pasado bastante tiempo tratando de entender todo esto, así que espero que no me perdí de algo.

    He hecho un script por lotes donde se puede dar es la de servidor proxy y el puerto, junto con su lista de excepciones y se creará automáticamente el código binario y pegarla en el registro donde debe estar (suponiendo que el 8 byte es «03»).

    Sería trivial para cambiar el código para que solo imprima el archivo binario en lugar de simplemente sustituir la «reg add» de acuerdo con «echo %datos%».

    También tenga en cuenta que el script que he proporcionado a continuación está cambiando la clave HKLM como yo estaba usando la secuencia de comandos para configurar una máquina proxy de todo en conjunción con los Gpo. Cambiar a HKCU, en cambio, deben arreglar eso.

    Que se puede encontrar aquí (si eres bueno con el lote, siéntase libre de hacer la secuencia de comandos mejor como soy no muy familiarizados con él y creo que probablemente mostrará en el código): https://gist.github.com/hallzy/b7dfba5f71c0251f1139f8c531cd7817

  4. 1

    De Steven respuesta es bastante completa, sólo muchos de los «marcadores de posición» que me sorprendió. Mis investigaciones muestran, que la mayoría de ellos son enteros de 32 bits almacenados en formato little-endian (es decir, más bajo byte primera, es decir, 0xa1b2c3d4 ist almacenan como 0xd4 0xc3 0xb2 0xa1). Esto hace que la magia DefaultConnectionSettings bastante simple:

    4 bytes int: 0x46 or 0x3C (whatever that means)
    4 bytes int: counter, increment upon every change
    4 bytes int: proxy settings, i.e. a merge of these bits:
                                     0x1 always present
                                     0x2 enable manual proxy
                                     0x4 enable autoconfig
                                     0x8 enable autodetect
    4 bytes int: length of proxyServer string (can be 0)
    proxyServer string in ASCII (i.e. server:port)
    4 bytes int: length of proxyOverrides string (can be 0)
    proxyOverrides string in ASCII (domains separated by ; 
                                    use <local> for local override)
    4 bytes int: length of autoconfigUrl string (can be 0)
    autoconfigUrl string in ASCII
    4 bytes int: 0x00 or 0x01 (whatever that means)
    31 bytes: 0x00 (whatever that means)
    

Dejar respuesta

Please enter your comment!
Please enter your name here