Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Recuperar JPG de um arquivo em C

Esse é um código de um exercício do curso CC50 (http://cc50.com.br/) PSET 5.
Basicamente ele faz o que aqueles programas de recuperação de arquivos excluídos faz, recupera fotos a parti de um monte de bytes, a diferença é que ele não varre o HD mais sim um arquivo (card.raw). Mais existem formas de varrer o HD e colocar todos os bytes em arquivo.

Download do arquivo de bytes

Código Fonte:

#include <stdio.h>

#include <stdlib.h>

#define true 1

#define false 0



int

main()

{

unsigned char buffer[512];

int num_foto = 0;

int passou = false;

FILE *fout;



FILE *fp = fopen("card.raw", "r");

if(fp == NULL){

printf("Erro ao abrir arquivo");

exit(1);

}



while(! (feof(fp)) ){



//Ler 512 bytes e guarda em buffer

fread(&buffer, 512, 1, fp);



//Compara os 4 bytes com os 4 bytes de um jpg

if(buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff &&  buffer[3] == 0xe0){

num_foto++;

passou = false;

}



//Checa se ha nova jpg

if(num_foto != 0){

char str[10];

sprintf(str, "%d.jpg", num_foto);

if(passou == false)

fout = fopen(str, "w");

fwrite(&buffer, 512, 1, fout);

passou = true;

}



for(int i = 0; i < 512; i++)

buffer[i] = 0;



}



}


This post first appeared on Salathiel++, please read the originial post: here

Share the post

Recuperar JPG de um arquivo em C

×

Subscribe to Salathiel++

Get updates delivered right to your inbox!

Thank you for your subscription

×