Tout d'abord, un grand merci pour les développeures de Testdisk et photorec, qui m'ont permis de retrouver un certain nombre de donnée après une migration problématique vers Windows 8.
Je souhaite récupérer des fichiers non reconnus par Photorec. Il s'agit en l'occurence de fichiers MS Money Sunset (Photorec reconnait bien les fichiers de sauvegarde, mais pas les fichiers de travail). J'ai trouvé une signature, puisque le fichier .MNY commence systématiquement par la séquence :
"....MSISAM Database"
Je me suis donc attaqué au sujet en suivant le tutoriel décrit sur le site
1- Modification du fichier file_list.c
J'ai ajouté les ligne suivantes aux endroits indiqués
Code: Select all
extern const file_hint_t file_hint_zip;
extern const file_hint_t file_hint_mny;
file_enable_t list_file_enable[]=
Code: Select all
{ .enable=0, .file_hint=&file_hint_mny },
{ .enable=0, .file_hint=NULL }
};
2- J'ai modifié makefile.am pour ajouter la ligne
Code: Select all
file_xz.c \
file_zip.c \
file_mny.c
Code: Select all
/*
File: file_mny.c
Copyright (C) YEAR Christophe GRENIER <grenier@cgsecurity.org>
This software is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#include <stdio.h>
#include "types.h"
#include "filegen.h"
static void register_header_check_mny(file_stat_t *file_stat);
const file_hint_t file_hint_mny= {
.extension="mny",
.description="Money Sunset File",
.min_header_distance=0,
.max_filesize=PHOTOREC_MAX_FILE_SIZE,
.recover=1,
.enable_by_default=1,
.register_header_check=®ister_header_check_mny
};
static const unsigned char mny_header[10]= {
0x00, 0x01, 0x00, 0x00, 0x4D, 0x53, 0x49, 0x53, 0x41, 0x4D
};
static int header_check_mny(const unsigned char *buffer, const unsigned int buffer_size, const unsigned int safe_header_only, const file_recovery_t *file_recovery, file_recovery_t *file_recovery_new)
{
if(memcmp(&buffer[HEADER_LOC], mny_header, sizeof(mny_header))==0)
{
reset_file_recovery(file_recovery_new);
file_recovery_new->extension=file_hint_mny.extension;
file_recovery_new->file_check=&file_check_mny;
return 1;
}
return 0;
}
static void register_header_check_mny(file_stat_t *file_stat)
{
register_header_check(HEADER_LOC, mny_header, sizeof(mny_header), &header_check_mny, file_stat);
}
Il me semble que l'étape suivant est la compilation du projet, mais je bute sur la procédure, n'étant pas du tout familier avec C++
Visual studio ne semble pas reconnaitre le projet
J'ai chargé cygwin, mais bloque sur les lignes de commande.
Pouvez vous me donner quelques indications sur la procédure ?
merci de votre aide