【问题标题】:Raw disk access on Windows 8 [duplicate]Windows 8 上的原始磁盘访问 [重复]
【发布时间】:2022-04-14 13:30:37
【问题描述】:

我在 Windows 中访问原始磁盘时遇到问题。我用 Java 编写了程序,它与 USB 闪存设备一起工作,读取它的 MBR 等。设备以 RandomAccessFile 的形式打开。

如果我像普通用户一样打开 NetBeans 并由程序执行,我会遇到异常

Exception in thread "main" java.io.FileNotFoundException: \\.\PhysicalDrive2 (Отказано в доступе)
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:122)
    at main.USBFlashDevice.<init>(Main.java:90)
    at main.Main.main(Main.java:196)
Java Result: 1

如果我以管理员身份执行此操作,则一切正常。

当我在某人的 PC 上像平常用户一样工作时,我可以做些什么来执行程序和编辑 MBR?

【问题讨论】:

  • 出于安全原因,您不能这样做。
  • 很高兴知道Отказано в доступе 的意思是Access denied ...

标签: java windows-8 admin disk


【解决方案1】:

当我在某人的 PC 上像平常用户一样工作时,我可以做些什么来执行程序和编辑 MBR?

你不能。

  • 写入原始磁盘设备是一项潜在的危险操作。它可以有效地垃圾文件系统。
  • 即使是原始磁盘读取访问权限,您也可以读取被正常 Windows 访问控制拒绝的文件。

因此,任何访问原始磁盘的程序都必须具有管理员权限。操作系统坚持。注意:这适用于所有多用户操作系统,而不仅仅是 Windows。

您必须以管理员权限运行该程序。如果你真的在问如何做到这一点......你的问题是题外话。尝试在“superuser.com”上提问。


但我也应该说:

  • 写这种东西很危险,而且可能是个坏主意。使用现有的实用程序;例如由 Microsoft 或有信誉的第 3 方软件提供商提供的软件。

  • 如果您(真的)需要自己编写此代码,那么用 Java 编写可能是一个糟糕的选择。大多数人会使用 C 或 C++。

【讨论】:

    猜你喜欢
    • 2015-01-19
    • 2017-05-11
    • 2011-01-07
    • 2011-12-07
    • 2013-07-15
    • 2023-03-20
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多