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.