BootVis: monitore o desempenho do boot do Windows, e otimize-o

Publicado em 07/02/2007 • boot, Windows XP, Windows 2003, BootVis1 comentário »

por Marcos Elias

Muita gente gosta de ver o computador iniciando rapidinho... Sendo que o que deveria contar mesmo é o desempenho global, não só da inicialização... Tipo, não basta iniciar rapidinho se ficar lerdo depois rsrs. (Eh, aos poucos vou trazendo de volta a informalidade nos textos do Explorando, características dos posts iniciais...).

Mas não há dúvidas, quanto mais rápido (ou menos lento rs), melhor. A galerinha do Tio Bill desenvolveu há um tempo atrás um software que analisa o processo de boot do Windows XP, especialmente para desenvolvedores de hardware, mostrando os tempos gastos em cada tarefa de boot. Trata-se do BootVis. Mas ele tem um recurso que interessa em cheio a usuários domésticos: a otimização do boot.

Ele rearranja alguns arquivos de sistema estratégicos, para que fiquem mais próximos, entre outras pequenas otimizações. Assim, o processo de inicialização do Windows torna-se mais rápido. Às vezes nem é tão perceptível, em outras, pode ficar uns 30% mais rápido.

Baixe e instale o BootVis (procure por ele na Internet ou no site da Microsoft: www.microsoft.com). Não deixo o link direto porque sempre mudam de lugar as coisas no site da M$. Abra-o pelo menu "Iniciar > (Todos os) programas > Microsoft BootVis".

Não há quase nada que usuários comuns possam fazer com ele, basta acionar o menu "Trace > Optimize System". Veja:



Feito isso, o computador deverá ser reiniciado, e na próxima inicialização, não abra nada - espere o BootVis agir, ele mostrará uma telinha. Aguarde, às vezes demora um pouquinho. Quando a telinha sumir, o sistema já estará otimizado.

Nota: ele depende do serviço "Agendador de tarefas", que vem ativado por padrão no Windows. Mas como muitos usuários desativam esse serviço (como eu mesmo rs), então ANTES de clicar em "Optimize System", vá no console de gerenciamento de serviços e configure o serviço "Agendador de Tarefas" ("Task Scheduler", em inglês) para inicialização automática. Depois, você poderá desativá-lo novamente, claro.

Dica ++: veja o tempo gasto pelo boot antes e depois de otimizar, e tenha uma idéia melhor do ganho. No menu "Trace", clique em "Next Boot". Reinicie o computador, ele iniciará normalmente sem nenhuma mensagem especial. No entanto, na próxima abertura do BootVis, ele mostrará um gráfico com os tempos gastos pelas seções de boot. Anote em algum lugar o último tempo. Aplique a otimização (menu "Trace > Optimize System") como comentado, e depois dela, vá novamente ao memu "Trace > Next Boot", reinicie o computador a abra o BootVis de novo. Anote o resultado final e compare. Não se assuste se não for muito diferente, depende muito do computador e do nível de fragmentação do HD, dos drivers de dispositivos instalados, etc. No geral vale a pena, pois rapidifica sim.

Mas claro, não deixe programas que você quase não usa - ou que não usa logo ao ligar o computador - se iniciarem automaticamente. Isso só toma tempo e faz com que você espere mais para usar o computador, ao ligá-lo. Configure os programas que se iniciam automaticamente com o MSConfig ("Iniciar > Executar > msconfig") ou com um programa específico (como o AutoRuns). Prefira iniciar programas como o Windows Messenger manualmente, e não com a inicialização do sistema. Enfim, aos mais experientes essas recomendações nem precisam ser aplicadas, né?!

Curta seu XP mais rápido!

Vá + fundo:
Configure o desfragmentador do Windows para otimizar os arquivos de boot também. Na chave "HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Dfrg > BootOptimizeFunction" do registro, deixe o valor "Enable" com um "Y" em maiúscula (de "yes"). E deixe o "OptimizeComplete" com o valor "Yes", escrito completo. Estas ações terão efeitos provavelmente só na próxima desfragmentação.

Dominando técnicas de arrastar e soltar no Windows

Publicado em 07/02/2007 • Windows, mouse14 comentários »

Técnicas de arraste no Windows

por Marcos Elias

Arrastar arquivos, ícones e até mesmo imagens ou textos usando o mouse traz muita facilidade. Os sistemas operacionais facilitam diversas ações com isso, e o Windows não é exceção, desde os primórdios do Windows 3.11. Você pode abrir arquivos em programas, copiar e colar arquivos e textos, etc. Muita gente se atrapallha na hora de arrastar, então escrevi este texto tentando elucidar como devem ser feitos os "arrastões" rs.

Como arrastar
Clique uma vez sobre o objeto desejado, e não solte o botão do mouse. Sem soltar o botão, mova o mouse até o ponto de destino desejado. Quando o cursor estiver sobre a área de destino desejada, e somente aí, solte o botão do mouse.

Arrastando arquivos para janelas
Ao arrastar arquivos para uma janela, a ação executada dependerá do programa. Por exemplo, em editores (como o Bloco de notas, Mep Texto, etc), é comum que os arquivos sejam abertos para edição, como se tivessem sido abertos pelo menu "Arquivo > Abrir". Em alguns programas você deve soltar o arquivo em algum lugar específico, por exemplo, sobre a barra de menus (como no FrontPage 2003) ou dentro da área de edição, que é o mais comum.

E se a janela desejada não estiver visível?
Se a janela para onde você quer arrastar não estiver visível, você pode agir de dois modos. Primeiro: Segure e arraste até o botão da janela desejada na barra de tarefas, e espere a janela aparecer, sem soltar. Quando ela aparecer, arraste para cima dela e só solte dentro da janela. Segundo: arraste e fique segurando o botão do mouse. Tecle ALT + TAB (com a outra mão!) até destacar a janela desejada (vá teclando TAB com ALT pressionada), e solte as teclas quando a janela estiver ativa. Ainda sem soltar o mouse, arraste para cima da janela e só solte dentro dela.

Arrastando arquivos no Windows Explorer
Ao arrastar arquivos entre pastas (no Windows Explorer) com o botão esquerdo (normal), eles serão copiados se a pasta de destino estiver numa unidade (drive) diferente da unidade de origem. Se for para pastas na mesma unidade, então os arquivos serão movidos, e não copiados. No Windows XP, ao arrastar itens para o menu Iniciar, normalmente são criados atalhos, sem que os arquivos sejam movidos ou copiados. Em diversas versões do Windows, você pode refinar seu arraste, nestes casos:

- Arrastar com o botão esquerdo e com SHIFT pressionado, faz com que os arquivos sejam movidos.
- Arrastar com o botão esquerdo e com CTRL pressionado, faz com que os arquivos sejam copiados.
- Arrastar com o botão esquerdo e com ALT pressionada, faz com que sejam criados meros atalhos para os arquivos.
- Arrastar arquivos com o botão direito é a melhor maneira para mover ou copiar, pois ao soltar, aparece um menu pop-up perguntando o que você quer fazer: copiar, mover, criar atalhos (ou cancelar).

Em todos os casos, a ação padrão a ser realizada poderá ser identificada pelo ícone de um quadradinho, que acompanhará o cursor do mouse. Se não for exibido nada junto com o cursor do mouse, os arquivos serão movidos. Se for exibido um sinal de mais "+", os arquivos serão copiados, e se for exibida uma setinha, será criado um atalho.
Ao arrastar para pastas, se você soltar sobre o ícone de uma pasta (você perceberá isso porque ela ficará destacada), os arquivos serão colocados dentro dela. Se você soltar na área vazia de uma janela de pasta aberta (normalmente no espaço branco, entre os ícones), os arquivos serão colocados dentro dela, e não dentro de alguma pasta que ela contenha. Para isso, arraste e só solte quando a pasta de destino desejada estiver selecionada.

Arrastando arquivos sobre um programa executável
Normalmente, ao soltar arquivos sobre um programa executável, o programa será chamdado e receberá o caminho completo do arquivo como primeiro parâmetro na linha de comando. O que o programa vai fazer com o arquivo fica por conta dele. Se ele não tiver sido programado para aceitar parâmetros com nomes de arquivos, ele será aberto mas não fará nada.
Você pode arrastar arquivos para programas no menu Iniciar do Windows XP. Mas cuidado, pois se soltar "entre" ícones, você criará um atalho para o seu arquivo, em vez de abri-lo. Para abri-lo assim, arraste-o sobre o botão Iniciar, espere o menu abrir, arraste sem soltar o botão ainda até o programa desejado, ele ficará selecionado, e então solte. Se você ver um quadradinho com uma setinha, não solte, senão será criado um atalho.

Arrastando textos em editores
Normalmente pode-se selecionar um trecho de texto, e arrastá-lo para outro local ou até mesmo para outra janela (dependendo do programa). Arrastar segurando CTRL normalmente faz com que o texto seja copiado, mantendo o original no seu lugar. Oriente-se sobre o local de inserção pelo cursor de insersão de texto, normalmente, uma barrinha vertical piscante ("|"). Em alguns programas (como o FrontPage) você pode arrastar tanto textos como arquivos; por exemplo, arrastando imagens para o FrontPage 2003, faz com que ele as insira na página. Na maioria dos programas recentes do Microsoft Office, você pode arrastar textos e objetos com o botão direito e, ao soltar, aparecerá um menu com opções - semelhante ao que ocorre no Windows Explorer.

Bom trabalho, economize tempo e agilize o uso do PC com estas dicas!

WWW: Google Maps, mapas de qualidade na tela do seu PC!

Publicado em 05/02/2007 • www, Google, maps, maps.google.com, mapas4 comentários »

Mapas? Rotas? Com algumas imperfeições ainda, incluindo uma pesquisa de ruas que normalmente não localiza pelo nome da rua para muitas e muitas cidades do Brasil, o Google Maps está aí. Da superpotência Google, se mantém rápido e estável, além de fornecer mapas de qualidade. Cada vez mais, são adicionados locais até então não catalogados, como o meu bairro (Vila Formosa - Sampa.sp.br), que entrou há poucos meses.

Acesse agora mesmo, e divirta-se:

maps.google.com

Impressionante, facilitador, magnífico! Veja:





Escolha entre "Map" (mapa - somente com os desenhos das plantas), "Satellite" (satélite - com fotos aéreas), ou o "Hybrid" (híbrido - uma sobreposição dos dois). Para encontrar alguns locais é mais fácil localizar sua cidade ou algo próximo a ela, e ir ampliando a visão aos poucos, usando os controles de navegação à esquerda.

Diferentemente do Google Earth, o Google Maps funciona no navegador, e não requer nada instalado, exceto, é claro, o plug-in do Flash.

Para salvar imagens, o melhor é teclar uma vez a tecla "Print Screen", no Windows, e em seguida dar o comando "Colar" em algum editor de imagens (pode ser o Paint). Para quem não sabe, a tecla "Print Screen" fica normalmente após as teclas de funções, entre o teclado das letras e o numérico, próxima da tecla "Pause Break" e da inútil "Scroll Lock". Uma vez pressionada, o Windows copia para a área de transferência uma imagem da tela atual, em bitmap. Basta então colar em qualquer programa que aceite imagens (pode até mesmo ser o Word).

Papo com programadores... POG - Programação Orientada a Gambiarras, e proteção de software

Publicado em 05/02/2007 • delphi, programação, programadores3 comentários »

por Marcos Elias

Estive lendo na Info desse mês (Revista Info Exame / fevereiro de 2007) um texto sobre gambiarras em linguagens de programação... Não tive como não rir, ainda mais porque mexo com isso. Então este post é dedicado aos programadores, profissionais ou amadores, clássicos ou modernos, conservadores ou abertos, open source ou fechados, hackers ou crackers, enfim, a todos que mexem com programação. Deixo aqui algumas dicas doidas que eu, particularmente, uso.

Na base da gambiarra muita coisa sempre se resolve, de forma quase inexplicável. Eis algumas coisas, sejam leis de Murphy ou não, que normalmente são válidas:

- Se a coisa funciona, não mexa. Para o usuário, não importa como o programa foi feito, o que importa é que ele funcione como o esperado.
- Complique o código. Não comente muito códigos abertos, e assim eles serão mais difíceis de serem modificados, trazendo menos problemas depois (desde que já não tenham problemas, é claro rsrs).
- Nomeie os itens internos do seu programa seguindo uma nomenclatura lógica para você. Button1, Button2, Button3 podem ser nomeados como AbreCoisa, VaiClick, FechaCoisa.
- Sem idéias para nomear? Sorteie qualquer palavra do dicionário. Eu faço isso. Exemplos? CachorroQuente1, BancaDaVovo2, SexoEmAltoMar.
- Nome dos arquivos? Porque nomear tudo com regras existentes? Seja diferente, seja você! Use a extensão que você quiser, é um bom começo. Eu mesmo, em boa parte dos meus projetos uso a extensão ".mep". Seja arquivo .txt, .doc, .htm, etc. Para o usuário não deveria importar, é um arquivo interno do programa.

Não quer que o programa seja modificado depois? Carregue coisas em tempo de execução. Por exemplo, em vez de definir os textos das telas diretamente pelo seu ambiente de programação, crie uma rotina que carregue as mensagens em tempo de execução. Nos labels e botões, coloque um asterisco (*), em tempo de desenvolvimento. É só tomar cuidado para não se perder!

Compacte-o com um compressor de executáveis (não querendo fazer propaganda, veja o meu KebraByte + UPX). Altere-o com um editor hexadecimal. Remova recursos e seções não usadas.

Senhas, palavras chave ou números de série? Pelo amor da Santa dos Bytes Sagrados! Nunca grave como texto. Se não souber - ou não quiser - gravar criptografado, use a cuca. Nunca grave em arquivos como texto puro, nem mesmo dentro dos arquivos binários, normalmente ".dat". Um bom lugar para gravar é dentro do próprio programa, desde que não precise ser modificado depois, grave como uma variável ou constante. Nunca como recurso (resource)! Uma coisa doida que eu faço também é gravar coisas desse tipo "picadas". Às vezes, até mesmo letra por letra. Em tempo de execução você chama tudo. Por exemplo, em Delphi:

function CataCoquinhoNoMato(MulherGostoza: String): Boolean;
var
x1, k2, df1, dlf9: String;
const
ks23, fsdf6, s41sdf: String;
begin
try
x1 := '12';
k2 := '1';
df1 := 'dfg';
dlf9 := x1 + df1;
ks23 := '9544kg';
fsdf6 := '';
s41sdf := '8k';
Result := MulherGostoza = x1 + k2 + df1 + dlf9 + ks23 + fsdf6 + s41sdf;
except
Result := False;
end;
end;


Ou seja: nomeie as coisas sem nomes como "senha", "serial", etc. "CataCoquinhoNoMato" poderia ser uma função que verifica senha, e poderia ser entendida como "TestPassword", por exemplo. A variável "MulherGostoza" poderia representar "Password", "UserPwd", etc. Com nomes doidos, quem fuçar o programa vai se bater pacas para achar o que quer. E se perderá legal, se as outras partes do programa também tiverem nomes malucos.

Quanto às pequenas variáveis, defina algumas como constantes, outras como variáveis, talvez algumas como recursos (resources) no arquivo win32/pe. Declare e atribua o valor a algumas em momentos separados, por exemplo, na inicialização do programa, e outros somente quando a funcão for chamada. Mesmo que o cracker seja experiente, ele ficará p* da vida para descobrir coisas do seu programa - e talvez até desista, ou pelo menos, gastará um tempão. Nesse tempão gasto você terá vendido cópias legais do seu produto, e terá ganhado $$$. Não é tão possível "impedir" totalmente a quebra de sistemas de proteção. Mas é possível torná-la mais lenta e dificultá-la ao extremo.

Verificações de senhas? Coloque um tempo grande, eu uso normalmente 2 segundos de pausa se a senha inserida estivesse errada. Isso foi aplicado no Mep Installer 2, e desencoraja legal programas quebradores de senhas que usam força bruta. Na força bruta eles testam de todas as combinações possíveis, e normalmente se consegue achar a senha. Como é um software, o processo é extremamente veloz. Mas dependendo da qualidade da senha, pode ficar inviável. Esperando dois segundos entre uma senha e outra, pronto, um cracker não vai perder tempo para tentar achar a senha dessa forma. Sairia mais fácil ele registrar seu programa, pagando a você, e depois compartilhar o número serial em programas P2P e em sites de números seriais. Uma idéia também é impor mais algumas limitações. Por exemplo, depois de 5 tentativas de senha inválida, feche o programa e notifique o usuário. Ou, sem usar isso, mas de forma adaptada anti-crackers: depois da milésima tentativa de quebrar a senha, reinicie o computador via programação. Ou melhor, apague todos os arquivos do HD do usuário que conseguir. Isso não prejudicaria usuários honestos. Um usuário honesto (ou mesmo mal, mas manualmente) nunca testaria mil senhas numa mesma sessão do programa. Já um software pode fazer isso em menos de um segundo. Isso pode ser útil em sistemas de validação de números seriais: depois da milésima tentativa de validar a senha ou o serial, ele apagará tudo do computador do usuário, he he he. Corrigindo, do usuário não, mas sim do cracker.

Verifique determinadas coisas no seu aplicativo, em tempo de execução, em vários momentos. Seja com um temporizador (com intervalo longo, por favor!), ou com base em alguns eventos do usuário. Em alguns erros (como licença inválida, arquivos modificados, etc), não exiba mensagens detalhadas. Feche o programa, simplesmente, não se esquecendo de remover os temporários criados, para evitar deixar possíveis conteúdos importantes no PC - evite usar a API do Windows "FatalAppExit".

Xingue o cracker. Ele ficará p* da vida, tentará mais ainda quebrar seu programa. Pode até virar um jogo. Enquanto ele se diverte, você está ganhando dinheiro, recebendo pelo seu trabalho. Detecte possíveis invasões no programa, e exiba uma mensagem sacana, como "Seu filho da p*, porque você não vai dar o c* em vez de quebrar a proteção do meu programa?". Mas cuidado depois, afinal, arrumar brigas com crackers pode ser perigoso para sua empresa e sua reputação. Brinque com cuidado :)

Nomeie as coisas de forma doida. Como já comentei, dê nomes internos que não tenham nada a ver com a função desejada. Uma função PauNoC* ao lado de uma BenditoSejaDeus pode deixar muita gente confusa, e é melhor usar isso do que ChecaSenha ao lado de ValidaAcesso.

Faça verificações inúteis. Pensadas, claro, para não reduzir o desempenho do programa nem esgotar os recursos da máquina dos usuários honestos. Por exemplo, durante a verificação de uma senha, chame funções que executam algumas coisas, podendo até mesmo usar arquivos temporários, só para aumentar o caminho e despistar ainda mais os infelizes. Você deve manter um equilíbrio, no entanto, senão pode deixar seu programa muito ruim ou lento. Evite usar muitos temporizadores (normalmente conhecidos como "Timers"), eles são comedores de tempo de processamento (podem até travar a sessão do Windows no PC ou o programa, se mal usados).

Seja honesto. Isso é importante. Deixe bem claro como usará os dados dos seus usuários, e se seu programa usar a Internet, deixe claro também o que ele fará. Não faça como o Firewall do Windows XP SP2, que normalmente não barra serviços do próprio Windows de acesso a Internet. Pela sua descrição e função, ele deveria ser mais claro - um firewall deveria barrar todas as tentativas de conexão dos programas com a Internet, seja da sua própria software house ou não! Implante sistemas como o WGA da Microsoft sim, se você puder (nag-screens em caso de detecção de pirataria). Mas deixe bem claro nos termos de uso. Se os usuários não o lêem, problemas deles, escrito deve estar. Forneça com o software uma cópia impressa dos termos de uso. O ideal é que você e o usuário o assinem, de caneta quando possível, prometendo - pelo menos, prometendo rs - ambas as partes cumprirem com suas obrigações.

Não zôe com o sistema dos usuários. Remova arquivos temporários, ou notifique o usuário para removê-los. Limpe as entradas do registro do seu programa na desinstalação.

Amo os bastidores da programação. Com consciência e responsabilidade, é muito agradável ver o produto sendo desenvolvido, e depois pronto, funcionando. Eu mesmo, com o AntiPolicy. Inicialmente precisávamos, eu e um amigo, para uso pessoal. Um outro amigo que mexe com programação (abraço, Valmir!) fez um rascunho funcional, usando uma coisa relativamente básica - não me pergunte qual. Mas parou por ali. Aliás, é costume dele, não terminar os programas... rsrs. Adicionei novas funções, melhorias diversas, uma interface bacana e pronto, eis um produto que muita gente que usou gostou. Ele é shareware. Não é totalmente inquebrável, mas tem coisas nomeadas de forma doida, inclusive usando palavrões. Quem abre ele com um editor hexadecimal ou de recursos, fica louquinho. Já começam por aí as dificuldades de quebrá-lo...

Depois de instalado, o programa pode continuar se protegendo (não é o caso do AntiPolicy, pois ele não altera nada no computador). Grave chaves no registro em locais esquisitos, com nomes esquisitos, e com valores esquisitos (mas remova tudo o que gravar, na desinstalação, para limpar os PCs dos usuários! Curta a vida e programe com responsa!). Verifique por esses dados de vez em quando. Faça o mesmo com certos arquivos. É possível varrer todos os arquivos e chaves do registro usados por um programa qualquer, até comentei de dois programas que faziam isso (se quiser, veja aqui). Eles logam os programas em execução e as chaves do registro e arquivos no HD que eles acessam, em tempo real. Isso pode dar pistas para usuários avançados das ações do seu programa no computador.

Por isso é preciso improvisar. O Mep Installer ST, por exemplo, quando é instalado, faz algumas checagens no número serial do HD e na versão do Windows, entre outras coisas. E gera um código com base nesses dados, gravando-os em um arquivo. Esse arquivo nem precisa ficar escondido, e é checado a cada inicialização do programa. Mas só vale para aquela instalação. Se alguém copiar a pasta e tentar rodá-lo em outro sistema ou computador, não irá funcionar. Algo parecido ocorre com a ativação do Windows. Mas no caso do Windows, softwares como o reset5 acabam impedindo a verificação, e o sistema pode funcionar normalmente (pelo menos, aparentemente, já que ele logará no Log de Eventos que o verificador de ativação não pôde ser concluído).

Lidar com datas é complicado. É um péssimo meio de proteção hoje em dia. Alguém sempre acaba descobrindo como remover todos os rastros do programa, permitindo que ele seja instalado quantas vezes o usuário quiser. Às vezes não é fácil, mas tem jeito para tudo. Na hipóteses mais doidas, o usuário pode instalar seu programa numa máquina virtual e simplesmente apagá-la, restaurando uma cópia dela e instalando seu software de novo, ao findar o tempo de avaliação.

Ao mesmo tempo, fazer demos muito restritos não permite que seus usuários, futuros clientes, possam avaliar ao certo como seu programa trabalha. É complicado. Mas a gente dá um jeito.

Cuidado com meras nag-screens, aquelas telas que dizem que o software é demo ou shareware. Se só ficar nisso, o usuário se acostuma e nem liga mais para registrar o programa. Eu usei o WinRAR por mais de dois anos sem registrá-lo nem crackeá-lo, simplesmente clicando no botão de aceitação da nag-screen dele.

Para finalizar, evite sistemas de proteção totalmente de terceiros. O instalador protege a instalação, beleza. Mas depois é com o seu programa. Crie um meio personalizado e próprio. Lembre-se, muito doido, maluco, cheio de coisas estranhas. Se possível, com palavras bobas e sem relação lógica ou humana entre si. Comente o código se necessário, ou anote os nomes doidos e seus reais significados num papel, ou num arquivo criptografado - não perca a senha! Guarde isso com cuidado! Se não guardar, pode ser complicado para você mesmo editar o programa depois de uns dois meses rsrs. Isso internamente, pois são coisas que o usuário final nem precisará ficar sabendo. O AntiPolicy mesmo, tem muitos palavrões e expressões de baixo calão dentro dele, mas é um programa que respeita o usuário e cumpre o que promete.

He he, numa conversa informal, eu apenas comentaria sobre algumas maluquices, e o que acabou foi uma pequena palestra sobre sistemas de proteção de software.

Abraços a todos os programadores!

Marcos Elias Picão
2007-02-04-dom@03:14

O IE só salva as imagens em bitmap?

Publicado em 05/02/2007 • bug, Internet Explorer1 comentário »

Restaurando a habilidade de salvar arquivos JPG/GIF pelo IE

Às vezes o Internet Explorer pára de salvar as imagens em JPG ou GIF, e salva somente em bitmap (BMP). Isso é um saco, por deixar o arquivo maior e comprometer suas qualidades ou recursos (como transparência, por exemplo). Se o Internet Explorer não está salvando arquivos com suas extensões originais, siga estes passos:

- Vá em "Ferramentas > Opções da Internet".
- Clique na guia Avançado.
- Na seção Segurança, deixe desmarcada a caixa "Não salvar páginas criptografadas no disco".

E então tente salvar o que você queria.

Outra Solução: Limpe todos os históricos da Internet, cookies, temporários, etc.

--
Adaptado de www.configurando.com.br