diff options
author | Christophe Grenier <grenier@cgsecurity.org> | 2011-02-07 09:17:12 +0100 |
---|---|---|
committer | Christophe Grenier <grenier@cgsecurity.org> | 2011-02-07 09:17:12 +0100 |
commit | 237b0d53ac0d638ccbd8671293b6695436bad32c (patch) | |
tree | ad4178e092a225fe05d9cf69aa312b0db41367e2 /src/adv.c | |
parent | 2d02984cbcde496a462304bb2bdcdfe5550c8e43 (diff) |
Minimal support to list and copy files from exFAT for TestDisk.
PhotoRec:Can carve files from exFAT free space only
Diffstat (limited to 'src/adv.c')
-rw-r--r-- | src/adv.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -54,6 +54,7 @@ #include "ext2_sbn.h" #include "fat1x.h" #include "fat32.h" +#include "texfat.h" #include "tntfs.h" #include "thfs.h" #include "askloc.h" @@ -75,12 +76,18 @@ extern const arch_fnct_t arch_xbox; #define DEFAULT_IMAGE_NAME "image.dd" +static int is_exfat(const partition_t *partition); static int is_hfs(const partition_t *partition); static int is_hfsp(const partition_t *partition); static int is_linux(const partition_t *partition); static int is_part_hfs(const partition_t *partition); static int is_part_hfsp(const partition_t *partition); +static int is_exfat(const partition_t *partition) +{ + return (is_part_ntfs(partition) || partition->upart_type==UP_EXFAT); +} + static int is_hfs(const partition_t *partition) { return (is_part_hfs(partition) || partition->upart_type==UP_HFS); @@ -291,6 +298,8 @@ void interface_adv(disk_t *disk_car, const int verbose,const int dump_ind, const options="tubcq"; else if(is_ntfs(partition)) options="tlubcq"; + else if(is_exfat(partition)) + options="tlbcq"; else if(is_linux(partition)) { if(partition->upart_type==UP_EXT2) @@ -440,6 +449,7 @@ void interface_adv(disk_t *disk_car, const int verbose,const int dump_ind, const else if(is_part_ntfs(partition)) { ntfs_boot_sector(disk_car, partition, verbose, expert, current_cmd); +// exFAT_boot_sector(disk_car, partition, verbose, current_cmd); rewrite=1; } else if(partition->upart_type==UP_FAT32) @@ -457,6 +467,11 @@ void interface_adv(disk_t *disk_car, const int verbose,const int dump_ind, const ntfs_boot_sector(disk_car, partition, verbose, expert, current_cmd); rewrite=1; } + else if(partition->upart_type==UP_EXFAT) + { + exFAT_boot_sector(disk_car, partition, verbose, current_cmd); + rewrite=1; + } } break; case 'c': |