From e6ac3a83f83128c36659cba4a8809ae79fcd5e63 Mon Sep 17 00:00:00 2001 From: Alex Kornitzer Date: Fri, 17 Feb 2023 10:27:27 +0000 Subject: [PATCH] feat: add initial support for size_t From looking at an event log which utilises size_t it can be seen to output size_t in hex. This commit adds support for widths 4 & 8, by applying them to the HexInt32 and HexInt64 variants. --- samples/Security_with_size_t.evtx | Bin 0 -> 1118208 bytes src/binxml/value_variant.rs | 7 ++- ...ecord_samples__event_json_with_size_t.snap | 55 ++++++++++++++++++ tests/test_record_samples.rs | 18 ++++++ 4 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 samples/Security_with_size_t.evtx create mode 100644 tests/snapshots/test_record_samples__event_json_with_size_t.snap diff --git a/samples/Security_with_size_t.evtx b/samples/Security_with_size_t.evtx new file mode 100644 index 0000000000000000000000000000000000000000..580fce9a005e4bb705171aa2069a3b4d8cace01c GIT binary patch literal 1118208 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 zO*GeQOU>te|4KHWJw0{QgIXu<`J6sKP&|mp?zQ5HEU@SO9K&PHXr%qX<7=irrJmTD zKhsHr-A2%gVwD4x2dz`PuGI37?_bH52TxCpdMlg%jMp<>U)nmgWGCi-1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL ZKmY**5I_I{1Q0*~0R#|00D*c1{y&uNnyCN) literal 0 HcmV?d00001 diff --git a/src/binxml/value_variant.rs b/src/binxml/value_variant.rs index 67492428..2321edb7 100644 --- a/src/binxml/value_variant.rs +++ b/src/binxml/value_variant.rs @@ -263,7 +263,12 @@ impl<'a> BinXmlValue<'a> { (BinXmlValueType::Real64Type, _) => BinXmlValue::Real64Type(try_read!(cursor, f64)?), (BinXmlValueType::BoolType, _) => BinXmlValue::BoolType(try_read!(cursor, bool)?), (BinXmlValueType::GuidType, _) => BinXmlValue::GuidType(try_read!(cursor, guid)?), - // TODO: find a sample with this token. + (BinXmlValueType::SizeTType, Some(4)) => { + BinXmlValue::HexInt32Type(try_read!(cursor, hex32)?) + } + (BinXmlValueType::SizeTType, Some(8)) => { + BinXmlValue::HexInt64Type(try_read!(cursor, hex64)?) + } (BinXmlValueType::SizeTType, _) => { return Err(DeserializationError::UnimplementedValueVariant { name: "SizeT".to_owned(), diff --git a/tests/snapshots/test_record_samples__event_json_with_size_t.snap b/tests/snapshots/test_record_samples__event_json_with_size_t.snap new file mode 100644 index 00000000..6d469614 --- /dev/null +++ b/tests/snapshots/test_record_samples__event_json_with_size_t.snap @@ -0,0 +1,55 @@ +--- +source: tests/test_record_samples.rs +expression: "&value" +--- +{ + "Event": { + "#attributes": { + "xmlns": "http://schemas.microsoft.com/win/2004/08/events/event" + }, + "EventData": { + "HandleId": "0x7eec", + "NewSd": "S:ARAI(AU;SAFA;DCLCRPCRSDWDWO;;;WD)", + "ObjectName": "C:\\Program Files\\Reference Assemblies\\Microsoft\\Framework\\v3.0\\System.IO.Log.dll", + "ObjectServer": "Security", + "ObjectType": "File", + "OldSd": "", + "ProcessId": "0x858", + "ProcessName": "C:\\Windows\\servicing\\TrustedInstaller.exe", + "SubjectDomainName": "WORKGROUP", + "SubjectLogonId": "0x3e7", + "SubjectUserName": "WIN-L0ZZQ76PMUF$", + "SubjectUserSid": "S-1-5-18" + }, + "System": { + "Channel": "Security", + "Computer": "WIN-L0ZZQ76PMUF", + "Correlation": null, + "EventID": 4907, + "EventRecordID": 196, + "Execution": { + "#attributes": { + "ProcessID": 632, + "ThreadID": 684 + } + }, + "Keywords": "0x8020000000000000", + "Level": 0, + "Opcode": 0, + "Provider": { + "#attributes": { + "Guid": "{54849625-5478-4994-a5ba-3e3b0328c30d}", + "Name": "Microsoft-Windows-Security-Auditing" + } + }, + "Security": null, + "Task": 13568, + "TimeCreated": { + "#attributes": { + "SystemTime": "2015-08-23T21:25:49.063125Z" + } + }, + "Version": 0 + } + } +} diff --git a/tests/test_record_samples.rs b/tests/test_record_samples.rs index 9237f00a..015a2d0e 100644 --- a/tests/test_record_samples.rs +++ b/tests/test_record_samples.rs @@ -166,6 +166,24 @@ fn test_event_xml_sample_with_entity_ref_2() { insta::assert_display_snapshot!(record.data); } +#[test] +fn test_event_json_with_size_t() { + ensure_env_logger_initialized(); + let evtx_file = include_bytes!("../samples/Security_with_size_t.evtx"); + let mut parser = EvtxParser::from_buffer(evtx_file.to_vec()) + .unwrap() + .with_configuration(ParserSettings::new().num_threads(1)); + + let record = parser + .records_json() + .filter_map(|record| record.ok()) + .find(|record| record.event_record_id == 196) + .expect("record to parse correctly"); + + let value: Value = serde_json::from_str(&record.data).expect("to parse correctly"); + insta::assert_json_snapshot!(&value); +} + #[test] fn test_event_json_with_multiple_nodes_same_name() { ensure_env_logger_initialized();