当我们安装任何文件时会发生什么?

当我们安装任何文件时会发生什么?

我想知道,当我在 PC 上安装任何文件时,这些文件是如何安装的?幕后究竟发生了什么?例如,当我在 Windows 系统中安装 NetBeans IDE 时,当我运行它时,它如何确定 Java 是否已安装在我的系统中?它是如何工作的,在这种情况下,操作系统是否通过指出 Java 是否已安装来提供帮助?那么操作系统如何知道这一点?

答案1

对于每个操作系统和每个程序来说,该过程都是不同的。

在 Windows 上,如果程序依赖 Windows 安装程序来处理安装,那么操作系统负责了解安装了哪个版本的产品、系统上有哪些组件以及如何在卸载时清理它们。

如果某个程序未使用 Windows Installer,则安装程序将自行决定是否安装该程序。某些程序会将设置放在注册表中已知的位置。例如,您可以检查是否HKLM\Software\Microsoft\PowerShell\1\Install存在且等于“1”。其他程序可能有不同的行为。

答案2

取决于操作系统/安装程序,但本质上文件被提取到正确的位置,并且在 Windows 注册表项中输入指向这些文件。

如果你想知道提取了哪些文件以及注册表中放入了哪些条目,那么请安装沙盒在默认沙箱中运行安装程序并完成安装,然后您可以导航到沙箱所在的位置并查看放入了哪些文件......这里有很好的指南http://www.raymond.cc/blog/archives/2007/11/02/how-to-investigate-suspicious-file-using-sandboxie/

答案3

在 Windows 上,当您安装文件时,通常会有两组不同的项目被复制到系统中,位于两个截然不同的位置。

您看到的第一组项目是程序运行时使用的实际文件、.exe 文件及其库和文档,这些通常是您在“Program Files”目录中看到的内容。

第二组项目将是程序所需的所有配置位。这些配置位存储在所谓的注册表中。您可以将注册表视为专用于配置选项的文件系统,它容纳了所有内容。它是 Explorer 存储其设置的地方,它知道这些设置是为了运行特定文件类型、使用特定程序等等。

程序有固定的位置来放置自己的设置,通常每个版本的 Java 或 Netbeans 都会有一个固定的位置,它会写入一组包含可执行文件版本和位置等详细信息的字符串,以便另一个程序可以出现,检查它是否已安装,然后继续查明它是否是正确的版本以及在哪里可以找到它,而不必只运行“java.exe”并希望系统设置正确。

答案4

使用进程监控来自系统内部...

www.sysinternals.com

这是 Microsoft 提供的免费实用程序。它可让您跟踪安装程序或任何其他应用程序进程的活动。

您将能够准确地看到安装程序正在尝试访问哪些资源。这包括尝试访问文件系统中的文件和目录、Windows 注册表、网络活动和一些其他操作系统内容。

提示:进程监视器可以生成大量信息。为了更清楚地了解正在发生的事情,您需要尽早熟悉其过滤选项。

相关内容