gpt4 book ai didi

c++ - 读取硬盘字节

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:53 25 4
gpt4 key购买 nike

使用十六进制编辑器 HxDen可以读取(和编辑)硬盘驱动器、USB key 或 RAM 上的字节。也就是说,可以读取/更改硬盘上的第一个字节。

我明白如何read the bytes from a file using C++ ,但我想知道如何对硬盘执行此操作。

为简单起见,给定一个正整数 n,我如何使用 C++ 读取硬盘上的字节数 n? (我想做 C++,但如果有更简单的方法,我想听听。)

我正在使用 MinGW在 Windows 7 上(如果重要的话)。

最佳答案

它记录在 MSDN 库文章中 CreateFile ,“物理磁盘和卷”部分。这段代码可以很好地直接读取 C: 驱动器:

HANDLE hdisk = CreateFile(L"\\\\.\\C:", 
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
nullptr,
OPEN_EXISTING,
0, NULL);
if (hdisk == INVALID_HANDLE_VALUE) {
int err = GetLastError();
// report error...
return -err;
}

LARGE_INTEGER position = { 0 };
BOOL ok = SetFilePointerEx(hdisk, position, nullptr, FILE_BEGIN);
assert(ok);

BYTE buf[65536];
DWORD read;
ok = ReadFile(hdisk, buf, 65536, &read, nullptr);
assert(ok);
// etc..

需要管理员权限,您必须在 Win7 上运行提升的程序,否则您将收到错误 5(访问被拒绝)。

关于c++ - 读取硬盘字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com