wsszsmx 发表于 2016-6-5 11:29:43

一个提取不了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;
}

硬盘爱好者 发表于 2016-6-6 09:16:37

#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:}

veryjuly 发表于 2016-6-6 15:56:16

这分明就是提取主引导记录的,怎么会有jpg文件头呀

wsszsmx 发表于 2016-6-9 12:50:11

我的意思就要要想办法提取JPG!上面的代码是提取MBR
页: [1]
查看完整版本: 一个提取不了JPG文件头的变成(C++)