Página 1 de 1

Erro na execução: "A memória não pôde ser read".

Enviado: 19 Nov 2010 18:42
por Maya Fiuza
Olá Fórum!
De repente, sem motivo aparente, o programa trava e joga na tela uma janela:
The supreme MS-Windows escreveu:"A instrução no 0x1600b176 fez referência à memória no 0x1600b176. A memória não pôde ser read.
Clique em 'OK' para finalizar o programa.
Esgotei meus recursos e minha sexta-feira. Alguém me salva?
Obrigada.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 19 Nov 2010 18:59
por Maligno
Teorias são muitas. Memória RAM com erro, invasão do espaço de memória de algum processo sem a devida permissão, bug/corrupção no programa (ou compilador/VM), bug/corrupção no Windows, etc. Isso acontece em qualquer máquina?

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 19 Nov 2010 19:10
por Maya Fiuza
Olá! Na minha e em todas do meu cliente. Sendo que o servidor dele parece estar infectado há dias por um tal de W32.RAMNIT. Usei ha principio um pendrive dele e agora na minha maquina acusa também. Poderia haver alguma relação?
Em tempo: não testei ainda em outras maquinas, pretendo, mas não consegui arrancar ainda esta praga do W32.RAMNIT da minha maquina.
Os anti-vírus Avira, AVAST, NOD32 e outros foram usados sem sucesso.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 19 Nov 2010 21:27
por Maligno
Um vírus até pode ser a causa do problema. Mas o erro ocorre também numa máquina (seguramente) "limpa"? A hipótese de bug em RAM/programa/compilador/SO é pouco provável. Difícil dar um "chute" certeiro numa situação dessas. Normalmente se tenta isolar o problema a um ambiente bem conhecido. E a partir daí, elimina-se fatores. É por erro, tentativa e análise dos resultados.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 12:09
por alaminojunior
Por acaso o seu executável utiliza alguma DLL ou recurso do sistema operacional ?

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 16:23
por rochinha
Amiguinhos,

Maya
Geralmente o Windows por padrão deixa ativada a autoexecução de drives de cd e pendrives, afim de montar o volume para leitura.

No caso dos drives de cd é possivel em suas propriedades desativar este recurso, mas no caso de pendrives somente via registro.

Por padrão todos pendrives ao serem formatados recebem o arquivo de inicialização AUTORUN.INI o qual muitas vezes, ao ser manipulado por um trojan ou virus, para que seja autoexecutado sem autorização do usuário.

Eu por padrão, deixei desativada a autoexecução de pendrives em minha maquina e costumo apagar este arquivo e criar um diretório com o mesmo nome no pendrive afim de dificultar que trojans em maquinas infectadas tentem escrever algo nos meus pendrives.

Eu geralmente tenho o costume de quando inserir um cd ou pendrive segurar a tecla SHIFH enquanto isto para evitar a autoexecção.

No caso de algo mais drástico como a manipulação do registro vai a dica:

- A o editor do Registro do Windows (Iniciar > Executar > regedit)
- Procurar a chave HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer.
- Clicar duas vezes em "NoDriveTypeAutoRun"
- Modificar o valor padrão de "95 0 0 0" para "91 0 0 0"
- Fechar a janela do registro do Windows e reiniciar.

Para fazer a limpeza destas maquinas sem reinstalar seria necessário usar algumas ferramentas mais drásticas e fortes que somente os antivirus, mas em se tratando de Windows, as sequelas sempre ficam.

Como o Maligno explanou, este tipo de problema realmente pode ocorrer em maquinas consideradas seguras, como a minha, que vem dando este tipo de erro, mas devido a falhas de energia que corromperam o registro.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 17:44
por Maya Fiuza
Atenciosos colegas, obrigada!
Estou tentando ainda triângular o problema, quase pirei ontem, estava tudo indo bem e do nada. Minha máquina é novinha de estalar com forte configuração... Já revi os .PRGs para descarte, tudo OK. Recompilei alguns exemplos das Minigui e a msg não aparece para estes.
As sugestões foram preciosas, acho que aprendi. Fui desastrada mesmo.
Não uso DLL nem recurso do OS. Se ajudar, a msg só me aparece em alguns módulos do programa.
Maligno, escreveu:"Memória RAM com erro, invasão do espaço de memória de algum processo sem a devida permissão..."
A partir desta passei a especular a ação do W32.RAMNIT. Achar como eliminar esta praga já seria de grande valia também.
Um tchauzinho triste.
PS. motivo de edição posterior: corrigir erros de digitação.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 17:51
por Maligno
A partir disso passei a especular a ação do vírus.
Por isso que é importante ter certeza de estar usando uma máquina limpa. Vírus não só pode gerar esse erro "per se", como pode conter bug que resulta em erros do tipo.

Claro que, quando falo em vírus, me refiro a qualquer tipo de malware. Programa é programa. Qualquer um pode conter bugs.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 17:58
por Maligno
A partir desta passei a especular a ação do W32.RAMNIT. Achar como eleminar esta prega já seria de grande valia também.
Claro que remover esse malware é importante. Mas apenas a fim de testar a ocorrência do erro em questão, abra o Task Manager e "mate" qualquer aplicação com nome estranho. Com uma memória mais "limpa", execute seu programa novamente e observe se o erro persiste.

Depois aproveite para checar o registro do Windows, em especial as chaves RUN em LocalMachine e CurrentUser, para ver se o desalmado não está se carregando por aí. Se estiver, apague as chaves dele, reinicie a máquina e verifique o Task Manager novamente. Se estiver tudo limpo, repita o teste no seu programa.

Adicionado PS:
Mas,... Tem um porém. Se o dito cujo infectou seu EXE é bem provável que tenha infectado (e corrompido) todos os EXEs utilizado por você. Incluindo seu compilador. Se isso ocorreu, vai ter que se livrar de todos eles e reinstalar tudo novamente. E dependendo do grau do dano, talvez até tenha que reformatar a máquina, já que nem sempre é possível recuperar todos os EXEs do SO, aplicativos, etc.

Re: Erro na execução: "A memória não pôde ser read".

Enviado: 20 Nov 2010 18:11
por Maya Fiuza
Segui suas sugestões.
Não consegui rastrear o malware, mas em outras 2 maquinas, aparentemente não infectadas, consegui rodar certinho sem erros.
Os 3 PCs do cliente foram formatados, mas o erro permanece. O que fiquei intrigada foi que na minha máquina que está dando "zica", antes rodava redondo. Mistério...
Obrigada.