Existe uma maneira de ignorar o limite de 256 kB para uma tela de login personalizada do Windows 7?


10

Quando você usa um plano de fundo personalizado para a tela de login do Windows 7, o tamanho do arquivo de imagem é limitado a 256 kB. Existe alguma maneira de contornar esse limite?

Aviso : Antes de responder a esta pergunta, leia-a duas vezes e entenda o que estou pedindo. Estou não procurando qualquer programa que pode mudar a tela de login. Estou não está procurando um programa que pode redimensionar ou "otimizar" uma imagem. Estou procurando uma maneira de ignorar completamente o limite de tamanho do arquivo porque isso me força a salvar a imagem com uma configuração de baixa qualidade.


Parece óbvio que esse é um limite codificado ou apenas um limite de design. De qualquer maneira, não há uma solução fácil "inverter o interruptor", além de redesenhar seu próprio sistema operacional. 256KB apenas não se parece com um limite arbitrário imposta porque ninguém como 257 ou 258.
— surfasb

3
Como você diz, é óbvio que é um limite de design ou um limite que foi decidido e codificado. O que não segue naturalmente é que a maneira óbvia de contornar isso é escrever seu próprio sistema operacional. Mesmo um comentário troll sobre mudar para o Linux seria uma resposta melhor. :)
— nitro2k01 11/03/12

Eu tenho procurado algo semelhante, mas não encontrei nada. No entanto, agora posso usar imagens maiores que 256 KB no Windows 7 (usei imagem de 5,63 MB!). Não sei o que causou isso, então não posso fornecer nenhuma resposta específica. Mas se eu descobrir, definitivamente compartilharei #
— 23/1115

Encontrei a única maneira de contornar o limite, graças ao autor original do artigo , e eu o compartilhei. Dê uma olhada e marcar a minha resposta como aceite coz que merece :-)
— Sнаđошƒаӽ

Respostas:


2

Parece que o limite de 256 kB é um dado adquirido pela grande maioria da comunidade. Talvez você possa corrigir imageres.dllcomo sugerido pelo último post nesta discussão . As etapas necessárias aqui se resumem ao seguinte:

  1. Abrir %WINDIR%\System32\imageres.dllem um editor de recursos
  2. Extraia as imagens em arquivos
  3. Substitua-os por variantes personalizadas
  4. Coloque as imagens substituídas novamente em uma cópia do imageres.dll
  5. Substituir imageres.dll

11
Estranho, a discussão vinculada trata apenas da substituição dos fundos padrão, não do limite de tamanho.
— Surfasb

Essa resposta vinculada, de fato, não trata da razão fundamental.
— Surfasb

Por acaso, sim. Não consegui encontrar uma explicação do motivo do limite, apenas zilhões de textos que dizem que existe exatamente esse limite e você pode fazer qualquer coisa a respeito . Por isso sugeri o "segundo melhor".
— krlmlr

Isso funcionou como esperado. Eu tinha medo de que o arquivo fosse rejeitado, pois não correspondia mais à assinatura criptográfica, mas parece que isso se aplica apenas ao código do anel 0 (ou seja, drivers.) Eu sabia que tinha que haver um arquivo de recurso em algum lugar contendo a imagem, mas não sei onde. Eu teria desejado uma maneira menos hackiana, mas pelo menos isso resolve o problema em questão.
— Nitro2k01 11/03/12

5
Sim, com o custo de ter que lidar com a modificação de um arquivo do sistema. E se você não souber o que está fazendo, poderá bloquear-se facilmente se o arquivo copiado para a pasta system32 estiver corrompido. Eu recomendo ter um backup do arquivo, por exemplo, um live CD do Linux com o ntfs-3g (usei o GParted Live para esse fim), bem como o conhecimento de como restaurar o arquivo, se necessário. Se você não tiver certeza de que poderá restaurar o arquivo em caso de falha, não execute esta operação.
— Nitro2k01 12/03/12

6

Depois de pesquisar por um longo período de tempo, finalmente encontrei uma maneira de remover o limite de tamanho de arquivo de 256 KB na tela de logon do Windows 7. O processo é bastante simples e direto para os experientes, mas pode ser um pouco difícil para iniciantes. Vou tentar ser o mais explícito possível. Afinal, somos superusuários!

  1. Navegue para C: \ Windows \ System32 e faça um backup do arquivo authui.dll , talvez faça uma cópia e renomeie para authui_original.dll

  2. Faça outra cópia do arquivo e nomeie-o authui_working.dll

  3. Usando qualquer bom editor hexadecimal, como o Hex Workshop , abra o arquivo authui_working.dll

  4. Pesquise a palavra (Menu> Editar> Localizar ou ctrl + F):

    • para janelas de 32 bits: 3D 00 E8 03 00 73 51
    • para janelas de 64 bits: E8 03 00 41 3B C1 73 3E
  5. Agora substitua a palavra encontrada por:

    • para janelas de 32 bits: 3D 00 E8 03 00 90 90
    • para janelas de 64 bits: E8 03 00 41 3B C1 90 90

    Vá em frente e altere apenas os bytes que diferem, ou seja, apenas os dois últimos bytes, como 73 51alterados para 90 90no caso de 32 bits, e salve o arquivo.

    Se você está se perguntando qual é a alteração, está removendo a instrução que verifica o tamanho do arquivo e substituindo-o por duas instruções (chamadas nops ou nenhuma operação) que não fazem nada. Os bytes 00 E8 03 00 representam o limite de 256.000 bytes.

  6. Remendo feito! Agora substitua o authui.dll pelo arquivo corrigido authui_working.dll .

Você pode usar como quiser para substituir o arquivo. Por exemplo substituto . O que eu fiz é muito simples, usando o unlocker

  • Se você ainda não possui o unlocker, faça o download e instale
  • Clique com o botão direito do mouse no arquivo authui.dll e escolha o unlocker
  • No canto inferior esquerdo, selecione excluir (ou renomeie caso deseje manter um backup) e clique no botão Desbloquear tudo . Isso excluirá o arquivo imediatamente
  • Renomeie o arquivo authui_working.dll para authui.dll
  • Feito!

Para testar, copie uma imagem maior que 256 KB para a C:\Windows\system32\oobe\info\backgroundspasta em que as telas de logon personalizadas são colocadas. Você também precisa ter OEMBackgroundativado o registro, o que provavelmente já tem, pois, caso contrário, você não estaria lendo esta postagem em primeiro lugar! De qualquer forma, para ativar a OEMBackgroundnavegação para essa chave do Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Background

e defina o valor de OEMBackground1.

Por fim, pressione Win+ Le se surpreenda!

PS: todo o crédito é do autor deste artigo, de onde eu aprendi esse procedimento

PPS: Eu mantenho o uac desligado, portanto minhas instruções se aplicam exatamente somente quando o uac está desligado.


Método alternativo para substituir o arquivo. Tome posse do arquivo authui.dll , mova-o para fora do System32 e mova o arquivo corrigido com o mesmo nome para a pasta. O arquivo continuará sendo usado até a reinicialização. Somente após a reinicialização, você poderá excluir o arquivo e ver a alteração (imagens de login maiores sendo carregadas).
— 0rkan

11
Sim! Isso realmente me ajudou e foi a única resposta que encontrei que fez o trabalho. Além disso, você o coloca de maneira concisa e agradável, com uma explicação extra sobre como alterar a imagem. Continue aprendendo e compartilhando o conhecimento!
— 0rkan

11
ATENÇÃO! Não faça isso com o UAC, pois ele quebra a interface do usuário. Tive que conectar meu SSD a outro computador e copiar o arquivo de volta ao system32.
— Pontus Magnusson

11
@PontusMagnusson Obrigado pela sua adição. É por isso que toda vez que faço uma nova instalação do Windows, uma das primeiras configurações que faço é desativar o UAC! Não preciso do UAControl , quando estou no controle. ;-)
— Sнаđошƒаӽ

11
Esta é a resposta! Porém, não são necessárias ferramentas substitutas de terceiros nem mesmo a reinicialização, basta assumir a propriedade e o controle total das permissões, matar explorer.exepara liberar authui.dlle substituir ou editar a dll no local correto. Em seguida, reverta as permissões e a propriedade de volta aos valores originais ( NT SERVICE\TrustedInstaller) e inicie explorer.exe. Se isso não funcionar, verifique quais outros processos têm authui.dllem uso pesquisando alças / dlls no Process Hacker
— sunny moon
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.