Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * recover.c
- *
- * Computer Science 50
- * Problem Set 4
- *
- * Recovers JPEGs from a forensic image.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- typedef uint8_t BYTE;
- int main(void)
- {
- // open CF card
- FILE* inptr = fopen("card.raw", "r");
- if (inptr == NULL)
- {
- printf("Could not open \n");
- return 1;
- }
- int j = 0; // counter for jpeg file
- char title[8]; // file name for jpeg file
- BYTE block[512]; // 512byte chunk of memory
- int f = 0; // state jpg not found
- FILE* outptr = NULL;
- while(!feof(inptr))
- {
- fread(block, sizeof(block), 1, inptr); // read 512byte from cf card
- if(block[0] == 0xff && block[1] == 0xd8 && block[2] == 0xff && (block[3] >= 0xe0 && block[3] <= 0xef))
- {
- if(outptr != NULL)
- fclose(outptr);
- f = 1; // jpeg found
- sprintf(title, "%03d.jpg", j);
- j++;
- outptr = fopen(title,"a");
- }
- if(f == 1)
- fwrite(block, sizeof(block), 1, outptr);
- }
- fclose(inptr);
- fclose(outptr);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement