![X 处的指令引用了 Y 处的内存。无法写入该内存](https://linux22.com/image/1474339/X%20%E5%A4%84%E7%9A%84%E6%8C%87%E4%BB%A4%E5%BC%95%E7%94%A8%E4%BA%86%20Y%20%E5%A4%84%E7%9A%84%E5%86%85%E5%AD%98%E3%80%82%E6%97%A0%E6%B3%95%E5%86%99%E5%85%A5%E8%AF%A5%E5%86%85%E5%AD%98.png)
TFG (全文件保护)是一款用于办公室的软件,用于保护客户的数据免遭恶意软件和用户的窃取。它会加密某些类型的文件(网络管理员选择要保护的文件类型),然后软件会加密所有类型的文件,并在用户双击打开文件时解密文件,修改后,软件会再次加密并将其存储在硬盘上。(所有过程均自动完成)。
好的,在我们的办公室,我们在很多客户端上安装了这个软件。它在几乎所有的系统上都能正常工作。但对于一些客户端,重新启动后,会出现以下窗口,什么都不起作用。用户唯一能做的就是关闭他的系统!(管理员必须远程删除它)
我的问题:
这张图片说明了什么?发生了什么?这个软件会伪造expolorer.exe
进程吗?还是它是操作系统和资源管理器进程之间的接口?它想在受保护的内存部分写入某些内容吗?
答案1
该位置的内存很可能已损坏,或受系统上其他应用程序的保护。鉴于系统由网络管理员管理,我预计所有系统上都安装了相同的软件,并且所有系统都属于同一型号/规格。在这种情况下,问题很可能是该特定地址的 RAM 损坏。
具体来说,该图表示,位于地址 ### 的 CPU 上的指令集尝试访问位于地址 ### 的 RAM,但失败了。这就像将一封邮件发送到错误的地址,然后邮件原封不动地退回给你。
答案2
这个软件会伪造 expolorer.exe 进程吗?
很可能不行,因为当您通过另一个程序的“文件打开”对话框打开文件时,这种方法不起作用。它可能作为文件系统过滤器 + 资源管理器插件(shell 扩展)运行。
我怀疑这个加密软件不能很好地与“问题”系统上的其他 shell 扩展协作。
它是否想在内存的受保护部分写入一些内容?
也许。如果地址在进程上下文中没有定义,您将收到相同的错误消息。一个典型的例子是地址 0,它在 Windows 进程中从未定义过。
但是,内存页面可以受到只读访问保护 - 这通常用于程序常量。如果进程尝试写入此类内容,您将得到与尝试写入未定义地址时相同的错误。
通常潜在的出现此类错误的原因是地址 (0x600507da) 错误。这反过来又是因为程序从中获取它的内存位置包含错误的内容,或者代码中存在错误。(实际上,“程序从中获取它的内存位置包含错误的内容”也可能是由存储它的代码中的错误引起的。)
请注意,这通常不表示位置 0x600507da 处的实际 RAM 存在问题。显示的地址都是虚拟地址,而不是物理 (RAM) 地址,并且无法预测程序运行过程中虚拟地址如何映射到物理地址,甚至无法预测程序运行过程中虚拟地址如何映射到物理地址。
不过,这可能是 RAM 的问题某处. 如果 RAM 丢失位,则代码查看地址 0x600507da 的原因可能是它应该查看(假设)0x600517da... 该地址已从 RAM 中的其他位置读取... 但 RAM 返回的是 0x600507da。但 RAM 错误并不常见。如果是这样的 RAM 错误,我们预计错误会“无处不在”,因为随着时间的推移,相同的 RAM 位置可以用于许多不同的进程和虚拟地址。
确实如此不是意味着内容指定位置 (0x600507da) 已“损坏”,即在写入之前具有错误的内容。写入内存根本不关心(双关语)之前的内容是什么。
我们也可以肯定地说,问题是不是该位置“受系统上其他应用程序的保护”。它是每个进程的虚拟地址,系统上其他进程都无法对其发表任何评论。