[讨论] 一个提取不了JPG文件头的变成(C++)

[复制链接]

该用户从未签到

63

主题

338

回帖

3623

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
3623
发表于 2016-6-5 11:29:43 | 显示全部楼层 |阅读模式
代码如下:请懂的朋友指点一下~

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{     
DWORD c;
CHAR string[2048];   
unsigned char MBRbuf[512]={0};
BYTE bytBuffer_1[512];
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[0]==0XFF&&
MBRbuf[1]==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;
}
  • TA的每日心情
    开心
    2014-4-2 21:30
  • 签到天数: 3 天

    [LV.2]九品芝麻官

    534

    主题

    400

    回帖

    7742

    积分

    Intohard Team

    Rank: 7Rank: 7Rank: 7

    积分
    7742
    发表于 2016-6-6 09:16:37 | 显示全部楼层
    1. #include <iostream>
    2. #include <windows.h>
    3. using namespace std;

    4. int main()
    5. {     
    6. DWORD c;
    7. CHAR string[2048];   
    8. unsigned char MBRbuf[512]={0};
    9. BYTE bytBuffer_1[512];
    10. //以文件方式打开物理磁盘0
    11. HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE,
    12. FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);  
    13. //for循环格式化 判断MBR
    14. for (int i=0;i<512;i++)
    15. {
    16. SetFilePointer(hDevice,i,NULL,FILE_BEGIN);
    17. ReadFile(hDevice,MBRbuf, 512, &c, NULL);
    18. if(MBRbuf[0]==0XFF&&
    19. MBRbuf[1]==0XD8)
    20.         {
    21.         SetFilePointer(hDevice,i,NULL,FILE_BEGIN);

    22.      
    23. //读取MBR建立文件
    24. ReadFile(hDevice,MBRbuf, 512, &c, NULL);
    25. i++;
    26. HANDLE f = CreateFile("C://S.txt",
    27. //创建文件的名称。
    28. GENERIC_WRITE|GENERIC_READ, // 写和读文件。
    29. 0, // 不共享读写。
    30. NULL, // 缺省安全属性。
    31. CREATE_ALWAYS, // 如果文件存在,也创建。
    32. FILE_ATTRIBUTE_NORMAL, // 一般的文件。
    33. NULL); // 模板文件为空。            // 模板文件为空。

    34. WriteFile(f,MBRbuf, 512, &c, NULL);
    35. }
    36. CloseHandle(hDevice);
    37. }

    38. return 0;
    39. }
    复制代码


    在代码中给增加了注释,这哪里有提取JPG文件头啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    3

    回帖

    55

    积分

    [INTOHARD]班长

    Rank: 2

    积分
    55
    发表于 2016-6-6 15:56:16 | 显示全部楼层
    这分明就是提取主引导记录的,怎么会有jpg文件头呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    63

    主题

    338

    回帖

    3623

    积分

    [INTOHARD]团长

    Rank: 8Rank: 8

    积分
    3623
     楼主| 发表于 2016-6-9 12:50:11 | 显示全部楼层
    我的意思就要要想办法提取JPG!上面的代码是提取MBR
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表