From ac7edb13de82acf22fab18eb4bfbedfbaabdd890 Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Tue, 6 Feb 2024 00:16:01 +0900 Subject: [PATCH 01/11] UI(afterfact): modified csv-timeline stdout color rule #1271 --- src/afterfact.rs | 217 ++++++++++++++++++++++++++++------------------- 1 file changed, 129 insertions(+), 88 deletions(-) diff --git a/src/afterfact.rs b/src/afterfact.rs index 7f462d9a8..ea5d607fc 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -385,22 +385,30 @@ fn emit_csv( // 標準出力の場合 if plus_header { // ヘッダーのみを出力 - write_color_buffer( + _get_serialized_disp_output( &disp_wtr, - get_writable_color(None, stored_static.common_options.no_color), - &_get_serialized_disp_output( - profile, - true, - (&output_replacer, &output_replaced_maps), - (&output_remover, &removed_replaced_maps), + profile, + true, + (&output_replacer, &output_replaced_maps), + (&output_remover, &removed_replaced_maps), + stored_static.common_options.no_color, + get_writable_color( + _get_output_color( + &color_map, + LEVEL_FULL.get(detect_info.level.as_str()).unwrap_or(&""), + ), + stored_static.common_options.no_color, ), - false, - ) - .ok(); + ); plus_header = false; } - write_color_buffer( + _get_serialized_disp_output( &disp_wtr, + &detect_info.ext_field, + false, + (&output_replacer, &output_replaced_maps), + (&output_remover, &removed_replaced_maps), + stored_static.common_options.no_color, get_writable_color( _get_output_color( &color_map, @@ -408,17 +416,7 @@ fn emit_csv( ), stored_static.common_options.no_color, ), - &_get_serialized_disp_output( - &detect_info.ext_field, - false, - (&output_replacer, &output_replaced_maps), - (&output_remover, &removed_replaced_maps), - ) - .split_whitespace() - .join(" "), - true, - ) - .ok(); + ); } else if jsonl_output_flag { // JSONL output format let result = output_json_str( @@ -898,11 +896,14 @@ enum ColPos { } fn _get_serialized_disp_output( + disp_wtr: &BufferWriter, data: &Vec<(CompactString, Profile)>, header: bool, (output_replacer, output_replaced_maps): (&AhoCorasick, &HashMap<&str, &str>), (output_remover, removed_replaced_maps): (&AhoCorasick, &HashMap<&str, &str>), -) -> String { + no_color: bool, + level_color: Option, +) { let data_length = data.len(); let mut ret = Nested::::new(); if header { @@ -915,85 +916,125 @@ fn _get_serialized_disp_output( ret.push(_format_cellpos(&d.0, ColPos::Other)) } } + let mut disp_serializer = WriterBuilder::new() + .double_quote(false) + .quote_style(QuoteStyle::Never) + .delimiter(b'|') + .has_headers(false) + .from_writer(vec![]); + + disp_serializer + .write_record(ret.iter().collect::>()) + .ok(); + + write_color_buffer( + disp_wtr, + get_writable_color(None, no_color), + &String::from_utf8(disp_serializer.into_inner().unwrap_or_default()) + .unwrap_or_default() + .replace('|', "·") + .replace('🦅', "|"), + false, + ) + .ok(); } else { for (i, d) in data.iter().enumerate() { - if i == 0 { - ret.push( - _format_cellpos( - &output_remover - .replace_all( - &output_replacer - .replace_all( - &d.1.to_value(), - &output_replaced_maps.values().collect_vec(), - ) - .split_whitespace() - .join(" "), - &removed_replaced_maps.values().collect_vec(), - ) - .split_ascii_whitespace() - .join(" "), - ColPos::First, - ) - .replace('|', "🦅"), - ) + let col_pos = if i == 0 { + ColPos::First } else if i == data_length - 1 { - ret.push( - _format_cellpos( - &output_remover + ColPos::Last + } else { + ColPos::Other + }; + let display_contents = _format_cellpos( + &output_remover + .replace_all( + &output_replacer .replace_all( - &output_replacer - .replace_all( - &d.1.to_value(), - &output_replaced_maps.values().collect_vec(), - ) - .split_whitespace() - .join(" "), - &removed_replaced_maps.values().collect_vec(), + &d.1.to_value(), + &output_replaced_maps.values().collect_vec(), ) - .split_ascii_whitespace() + .split_whitespace() .join(" "), - ColPos::Last, + &removed_replaced_maps.values().collect_vec(), ) - .replace('|', "🦅"), - ) - } else { - ret.push( - _format_cellpos( - &output_remover - .replace_all( - &output_replacer + .split_ascii_whitespace() + .join(" "), + col_pos, + ); + let output_color_and_contents = match d.1 { + Profile::Timestamp(_) => { + vec![vec![( + display_contents, + get_writable_color(level_color, no_color), + )]] + } + Profile::Level(_) => { + vec![vec![( + display_contents, + get_writable_color(level_color, no_color), + )]] + } + Profile::AllFieldInfo(_) | Profile::Details(_) | Profile::ExtraFieldInfo(_) => { + let mut output_str_char_pair = vec![]; + for c in display_contents.split('¦') { + if let Some((field, val)) = c.split_once(':') { + let mut field_val_col_pair = vec![]; + field_val_col_pair.push(( + format!("{field}: "), + get_writable_color(Some(Color::Rgb(255, 158, 61)), no_color), + )); + + field_val_col_pair.push(( + output_remover .replace_all( - &d.1.to_value(), - &output_replaced_maps.values().collect_vec(), + &output_replacer + .replace_all( + val, + &output_replaced_maps.values().collect_vec(), + ) + .split_whitespace() + .join(" "), + &removed_replaced_maps.values().collect_vec(), ) - .split_whitespace() + .split_ascii_whitespace() .join(" "), - &removed_replaced_maps.values().collect_vec(), - ) - .split_ascii_whitespace() - .join(" "), - ColPos::Other, - ) - .replace('|', "🦅"), + get_writable_color(Some(Color::Rgb(0, 255, 255)), no_color), + )); + output_str_char_pair.push(field_val_col_pair); + } + } + output_str_char_pair + } + _ => { + vec![vec![(display_contents, None)]] + } + }; + + let col_cnt = output_color_and_contents.len(); + for (field_idx, col_contents) in output_color_and_contents.iter().enumerate() { + for (c, color) in col_contents { + write_color_buffer(disp_wtr, *color, c, false).ok(); + } + if field_idx != col_cnt - 1 { + write_color_buffer(disp_wtr, None, " ¦ ", false).ok(); + } + } + + if i != data_length - 1 { + write_color_buffer( + disp_wtr, + get_writable_color(Some(Color::Rgb(255, 158, 61)), no_color), + "·", + false, ) + .ok(); + } else { + //1レコード分の最後の要素の改行 + println!(); } } } - let mut disp_serializer = WriterBuilder::new() - .double_quote(false) - .quote_style(QuoteStyle::Never) - .delimiter(b'|') - .has_headers(false) - .from_writer(vec![]); - - disp_serializer - .write_record(ret.iter().collect::>()) - .ok(); - String::from_utf8(disp_serializer.into_inner().unwrap_or_default()) - .unwrap_or_default() - .replace('|', "·") - .replace('🦅', "|") } /// return str position in output file From 220af3bd10357ea560377cc499d9f289976a6480 Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Tue, 6 Feb 2024 00:18:02 +0900 Subject: [PATCH 02/11] test(afterfact): removed csv-timeline stdoutput test due to modified csv-timeline stdout processing #1271 --- src/afterfact.rs | 170 +---------------------------------------------- 1 file changed, 2 insertions(+), 168 deletions(-) diff --git a/src/afterfact.rs b/src/afterfact.rs index ea5d607fc..7aad46f8e 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -1951,10 +1951,10 @@ fn _output_html_computer_by_mitre_attck(html_output_stock: &mut Nested) #[cfg(test)] mod tests { - use crate::afterfact::Colors; - use crate::afterfact::_get_serialized_disp_output; + use super::set_output_color; use crate::afterfact::emit_csv; use crate::afterfact::format_time; + use crate::afterfact::Colors; use crate::detections::configs::load_eventkey_alias; use crate::detections::configs::Action; use crate::detections::configs::CommonOptions; @@ -1971,8 +1971,6 @@ mod tests { use crate::detections::message::DetectInfo; use crate::detections::utils; use crate::options::profile::{load_profile, Profile}; - use aho_corasick::AhoCorasickBuilder; - use aho_corasick::MatchKind; use chrono::NaiveDateTime; use chrono::{Local, TimeZone, Utc}; use compact_str::CompactString; @@ -1983,8 +1981,6 @@ mod tests { use std::io; use std::path::Path; - use super::set_output_color; - #[test] fn test_emit_csv_output() { let mock_ch_filter = message::create_output_filter_config( @@ -3690,168 +3686,6 @@ mod tests { assert!(remove_file("./test_multiple_data_in_details.json").is_ok()); } - #[test] - fn test_emit_csv_display() { - let test_title = "test_title2"; - let test_level = "medium"; - let test_computername = "testcomputer2"; - let test_eventid = "2222"; - let test_channel = "Sysmon"; - let output = "displaytest"; - let test_recinfo = "testinfo"; - let test_recid = "22222"; - let test_naivetime = - NaiveDateTime::parse_from_str("1996-02-27T01:05:01Z", "%Y-%m-%dT%H:%M:%SZ").unwrap(); - let test_timestamp = Utc.from_local_datetime(&test_naivetime).unwrap(); - let expect_header = "Timestamp · Computer · Channel · EventID · Level · RecordID · RuleTitle · Details · RecordInformation\n"; - let expect_tz = test_timestamp.with_timezone(&Local); - - let expect_no_header = expect_tz.format("%Y-%m-%d %H:%M:%S%.3f %:z").to_string() - + " · " - + test_computername - + " · " - + test_channel - + " · " - + test_eventid - + " · " - + test_level - + " · " - + test_recid - + " · " - + test_title - + " · " - + output - + " · " - + test_recinfo - + "\n"; - let output_option = OutputOption { - input_args: InputOption { - directory: None, - filepath: None, - live_analysis: false, - recover_records: false, - timeline_offset: None, - }, - profile: None, - enable_deprecated_rules: false, - exclude_status: None, - min_level: "informational".to_string(), - exact_level: None, - enable_noisy_rules: false, - end_timeline: None, - start_timeline: None, - eid_filter: false, - european_time: false, - iso_8601: false, - rfc_2822: false, - rfc_3339: false, - us_military_time: false, - us_time: false, - utc: false, - visualize_timeline: false, - rules: Path::new("./rules").to_path_buf(), - html_report: None, - no_summary: false, - common_options: CommonOptions { - no_color: false, - quiet: false, - }, - detect_common_options: DetectCommonOption { - evtx_file_ext: None, - thread_number: None, - quiet_errors: false, - config: Path::new("./rules/config").to_path_buf(), - verbose: false, - json_input: false, - include_computer: None, - exclude_computer: None, - }, - enable_unsupported_rules: false, - clobber: false, - proven_rules: false, - include_tag: None, - exclude_tag: None, - include_category: None, - exclude_category: None, - include_eid: None, - exclude_eid: None, - no_field: false, - no_pwsh_field_extraction: false, - remove_duplicate_data: false, - remove_duplicate_detections: false, - no_wizard: true, - }; - let data: Vec<(CompactString, Profile)> = vec![ - ( - CompactString::new("Timestamp"), - Profile::Timestamp(format_time(&test_timestamp, false, &output_option).into()), - ), - ( - CompactString::new("Computer"), - Profile::Computer(test_computername.into()), - ), - ( - CompactString::new("Channel"), - Profile::Channel(test_channel.into()), - ), - ( - CompactString::new("EventID"), - Profile::EventID(test_eventid.into()), - ), - ( - CompactString::new("Level"), - Profile::Level(test_level.into()), - ), - ( - CompactString::new("RecordID"), - Profile::RecordID(test_recid.into()), - ), - ( - CompactString::new("RuleTitle"), - Profile::RuleTitle(test_title.into()), - ), - ( - CompactString::new("Details"), - Profile::Details(output.into()), - ), - ( - CompactString::new("RecordInformation"), - Profile::AllFieldInfo(test_recinfo.into()), - ), - ]; - let output_replaced_maps: HashMap<&str, &str> = - HashMap::from_iter(vec![("🛂r", "\r"), ("🛂n", "\n"), ("🛂t", "\t")]); - let removed_replaced_maps: HashMap<&str, &str> = - HashMap::from_iter(vec![("\n", " "), ("\r", " "), ("\t", " ")]); - let output_replacer = AhoCorasickBuilder::new() - .match_kind(MatchKind::LeftmostLongest) - .build(output_replaced_maps.keys()) - .unwrap(); - let output_remover = AhoCorasickBuilder::new() - .match_kind(MatchKind::LeftmostLongest) - .build(removed_replaced_maps.keys()) - .unwrap(); - - assert_eq!( - _get_serialized_disp_output( - &data, - true, - (&output_replacer, &output_replaced_maps), - (&output_remover, &removed_replaced_maps) - ), - expect_header - ); - assert_eq!( - _get_serialized_disp_output( - &data, - false, - (&output_replacer, &output_replaced_maps), - (&output_remover, &removed_replaced_maps) - ), - expect_no_header - ); - } - fn check_hashmap_data( target: HashMap, expected: HashMap, From 7173ae6a55e74ba3c948d1a5b7f2131d1ef7fdbd Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Tue, 6 Feb 2024 00:23:50 +0900 Subject: [PATCH 03/11] docs(CHANGELOG): added #1271 --- CHANGELOG-Japanese.md | 1 + CHANGELOG.md | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG-Japanese.md b/CHANGELOG-Japanese.md index 8ee0d4b59..6f2dccb7c 100644 --- a/CHANGELOG-Japanese.md +++ b/CHANGELOG-Japanese.md @@ -15,6 +15,7 @@ - 古いターミナルでも正しく表示されるように、また読みやすくするために、`‖`区切り文字を`·`区切り文字に変更した。(#1258) (@YamatoSecurity) - `json-timeline`コマンドの`Details`の出力で、要素がアルファベット順に並んでいたのをルールに記載されているオリジナルの順番に変更した。 (#1264) (@hitenkoku) - ルールをロードする必要のないコマンドを実行した場合、検出ルールのロードをスキップするようにした。 (#1263) (@hitenkoku) +- `csv-timeline`コマンドの標準出力のカラー出力ルールを変更した。 (#1271) (@hitenkoku) **バグ修正:** diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c9abf0fb..ed5772905 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Changed the `‖` separator into a `·` separator to make it easier to read and render properly on older terminals. (#1258) (@YamatoSecurity) - Changed the `Details` output in `json-timeline` command from alphabetical order to the original order. - Skiped loading detection rules when running to command which is no need to load rule. (#1263) (@hitenkoku) +- Changed standard output color rule in `csv-timeline` command. (#1271) (@hitenkoku) **Bug Fixes:** From 04da0ceb2ff240ebce3dee3a47ebda690c208e55 Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Tue, 6 Feb 2024 09:26:02 +0900 Subject: [PATCH 04/11] refactor(afterfact): refactoring duplicate processing in match #1271 --- src/afterfact.rs | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/afterfact.rs b/src/afterfact.rs index 7aad46f8e..b1288b82d 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -963,13 +963,7 @@ fn _get_serialized_disp_output( col_pos, ); let output_color_and_contents = match d.1 { - Profile::Timestamp(_) => { - vec![vec![( - display_contents, - get_writable_color(level_color, no_color), - )]] - } - Profile::Level(_) => { + Profile::Timestamp(_) | Profile::Level(_) => { vec![vec![( display_contents, get_writable_color(level_color, no_color), From 52000b464cbd717c3fc25b1e38743702191c185f Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Tue, 6 Feb 2024 09:27:45 +0900 Subject: [PATCH 05/11] UI(afterfact): changed rule title color in csv-timeline command(adapted commend) #1271 --- src/afterfact.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/afterfact.rs b/src/afterfact.rs index b1288b82d..d5d50b328 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -963,7 +963,7 @@ fn _get_serialized_disp_output( col_pos, ); let output_color_and_contents = match d.1 { - Profile::Timestamp(_) | Profile::Level(_) => { + Profile::Timestamp(_) | Profile::Level(_) | Profile::RuleTitle(_) => { vec![vec![( display_contents, get_writable_color(level_color, no_color), From 1231332a02fde6e80f513ac016fba991aefcb54b Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Thu, 8 Feb 2024 13:39:40 +0900 Subject: [PATCH 06/11] add space between events in csv stdout --- src/afterfact.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/afterfact.rs b/src/afterfact.rs index 78440a2ba..d4be78d36 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -1026,6 +1026,7 @@ fn _get_serialized_disp_output( } else { //1レコード分の最後の要素の改行 println!(); + println!(); } } } From 1c24269b5b7dd347e437a83b2c5e9cf35a045f4a Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Thu, 8 Feb 2024 13:39:54 +0900 Subject: [PATCH 07/11] update output profiles --- config/default_profile.yaml | 4 ++-- config/profiles.yaml | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/config/default_profile.yaml b/config/default_profile.yaml index 05a5e7110..d070296f6 100644 --- a/config/default_profile.yaml +++ b/config/default_profile.yaml @@ -1,10 +1,10 @@ --- Timestamp: "%Timestamp%" +RuleTitle: "%RuleTitle%" +Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" -Level: "%Level%" RecordID: "%RecordID%" -RuleTitle: "%RuleTitle%" Details: "%Details%" ExtraFieldInfo: "%ExtraFieldInfo%" \ No newline at end of file diff --git a/config/profiles.yaml b/config/profiles.yaml index f9fe156aa..b82cce84f 100644 --- a/config/profiles.yaml +++ b/config/profiles.yaml @@ -1,37 +1,37 @@ # Standard profile minus MITRE ATT&CK Tactics and Record ID. minimal: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" RecordID: "%RecordID%" - RuleTitle: "%RuleTitle%" Details: "%Details%" standard: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" RecordID: "%RecordID%" - RuleTitle: "%RuleTitle%" Details: "%Details%" ExtraFieldInfo: "%ExtraFieldInfo%" # Standard profile plus MitreTags(MITRE techniques, software and groups), rule filename and EVTX filename. verbose: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" MitreTactics: "%MitreTactics%" MitreTags: "%MitreTags%" OtherTags: "%OtherTags%" RecordID: "%RecordID%" - RuleTitle: "%RuleTitle%" Details: "%Details%" ExtraFieldInfo: "%ExtraFieldInfo%" RuleFile: "%RuleFile%" @@ -40,12 +40,12 @@ verbose: # Verbose profile with all field information instead of the minimal fields defined in the Details field. all-field-info: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" RecordID: "%RecordID%" - RuleTitle: "%RuleTitle%" AllFieldInfo: "%AllFieldInfo%" RuleFile: "%RuleFile%" EvtxFile: "%EvtxFile%" @@ -53,15 +53,15 @@ all-field-info: # Verbose profile with all field information and tags. all-field-info-verbose: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" MitreTactics: "%MitreTactics%" MitreTags: "%MitreTags%" OtherTags: "%OtherTags%" RecordID: "%RecordID%" - RuleTitle: "%RuleTitle%" AllFieldInfo: "%AllFieldInfo%" RuleFile: "%RuleFile%" EvtxFile: "%EvtxFile%" @@ -69,11 +69,11 @@ all-field-info-verbose: # As much information as possible. super-verbose: Timestamp: "%Timestamp%" + RuleTitle: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" - RuleTitle: "%RuleTitle%" RuleAuthor: "%RuleAuthor%" RuleModifiedDate: "%RuleModifiedDate%" Status: "%Status%" @@ -93,10 +93,10 @@ timesketch-minimal: datetime: "%Timestamp%" timestamp_desc: "hayabusa" message: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" MitreTactics: "%MitreTactics%" MitreTags: "%MitreTags%" OtherTags: "%OtherTags%" @@ -110,10 +110,10 @@ timesketch-verbose: datetime: "%Timestamp%" timestamp_desc: "hayabusa" message: "%RuleTitle%" + Level: "%Level%" Computer: "%Computer%" Channel: "%Channel%" EventID: "%EventID%" - Level: "%Level%" MitreTactics: "%MitreTactics%" MitreTags: "%MitreTags%" OtherTags: "%OtherTags%" From fe9b92029e16b8cf741d5d854132ae0c2e652a0a Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Thu, 8 Feb 2024 13:40:03 +0900 Subject: [PATCH 08/11] update color levels --- config/level_color.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/level_color.txt b/config/level_color.txt index 2a27bd60b..370e1e580 100644 --- a/config/level_color.txt +++ b/config/level_color.txt @@ -1,5 +1,5 @@ level,colorcode critical,ff0000 -high,ffff00 -medium,00ffff +high,ffc100 +medium,ffff00 low,00ff00 \ No newline at end of file From dc1d7e4a815669f2b333240f605136e114ddc7b4 Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Thu, 8 Feb 2024 13:48:22 +0900 Subject: [PATCH 09/11] update cargo --- Cargo.lock | 495 ++++++++++++++++++++++++----------------------------- 1 file changed, 220 insertions(+), 275 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a97524c6a..52982d703 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", @@ -61,9 +61,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.5" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -75,9 +75,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" [[package]] name = "anstyle-parse" @@ -109,9 +109,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.76" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "arrayvec" @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "bitflags" @@ -165,9 +165,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" [[package]] name = "bumpalo" @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" dependencies = [ "serde", ] @@ -257,9 +257,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", @@ -267,7 +267,7 @@ dependencies = [ "num-traits", "serde", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] @@ -300,9 +300,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.11" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" dependencies = [ "clap_builder", "clap_derive", @@ -310,9 +310,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.11" +version = "4.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" dependencies = [ "anstream", "anstyle", @@ -329,7 +329,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -380,15 +380,15 @@ dependencies = [ [[package]] name = "console" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", "unicode-width", - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] @@ -408,35 +408,28 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.16" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2fe95351b870527a5d09bf563ed3c97c0cffb87cf1c78a591bf48bb218d9aa" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", ] [[package]] name = "crossbeam-utils" -version = "0.8.17" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" -dependencies = [ - "cfg-if", -] +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] name = "crossterm" @@ -444,7 +437,7 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "crossterm_winapi", "libc", "parking_lot", @@ -650,7 +643,7 @@ version = "0.8.7" source = "git+https://github.com/Yamato-Security/hayabusa-evtx.git?rev=bb6ebb8#bb6ebb819c4e53ea13aaabb53efe8807d064d746" dependencies = [ "anyhow", - "bitflags 2.4.1", + "bitflags 2.4.2", "byteorder", "chrono", "clap 3.2.25", @@ -730,9 +723,9 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" dependencies = [ "cfg-if", "libc", @@ -747,11 +740,11 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "git2" -version = "0.18.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf97ba92db08df386e10c8ede66a2a0369bd277090afd8710e19e38de9ec0cd" +checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "libc", "libgit2-sys", "log", @@ -791,7 +784,7 @@ dependencies = [ "bytesize", "chrono", "cidr-utils", - "clap 4.4.11", + "clap 4.4.18", "comfy-table", "compact_str", "console", @@ -806,10 +799,10 @@ dependencies = [ "hashbrown 0.14.3", "hex", "horrorshow", - "indexmap 2.1.0", + "indexmap 2.2.2", "indicatif", "is_elevated", - "itertools 0.12.0", + "itertools", "krapslog", "lazy_static", "libmimalloc-sys", @@ -855,9 +848,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" [[package]] name = "hex" @@ -865,17 +858,46 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hoot" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df22a4d90f1b0e65fe3e0d6ee6a4608cc4d81f4b2eb3e670f44bb6bde711e452" +dependencies = [ + "httparse", + "log", +] + +[[package]] +name = "hootbin" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "354e60868e49ea1a39c44b9562ad207c4259dc6eabf9863bf3b0f058c55cfdb2" +dependencies = [ + "fastrand", + "hoot", + "serde", + "serde_json", + "thiserror", +] + [[package]] name = "horrorshow" version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8371fb981840150b1a54f7cb117bf6699f7466a1d4861daac33bc6fe2b5abea0" +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -896,9 +918,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.5.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -916,9 +938,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -954,9 +976,9 @@ dependencies = [ [[package]] name = "ipnetwork" -version = "0.18.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4088d739b183546b239688ddbc79891831df421773df95e236daf7867866d355" +checksum = "bf466541e9d546596ee94f9f69590f89473455f88372423e0008fc1a7daf100e" dependencies = [ "serde", ] @@ -972,18 +994,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] @@ -1025,9 +1038,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.66" +version = "0.3.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" dependencies = [ "wasm-bindgen", ] @@ -1040,9 +1053,9 @@ checksum = "313560d2dd5dcabbc1a9690c88e1f443136d6025ca8a421df2d5719f45357979" dependencies = [ "anyhow", "chrono", - "clap 4.4.11", + "clap 4.4.18", "file-chunker", - "memmap2 0.9.3", + "memmap2 0.9.4", "num_cpus", "rayon", "regex", @@ -1058,15 +1071,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.151" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libgit2-sys" -version = "0.16.1+1.7.1" +version = "0.16.2+1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2a2bb3680b094add03bb3732ec520ece34da31a8cd2d633d1389d0f0fb60d0c" +checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8" dependencies = [ "cc", "libc", @@ -1103,9 +1116,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6" dependencies = [ "cc", "libc", @@ -1121,9 +1134,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "lock_api" @@ -1143,9 +1156,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "maxminddb" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2ba61113f9f7a9f0e87c519682d39c43a6f3f79c2cc42c3ba3dda83b1fa334" +checksum = "d6087e5d8ea14861bb7c7f573afbc7be3798d3ef0fae87ec4fd9a4de9a127c3c" dependencies = [ "ipnetwork", "log", @@ -1155,9 +1168,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "memmap2" @@ -1170,22 +1183,13 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45fd3a57831bf88bc63f8cebc0cf956116276e97fef3966103e96416209f7c92" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "mimalloc" version = "0.1.39" @@ -1197,9 +1201,9 @@ dependencies = [ [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -1239,7 +1243,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1275,9 +1279,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6" dependencies = [ "num-traits", ] @@ -1305,19 +1309,18 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", @@ -1338,9 +1341,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -1351,7 +1354,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi 0.3.5", "libc", ] @@ -1363,9 +1366,9 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] @@ -1378,11 +1381,11 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "openssl" -version = "0.10.61" +version = "0.10.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "cfg-if", "foreign-types", "libc", @@ -1399,7 +1402,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1410,18 +1413,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.1+3.2.0" +version = "300.2.2+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" +checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.97" +version = "0.9.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" dependencies = [ "cc", "libc", @@ -1473,9 +1476,9 @@ checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pkg-config" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "portable-atomic" @@ -1491,12 +1494,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "predicates" -version = "3.0.4" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dfc28575c2e3f19cb3c73b93af36460ae898d426eba6fc15b9bd2a5220758a0" +checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8" dependencies = [ "anstyle", - "itertools 0.11.0", "predicates-core", ] @@ -1518,20 +1520,20 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] [[package]] name = "pulldown-cmark" -version = "0.9.3" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.2", "memchr", "unicase", ] @@ -1548,9 +1550,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] @@ -1587,9 +1589,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" dependencies = [ "either", "rayon-core", @@ -1597,9 +1599,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -1616,9 +1618,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.2" +version = "1.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", @@ -1628,9 +1630,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" dependencies = [ "aho-corasick", "memchr", @@ -1685,11 +1687,11 @@ checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustix" -version = "0.38.28" +version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.4.2", "errno", "libc", "linux-raw-sys", @@ -1698,23 +1700,32 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" +checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" dependencies = [ "log", "ring", + "rustls-pki-types", "rustls-webpki", - "sct", + "subtle", + "zeroize", ] +[[package]] +name = "rustls-pki-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a716eb65e3158e90e17cd93d855216e27bde02745ab842f2cab4a39dba1bacf" + [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" dependencies = [ "ring", + "rustls-pki-types", "untrusted", ] @@ -1745,50 +1756,40 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -1827,9 +1828,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" [[package]] name = "socket2" @@ -1875,9 +1876,15 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.42", + "syn 2.0.48", ] +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + [[package]] name = "syn" version = "1.0.109" @@ -1891,9 +1898,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.42" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -1902,22 +1909,21 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] @@ -1946,22 +1952,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11c217e1416d6f036b870f14e0413d480dbf28edbee1f877abaf0206af43bb7" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.51" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01742297787513b79cf8e29d1056ede1313e2420b7b3b15d0a768b4921f549df" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -1981,9 +1987,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" dependencies = [ "backtrace", "bytes", @@ -2006,7 +2012,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] @@ -2020,9 +2026,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2053,15 +2059,17 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.1" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" +checksum = "399dd89e2af196ae4f83a47bb37a1455e664fe2fed97b3ae68a1c4a3f8216e76" dependencies = [ "base64", "flate2", + "hootbin", "log", "once_cell", "rustls", + "rustls-pki-types", "rustls-webpki", "url", "webpki-roots", @@ -2069,9 +2077,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", @@ -2114,9 +2122,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.89" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2124,24 +2132,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.89" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.89" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2149,28 +2157,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.89" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.89" +version = "0.2.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" [[package]] name = "webpki-roots" -version = "0.25.3" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" +checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "wildmatch" @@ -2211,20 +2222,11 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.42.2", + "windows-targets 0.52.0", ] [[package]] @@ -2245,21 +2247,6 @@ dependencies = [ "windows-targets 0.52.0", ] -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - [[package]] name = "windows-targets" version = "0.48.5" @@ -2290,12 +2277,6 @@ dependencies = [ "windows_x86_64_msvc 0.52.0", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -2308,12 +2289,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -2326,12 +2301,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -2344,12 +2313,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -2362,12 +2325,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -2380,12 +2337,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -2398,12 +2349,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -2459,7 +2404,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.42", + "syn 2.0.48", ] [[package]] From 2aa5723495180c04c785c7a0c9a8ada59549168a Mon Sep 17 00:00:00 2001 From: Yamato Security <71482215+YamatoSecurity@users.noreply.github.com> Date: Fri, 9 Feb 2024 09:17:18 +0900 Subject: [PATCH 10/11] update changelog --- CHANGELOG-Japanese.md | 1 + CHANGELOG.md | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG-Japanese.md b/CHANGELOG-Japanese.md index 5ca89e28e..c48cc3daa 100644 --- a/CHANGELOG-Japanese.md +++ b/CHANGELOG-Japanese.md @@ -22,6 +22,7 @@ - `search`コマンドの出力に入っている不要な改行文字を削除した。 (#1253) (@hitenkoku) - `no-color`オプション使用時のプログレスバーとウィザードのカラー出力を修正した。 (#1256) (@hitenkoku) +- ローカルのタイムゾーンを特定できない場合にパニックが発生する問題を修正した。`chrono`クレートのバージョン0.4.32で修正された。(#1273) **その他:** diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cae82cdc..b11d2573f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ - Added support for parsing JSON input when the data is inside an array. (#1248) (@hitenkoku) - Changed the `‖` separator into a `·` separator to make it easier to read and render properly on older terminals. (#1258) (@YamatoSecurity) - Added back `-h --help` option to General Options. (#1255) (@hitenkoku) -- Changed the `Details` output in `json-timeline` command from alphabetical order to the original order. +- Changed the `Details` output in `json-timeline` command from alphabetical order to the original order. - Skiped loading detection rules when running to command which is no need to load rule. (#1263) (@hitenkoku) - Changed standard output color rule in `csv-timeline` command. (#1271) (@hitenkoku) @@ -22,6 +22,7 @@ - Removed newline characters in `search` command output. (#1253) (@hitenkoku) - Fixed progress bar and wizard colored output when `--no-color` option is used. (#1256) (@hitenkoku) +- Fixed a panic when the local timezone was not able to be identified. This was fixed in the `chrono` crate version 0.4.32. (#1273) **Other:** From d890afa8dbb3d3f1d29b0fd7cc81d5db2f256c4a Mon Sep 17 00:00:00 2001 From: DustInDark <2350416+hitenkoku@users.noreply.github.com> Date: Sat, 10 Feb 2024 14:06:11 +0900 Subject: [PATCH 11/11] UI: fixed wrong output format #1272 refs: https://github.com/Yamato-Security/hayabusa/pull/1272#issuecomment-1933549996 --- src/afterfact.rs | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/afterfact.rs b/src/afterfact.rs index d4be78d36..5647a1187 100644 --- a/src/afterfact.rs +++ b/src/afterfact.rs @@ -218,7 +218,7 @@ fn emit_csv( displayflag: bool, color_map: HashMap, (all_record_cnt, recover_records_cnt): (u128, u128), - profile: &Vec<(CompactString, Profile)>, + profile: &[(CompactString, Profile)], stored_static: &StoredStatic, tl_start_end_time: (&Option>, &Option>), ) -> io::Result<()> { @@ -897,7 +897,7 @@ enum ColPos { fn _get_serialized_disp_output( disp_wtr: &BufferWriter, - data: &Vec<(CompactString, Profile)>, + data: &[(CompactString, Profile)], header: bool, (output_replacer, output_replaced_maps): (&AhoCorasick, &HashMap<&str, &str>), (output_remover, removed_replaced_maps): (&AhoCorasick, &HashMap<&str, &str>), @@ -975,24 +975,27 @@ fn _get_serialized_disp_output( if let Some((field, val)) = c.split_once(':') { let mut field_val_col_pair = vec![]; field_val_col_pair.push(( - format!("{field}: "), + format!(" {}: ", field.trim()), get_writable_color(Some(Color::Rgb(255, 158, 61)), no_color), )); field_val_col_pair.push(( - output_remover - .replace_all( - &output_replacer - .replace_all( - val, - &output_replaced_maps.values().collect_vec(), - ) - .split_whitespace() - .join(" "), - &removed_replaced_maps.values().collect_vec(), - ) - .split_ascii_whitespace() - .join(" "), + format!( + "{} ", + output_remover + .replace_all( + &output_replacer + .replace_all( + val, + &output_replaced_maps.values().collect_vec(), + ) + .split_whitespace() + .join(" "), + &removed_replaced_maps.values().collect_vec(), + ) + .split_ascii_whitespace() + .join(" ") + ), get_writable_color(Some(Color::Rgb(0, 255, 255)), no_color), )); output_str_char_pair.push(field_val_col_pair); @@ -1011,7 +1014,7 @@ fn _get_serialized_disp_output( write_color_buffer(disp_wtr, *color, c, false).ok(); } if field_idx != col_cnt - 1 { - write_color_buffer(disp_wtr, None, " ¦ ", false).ok(); + write_color_buffer(disp_wtr, None, "¦", false).ok(); } }