Tho*_*mas 0 c++ windows read-write hard-drive
使用十六进制编辑器HxDen可以读取(和编辑)硬盘驱动器或USB密钥或RAM上的字节.也就是说,可以读取/更改硬盘上的第一个字节.
我理解如何使用C++从文件中读取字节,但我想知道如何为硬盘执行此操作.
为简单起见,给定正整数n,如何使用C++读取硬盘驱动器上的字节数n?(我想做C++,但如果有更简单的方法,我想听听.)
如果重要的话,我在Windows 7上使用MinGW.
有关CreateFile的MSDN Library文章中介绍了"物理磁盘和卷"部分.这段代码很好地直接读取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..
Run Code Online (Sandbox Code Playgroud)
需要管理员权限,您必须在Win7上运行您的程序,否则您将收到错误5(访问被拒绝).
| 归档时间: |
|
| 查看次数: |
2727 次 |
| 最近记录: |