繁体   English   中英

有没有办法在磁盘上找到文件的确切位置(地址)?

[英]Is there a way to find exact location ( adress ) of file on disk?

我正在为 Windows/Linux 开发一个使用 C++ 的软件。

我想在运行时创建一个文件(txt、json、许可证,你可以命名它),并将其保存在某处。 是否可以在 C++ 中获取该文件在磁盘上的确切位置,以便如果我重新启动应用程序并读取该地址(或其他地址),我将能够访问其数据?

这样做的目的是,如果有人将软件复制到另一个操作系统,或创建操作系统的映像并尝试运行它,则该地址将不再有效并且它会失败。 这是尝试添加另一层(在许可证管理之上)以防止软件复制。

磁盘映像逐字节复制,这意味着磁盘上的所有地址(位置)保持完全相同。 因此,您的复制保护实际上不会起作用 - 您仍然可以轻松地克隆磁盘,同时保留您的特殊复制保护文件。 此外,一个文件甚至可能在磁盘上没有定义的位置:它可能被分成许多片段并分散在整个磁盘中。 您找不到不存在的地址。 文件系统也可以随时移动文件,因此即使在同一系统上地址也不会保持不变。 (这就是碎片整理的作用。例如,Windows 会按照固定的时间表移动文件以使文件系统更快。)

TL; DR 这行不通。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM