A instrução em X referencia a memória em Y. A memória não pôde ser escrita

1

O TFG (Total Files Gaurd) é um software usado em escritórios para proteger os dados do cliente contra ladrões por malware e usuários. Ele criptografa alguns tipos de arquivos (o Administrador da Rede seleciona o tipo que deseja proteger) e então o software criptografa todos os arquivos desse tipo e descriptografa o arquivo quando o usuário clica duas vezes nele para abri-lo e depois de modificá-lo e armazená-lo no disco rígido novamente. (Todo o processo é feito automaticamente).

OK, em nosso escritório, instalamos este software em muitos clientes. Funciona bem em quase todos os sistemas. Mas para alguns clientes, após o reinício, as janelas a seguir aparecem e nada funciona. A única coisa que o usuário pode fazer é desligar seu sistema! (e admin deve apagá-lo remotamente)

Minha pergunta:

O que essa imagem diz? O que está acontecendo? este software faz um processo expolorer.exe falso? ou é uma interface entre o sistema operacional e o processo do explorer? Quer escrever algo em uma parte protegida da memória?

    
por Abraham 22.11.2015 / 10:38

2 respostas

1

A memória nesse local está provavelmente corrompida ou protegida por outro aplicativo no sistema. Vendo como os sistemas são gerenciados por um Administrador de Rede, eu esperaria que o mesmo software fosse instalado em todo o sistema, e todos os sistemas são do mesmo modelo / especificação. Nesse caso, o problema é provavelmente a corrupção da RAM nesse endereço específico.

O que a imagem está dizendo, especificamente, é que um conjunto de instruções na CPU no endereço ### tentou acessar uma parte da RAM no endereço ###, mas falhou. É como enviar um email para o endereço errado e mandar de volta para você sem abrir.

    
por 22.11.2015 / 11:34
1

does this software make a fake expolorer.exe process?

O mais provável é que não, já que isso não funcionaria quando você abrir um arquivo através da caixa de diálogo "Arquivo aberto" de outro programa. Ele provavelmente funciona como um filtro do sistema de arquivos + plug-in do explorador (extensão do shell).

Minha suspeita é que este software de criptografia não está cooperando bem com alguma outra extensão do shell que também está no sistema de "problemas".

Does it want to write something in a protected part of memory?

Talvez. Você receberá a mesma mensagem de erro se o endereço simplesmente não estiver definido no contexto do processo. Um exemplo clássico é o endereço 0, que nunca é definido em um processo do Windows.

No entanto, é possível proteger páginas de memória para acesso somente leitura - isso é comumente usado para constantes de programa. Você receberia o mesmo erro se o processo tentasse gravar como faria se tentasse gravar em um endereço indefinido.

A razão usual subjacente para um erro como este é que o endereço (0x600507da) está errado. Isso, por sua vez, acontece porque o local da memória do programa contém o conteúdo errado, ou então há um bug no código. (Na verdade, "o local da memória da qual o programa conseguiu" contém o conteúdo incorreto "provavelmente também seria causado por um bug em qualquer código armazenado lá.)

Observe que isso geralmente não é indicativo de um problema com a RAM real no local 0x600507da. Os endereços mostrados são todos endereços virtuais, não físicos (RAM), e é imprevisível de uma execução de um programa para outro, e até mesmo de um momento para outro, como seus endereços virtuais são mapeados para os físicos.

Pode, no entanto, ser um problema com a RAM em algum lugar . se a RAM está perdendo bits, é possível que a razão pela qual o código está olhando para o endereço 0x600507da é que ele deveria estar olhando (digamos) 0x600517da ... aquele endereço sendo lido de algum outro lugar na RAM. mas a RAM retornou 0x600507da em vez disso. Mas erros de RAM não são muito comuns. Se fosse um erro de RAM como este, esperaríamos que os erros estivessem "em todo o lugar", já que com o tempo, a mesma localização de RAM pode ser usada para muitos processos e endereços virtuais diferentes ao longo do tempo.

Certamente não significa que o conteúdo da localização indicada (0x600507da) está "corrompido", ou seja, ter o conteúdo errado antes da gravação. Uma gravação na memória não liga para um bit (trocadilho intencional) do conteúdo anterior.

Também podemos dizer com certeza que o problema não é que o local é "protegido por outro aplicativo no sistema". É um endereço virtual por processo e nenhum outro processo no sistema pode ter algo a dizer sobre isso.

    
por 25.11.2015 / 00:30