[TIP] Como “actualizar” de una versión de Windows a una versión inferior.

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jmtella
    Administrator
    • Nov
    • 20578

    [TIP] Como “actualizar” de una versión de Windows a una versión inferior.

    En general, al instalar por encima (online upgrade) desde una ISO nos deja conservar los ficheros y la configuración de Windows. Pero si intentamos hacer un downgrade, es decir pasar de una build con un numero de versión (no de build, sino de versión) a una inferior, no sale el tic de conservar configuración y solo nos deja hacer una instalación limpia.

    Este es el caso por ejemplo, si queremos bajar de un server 27.xxxx (developer) a la versión del server 24H2 retail (26,100) o si queremos para un Windows 11 24H2, a una versión previa 23H2, etc. Incluso el método que voy a exponer permitirá pasar de un W11 a un W10 conservando la configuración actual.

    Necesitamos para ello modificar un solo byte de una dll: la que reside en \sources\setupcompat.dll de la ISO de instalación

    Para hacerlo, copiamos el conido de la ISO a una carpeta local, y ahora necesitaremos las siguientes herramientas:
    1. Un “descompilador” -herramientas para hacer ingeniería inversa- como por ejemplo el IDA Free: https://hex-rays.com/ida-free/
    2. Un Editor Hexadecimal: https://mh-nexus.de/en/hxd/
    Pasos a realizar:
    1. Descomprimimos la ISO en una carpeta local.
    2. Usando IDA Free abrimos el fichero \sources\setupcompat.dll. Dejamos por defecto todo lo que nos vaya preguntando y seleccionaos el archivo en el botón “new”.
    3. En la herramienta vamos a “Search -> Text” para buscar el texto:
    Código:
    ConX::Setup::Common::CWindowsVersion::IsLaterThan
    Marcando el check de “Find all occurrences”


    Nos la muestra y seleccionamos la que no tenga nada en “instrucciones”



    Un doble click en ella y nos mostrará la lógica de dicha función:



    Descendemos hasta localizar:



    Y lo seleccionamos. Ahora vamos en el menú a “Edit -> Patch Program -> Change Byte” y veremos:



    Es importante apuntar el File Offset que he marcado. Con esto, ya podemos cerrar la herramienta, y abrimos el editor hexadecimal que he citado antesy abrimos la misma DLL y navegamos hasta la dirección 0x3B788 que nos ha indicado el programa anterior. -esta dirección es diferente para cada build-



    Como podemos ver, en dicha dirección está la instrucción B8 01 que buscábamos. Cambiamos el 01 por 00 y guardamos la DLL.
    Con esto, ya podremos instalar y nos ofrecerá guardar configuración al instalar por encima.
  • noSign
    Super Moderator
    • Dec
    • 4380

    #2
    Originalmente publicado por jmtella Ver Mensaje
    En general, al instalar por encima (online upgrade) desde una ISO nos deja conservar los ficheros y la configuración de Windows. Pero si intentamos hacer un downgrade, es decir pasar de una build con un numero de versión (no de build, sino de versión) a una inferior, no sale el tic de conservar configuración y solo nos deja hacer una instalación limpia.

    Este es el caso por ejemplo, si queremos bajar de un server 27.xxxx (developer) a la versión del server 24H2 retail (26,100) o si queremos para un Windows 11 24H2, a una versión previa 23H2, etc. Incluso el método que voy a exponer permitirá pasar de un W11 a un W10 conservando la configuración actual.

    Necesitamos para ello modificar un solo byte de una dll: la que reside en \sources\setupcompat.dll de la ISO de instalación

    Para hacerlo, copiamos el conido de la ISO a una carpeta local, y ahora necesitaremos las siguientes herramientas:
    1. Un “descompilador” -herramientas para hacer ingeniería inversa- como por ejemplo el IDA Free: https://hex-rays.com/ida-free/
    2. Un Editor Hexadecimal: https://mh-nexus.de/en/hxd/
    Pasos a realizar:
    1. Descomprimimos la ISO en una carpeta local.
    2. Usando IDA Free abrimos el fichero \sources\setupcompat.dll. Dejamos por defecto todo lo que nos vaya preguntando y seleccionaos el archivo en el botón “new”.
    3. En la herramienta vamos a “Search -> Text” para buscar el texto:
    Código:
    ConX::Setup::Common::CWindowsVersion::IsLaterThan
    Marcando el check de “Find all occurrences”


    Nos la muestra y seleccionamos la que no tenga nada en “instrucciones”



    Un doble click en ella y nos mostrará la lógica de dicha función:



    Descendemos hasta localizar:



    Y lo seleccionamos. Ahora vamos en el menú a “Edit -> Patch Program -> Change Byte” y veremos:



    Es importante apuntar el File Offset que he marcado. Con esto, ya podemos cerrar la herramienta, y abrimos el editor hexadecimal que he citado antesy abrimos la misma DLL y navegamos hasta la dirección 0x3B788 que nos ha indicado el programa anterior. -esta dirección es diferente para cada build-



    Como podemos ver, en dicha dirección está la instrucción B8 01 que buscábamos. Cambiamos el 01 por 00 y guardamos la DLL.
    Con esto, ya podremos instalar y nos ofrecerá guardar configuración al instalar por encima.
    No aparecen las imágenes en tu mensaje

    Comentario

    • noSign
      Super Moderator
      • Dec
      • 4380

      #3
      Saldrá pantalla de inicio negra y fallos en la tienda.


      Hay que hacer una depuración.:

      You will probabaly have some issues like black login screen and Windows store/start menu not working.

      So you need to repair your windows store after downgrade to fix these issues.
      1. Delete any StateRepository* inside C:\ProgramData\Microsoft\Windows\AppRepository folder, you probably need to done this under Win PE enviroment otherwise it might cause BSOD.
      2. Run add-appxpackage -register "C:\Windows\SystemApps\*\AppxManifest.xml" -disabledevelopmentmode under powershell to restore system apps. Press Ctrl+Alt+Del to sign out then sign in again, now your login screen and star menu should working again.
      3. Run add-appxpackage -DisableDevelopmentMode -Register "C:\ProgramData\Microsoft\Windows\AppRepositor y\*\ AppxManifest.xml" -verbose under powershell twice to fix Microsoft Store and other core components.
      4. Run add-appxpackage -DisableDevelopmentMode -Register "C:\Program Files\WindowsApps\*\AppxManifest.xml" -verbose under powershell twice to fix 3rd party Microsoft Store Apps.

      Comentario

      • jmtella
        Administrator
        • Nov
        • 20578

        #4
        Originalmente publicado por noSign Ver Mensaje
        Saldrá pantalla de inicio negra y fallos en la tienda.


        Hay que hacer una depuración.:

        You will probabaly have some issues like black login screen and Windows store/start menu not working.

        So you need to repair your windows store after downgrade to fix these issues.
        1. Delete any StateRepository* inside C:\ProgramData\Microsoft\Windows\AppRepository folder, you probably need to done this under Win PE enviroment otherwise it might cause BSOD.
        2. Run add-appxpackage -register "C:\Windows\SystemApps\*\AppxManifest.xml" -disabledevelopmentmode under powershell to restore system apps. Press Ctrl+Alt+Del to sign out then sign in again, now your login screen and star menu should working again.
        3. Run add-appxpackage -DisableDevelopmentMode -Register "C:\ProgramData\Microsoft\Windows\AppRepositor y\*\ AppxManifest.xml" -verbose under powershell twice to fix Microsoft Store and other core components.
        4. Run add-appxpackage -DisableDevelopmentMode -Register "C:\Program Files\WindowsApps\*\AppxManifest.xml" -verbose under powershell twice to fix 3rd party Microsoft Store Apps.
        Solo si se pasa del 11 al 10. Si se cambia entre builds del 11 o bien del server developer al retail no es necesario (probados ambos)...

        Comentario

        Trabajando...
        X