一个提取不了JPG文件头的变成(C++)
代码如下:请懂的朋友指点一下~#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
DWORD c;
CHAR string;
unsigned char MBRbuf={0};
BYTE bytBuffer_1;
HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
for (int i=0;i<512;i++)
{
SetFilePointer(hDevice,i,NULL,FILE_BEGIN);
ReadFile(hDevice,MBRbuf, 512, &c, NULL);
if(MBRbuf==0XFF&&
MBRbuf==0XD8)
{
SetFilePointer(hDevice,i,NULL,FILE_BEGIN);
ReadFile(hDevice,MBRbuf, 512, &c, NULL);
i++;
HANDLE f = CreateFile("C://S.txt",
//创建文件的名称。
GENERIC_WRITE|GENERIC_READ, // 写和读文件。
0, // 不共享读写。
NULL, // 缺省安全属性。
CREATE_ALWAYS, // 如果文件存在,也创建。
FILE_ATTRIBUTE_NORMAL, // 一般的文件。
NULL); // 模板文件为空。 // 模板文件为空。
WriteFile(f,MBRbuf, 512, &c, NULL);
}
CloseHandle(hDevice);
}
return 0;
} #include <iostream>
#include <windows.h>
using namespace std;
int main()
{
DWORD c;
CHAR string;
unsigned char MBRbuf={0};
BYTE bytBuffer_1;
//以文件方式打开物理磁盘0
HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
//for循环格式化 判断MBR
for (int i=0;i<512;i++)
{
SetFilePointer(hDevice,i,NULL,FILE_BEGIN);
ReadFile(hDevice,MBRbuf, 512, &c, NULL);
if(MBRbuf==0XFF&&
MBRbuf==0XD8)
{
SetFilePointer(hDevice,i,NULL,FILE_BEGIN);
//读取MBR建立文件
ReadFile(hDevice,MBRbuf, 512, &c, NULL);
i++;
HANDLE f = CreateFile("C://S.txt",
//创建文件的名称。
GENERIC_WRITE|GENERIC_READ, // 写和读文件。
0, // 不共享读写。
NULL, // 缺省安全属性。
CREATE_ALWAYS, // 如果文件存在,也创建。
FILE_ATTRIBUTE_NORMAL, // 一般的文件。
NULL); // 模板文件为空。 // 模板文件为空。
WriteFile(f,MBRbuf, 512, &c, NULL);
}
CloseHandle(hDevice);
}
return 0;
}
在代码中给增加了注释,这哪里有提取JPG文件头啊{:5_215:} 这分明就是提取主引导记录的,怎么会有jpg文件头呀 我的意思就要要想办法提取JPG!上面的代码是提取MBR
页:
[1]