Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/RustyMft.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/parse_entry.rs85
-rw-r--r--examples/serialized_structs.rs84
2 files changed, 169 insertions, 0 deletions
diff --git a/examples/parse_entry.rs b/examples/parse_entry.rs
new file mode 100644
index 0000000..53fa76e
--- /dev/null
+++ b/examples/parse_entry.rs
@@ -0,0 +1,85 @@
+extern crate serde_json;
+extern crate rwinstructs;
+extern crate rustymft;
+use rwinstructs::serialize;
+use rustymft::entry;
+
+fn print_entry_01(){
+ let entry_buffer: &[u8] = &[
+ 0x46,0x49,0x4C,0x45,0x30,0x00,0x03,0x00,0x2E,0xB5,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x01,0x00,0x01,0x00,0x38,0x00,0x01,0x00,0x28,0x03,0x00,0x00,0x00,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x2F,0x00,0x00,0x00,
+ 0x05,0x00,0x65,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
+ 0xC5,0x9A,0xD7,0x96,0x6E,0xB9,0xD2,0x01,0x92,0x56,0x54,0xB8,0x6E,0xB9,0xD2,0x01,
+ 0x92,0x56,0x54,0xB8,0x6E,0xB9,0xD2,0x01,0xC5,0x9A,0xD7,0x96,0x6E,0xB9,0xD2,0x01,
+ 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x0C,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x70,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x28,0x02,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x0A,0x02,0x00,0x00,0x18,0x00,0x01,0x00,
+ 0x27,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0xC5,0x9A,0xD7,0x96,0x6E,0xB9,0xD2,0x01,
+ 0xC5,0x9A,0xD7,0x96,0x6E,0xB9,0xD2,0x01,0xED,0x6E,0x47,0xA7,0x6E,0xB9,0xD2,0x01,
+ 0xC5,0x9A,0xD7,0x96,0x6E,0xB9,0xD2,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0xE4,0x00,0x74,0x00,0x69,0x00,0x6D,0x00,0x65,0x00,0x5F,0x00,0x66,0x00,0x6F,0x00,
+ 0x72,0x00,0x5F,0x00,0x61,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x05,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,
+ 0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,
+ 0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,
+ 0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,
+ 0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,
+ 0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,
+ 0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,
+ 0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,
+ 0x65,0x00,0x72,0x00,0x5F,0x00,0x73,0x00,0x75,0x00,0x70,0x00,0x65,0x00,0x72,0x00,
+ 0x5F,0x00,0x6C,0x00,0x6F,0x00,0x6E,0x00,0x67,0x00,0x6E,0x00,0x61,0x00,0x6D,0x00,
+ 0x65,0x00,0x2E,0x00,0x74,0x00,0x78,0x00,0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,
+ 0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x61,0x63,0x56,0x9C,0xC8,0x24,0xE7,0x11,
+ 0xBF,0xBD,0x40,0xE2,0x30,0x3A,0x39,0x8D,0x80,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
+ 0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x00,0x1F,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
+ 0x6A,0x75,0x73,0x74,0x20,0x74,0x65,0x73,0x74,0x69,0x6E,0x67,0x20,0x61,0x20,0x73,
+ 0x75,0x70,0x65,0x72,0x20,0x6C,0x6F,0x6E,0x67,0x20,0x6E,0x61,0x6D,0x65,0x21,0x00,
+ 0xFF,0xFF,0xFF,0xFF,0x82,0x79,0x47,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00
+ ];
+
+ let mft_entry = entry::MftEntry::new(entry_buffer.to_vec(),None).unwrap();
+
+ println!("{}",serde_json::to_string_pretty(&mft_entry).unwrap());
+}
+
+fn main() {
+ unsafe {
+ serialize::U64_SERIALIZATION = serialize::U64Serialization::AsString
+ }
+ print_entry_01()
+}
diff --git a/examples/serialized_structs.rs b/examples/serialized_structs.rs
new file mode 100644
index 0000000..5bbc190
--- /dev/null
+++ b/examples/serialized_structs.rs
@@ -0,0 +1,84 @@
+extern crate serde_json;
+extern crate rwinstructs;
+extern crate rustymft;
+use rwinstructs::serialize;
+use rustymft::entry;
+use rustymft::attribute;
+use std::io::Cursor;
+
+fn print_entry_header(){
+ let header_buffer: &[u8] = &[
+ 0x46,0x49,0x4C,0x45,0x30,0x00,0x03,0x00,0xCC,0xB3,0x7D,0x84,0x0C,0x00,0x00,0x00,
+ 0x05,0x00,0x01,0x00,0x38,0x00,0x05,0x00,0x48,0x03,0x00,0x00,0x00,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xD5,0x95,0x00,0x00,
+ 0x53,0x57,0x81,0x37,0x00,0x00,0x00,0x00
+ ];
+
+ let entry_header = match entry::EntryHeader::new(header_buffer,None) {
+ Ok(entry_header) => entry_header,
+ Err(error) => panic!(error)
+ };
+
+ println!("{}",serde_json::to_string_pretty(&entry_header).unwrap());
+}
+fn print_attribute_header_01(){
+ let raw: &[u8] = &[
+ 0x10,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x48,0x00,0x00,0x00,0x18,0x00,0x00,0x00
+ ];
+
+ let attribute_buffer = Cursor::new(raw);
+
+ let attribute_header = match attribute::AttributeHeader::new(attribute_buffer) {
+ Ok(attribute_header) => attribute_header,
+ Err(error) => panic!(error)
+ };
+
+ println!("{}",serde_json::to_string_pretty(&attribute_header).unwrap());
+}
+fn print_attribute_header_02() {
+ let raw: &[u8] = &[
+ 0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x06,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x1E,0x01,0x00,0x00,0x00,0x00,0x00,
+ 0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x11,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0xEC,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0xEC,0x11,0x00,0x00,0x00,0x00,
+ 0x33,0x20,0xC8,0x00,0x00,0x00,0x0C,0x32,0xA0,0x56,0xE3,0xE6,0x24,0x00,0xFF,0xFF
+ ];
+
+ let attribute_buffer = Cursor::new(raw);
+
+ let attribute_header = match attribute::AttributeHeader::new(attribute_buffer) {
+ Ok(attribute_header) => attribute_header,
+ Err(error) => panic!(error)
+ };
+
+ println!("{}",serde_json::to_string_pretty(&attribute_header).unwrap());
+}
+fn print_attribute_header_03() {
+ let raw: &[u8] = &[
+ 0x80,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x01,0x04,0x40,0x00,0x00,0x00,0x01,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x11,0xD1,0x00,0x00,0x00,0x00,0x00,
+ 0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x1F,0x11,0x0D,0x00,0x00,0x00,
+ 0x00,0xF0,0x1F,0x11,0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x24,0x00,0x42,0x00,0x61,0x00,0x64,0x00,0x04,0xFF,0x11,0xD1,0x00,0x00,0x00,0x00
+ ];
+
+ let attribute_buffer = Cursor::new(raw);
+
+ let attribute_header = match attribute::AttributeHeader::new(attribute_buffer) {
+ Ok(attribute_header) => attribute_header,
+ Err(error) => panic!(error)
+ };
+
+ println!("{}",serde_json::to_string_pretty(&attribute_header).unwrap());
+}
+
+fn main(){
+ unsafe {
+ serialize::U64_SERIALIZATION = serialize::U64Serialization::AsString
+ }
+ print_entry_header();
+ print_attribute_header_01();
+ print_attribute_header_02();
+ print_attribute_header_03();
+}