Advertisement
Guest User

recover does not work

a guest
Feb 6th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.12 KB | None | 0 0
  1. /**
  2.  * recover.c
  3.  *
  4.  * Computer Science 50
  5.  * Problem Set 4
  6.  *
  7.  * Recovers JPEGs from a forensic image.
  8.  */
  9.  
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12.  
  13. int main(void)
  14. {
  15.  
  16.     // open input file
  17.     FILE* inptr = fopen("card.raw", "r");
  18.     if (inptr == NULL)
  19.     {
  20.         printf("Could not open %s.\n", "card.raw");
  21.         return 2;
  22.     }
  23.     // read from file 512 bites each time until EOF
  24.     unsigned char buffer[512];
  25.     int writemode = 0;
  26.     int num = 0;
  27.     char name[10];
  28.    
  29.     while (!feof(inptr))
  30.     {
  31.         if(writemode == 0)
  32.         {
  33.            fread(&buffer, 512, 1, inptr);
  34.         }
  35.        
  36.        
  37.  
  38.  
  39.         if(buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff &&
  40.         (buffer[3] == 0xe0 || buffer[3] == 0xe1 || buffer[3] == 0xe2 || buffer[3] == 0xe3 ||
  41.         buffer[3] == 0xe4 || buffer[3] == 0xe5 || buffer[3] == 0xe6 || buffer[3] == 0xe7 ||
  42.         buffer[3] == 0xe8 || buffer[3] == 0xe9 || buffer[3] == 0xea || buffer[3] == 0xeb ||
  43.         buffer[3] == 0xec || buffer[3] == 0xed || buffer[3] == 0xee || buffer[3] == 0xef ))
  44.         {
  45.             sprintf(name, "%i.jpg", num);
  46.             FILE* outptr = fopen(name, "a");
  47.             num++;
  48.            
  49.             printf(":512: "); //write
  50.             fwrite(&buffer, 512, 1, outptr);
  51.             writemode = 1;
  52.         }
  53.         fread(&buffer, 512, 1, inptr);
  54.         //printf("."); //write
  55.         fwrite(&buffer, 512, 1, outptr);
  56.        
  57.         while(buffer[0] != 0xff && buffer[1] != 0xd8 && buffer[2] != 0xff &&
  58.         (buffer[3] != 0xe0 || buffer[3] != 0xe1 || buffer[3] != 0xe2 || buffer[3] != 0xe3 ||
  59.         buffer[3] != 0xe4 || buffer[3] != 0xe5 || buffer[3] != 0xe6 || buffer[3] != 0xe7 ||
  60.         buffer[3] != 0xe8 || buffer[3] != 0xe9 || buffer[3] != 0xea || buffer[3] != 0xeb ||
  61.         buffer[3] != 0xec || buffer[3] != 0xed || buffer[3] != 0xee || buffer[3] != 0xef ))
  62.         {
  63.             fread(&buffer, 512, 1, inptr);
  64.             //printf("."); //write
  65.             fwrite(&buffer, 512, 1, outptr);
  66.         }
  67.  
  68.         fclose(outptr);
  69.  
  70.     }
  71.    
  72.     fclose(inptr);
  73.    
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement