summaryrefslogtreecommitdiffstats
path: root/src/refs.h
diff options
context:
space:
mode:
authorChristophe Grenier <grenier@cgsecurity.org>2015-12-03 13:25:31 +0100
committerChristophe Grenier <grenier@cgsecurity.org>2015-12-03 13:25:31 +0100
commit636fcb513db03d9b9276979b97324a5e6622b80d (patch)
treed94ebcd7bc28f28a50ea77dafd6ab17c55f6cb11 /src/refs.h
parentdc6dc8cce268f288b777c7d703b71617abf59daf (diff)
Detect Microsoft ReFS filesystem
Diffstat (limited to 'src/refs.h')
-rw-r--r--src/refs.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/refs.h b/src/refs.h
new file mode 100644
index 0000000..b7cabef
--- /dev/null
+++ b/src/refs.h
@@ -0,0 +1,38 @@
+/*
+ * File refs.h
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it would be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Further, this software is distributed without any warranty that it is
+ * free of the rightful claim of any third person regarding infringement
+ * or the like. Any license provided herein, whether implied or
+ * otherwise, applies only to this software file. Patent licenses, if
+ * any, provided herein do not apply to combinations of this program with
+ * other software, or any other product whatsoever.
+ *
+ * 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.
+ *
+ */
+
+#define ReFS_BS_SIZE 0x200
+struct ReFS_boot_sector {
+ uint8_t ignored[3];
+ uint32_t fsname;
+ uint8_t mustBeZero[9];
+ uint32_t identifier;
+ uint16_t length;
+ uint16_t checksum;
+} __attribute__ ((gcc_struct, __packed__));
+
+int check_ReFS(disk_t *disk, partition_t *partition);
+int recover_ReFS(const disk_t *disk, const struct ReFS_boot_sector *refs_header, partition_t *partition);
+
+