From ba2f0366bc9e3acd9c74fbfb84dcc01c8c8cc585 Mon Sep 17 00:00:00 2001 From: Arker123 Date: Thu, 9 Nov 2023 22:03:30 +0530 Subject: [PATCH 1/4] Restructured code --- floss/main.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/floss/main.py b/floss/main.py index acd288acf..83f8bc5ae 100644 --- a/floss/main.py +++ b/floss/main.py @@ -548,16 +548,14 @@ def main(argv=None) -> int: # set language configurations lang_id: Language - if args.language == Language.GO.value: - lang_id = Language.GO - elif args.language == Language.RUST.value: - lang_id = Language.RUST - elif args.language == Language.DOTNET.value: - lang_id = Language.DOTNET - elif args.language == "none": - lang_id = Language.UNKNOWN - else: - lang_id = identify_language(sample, static_strings) + lang_id_mapping = { + Language.GO.value: Language.GO, + Language.RUST.value: Language.RUST, + Language.DOTNET.value: Language.DOTNET, + "none": Language.UNKNOWN, + } + + lang_id = lang_id_mapping.get(args.language, identify_language(sample, static_strings)) if lang_id == Language.GO: if analysis.enable_tight_strings or analysis.enable_stack_strings or analysis.enable_decoded_strings: From ffeb8c86c76334d6f965eaecc7b5c0157d94875b Mon Sep 17 00:00:00 2001 From: Arker123 Date: Fri, 10 Nov 2023 14:33:03 +0530 Subject: [PATCH 2/4] Using Enums for better handling --- floss/main.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/floss/main.py b/floss/main.py index 83f8bc5ae..f384b9466 100644 --- a/floss/main.py +++ b/floss/main.py @@ -198,8 +198,8 @@ def make_parser(argv): advanced_group.add_argument( "--language", type=str, - choices=[l.value for l in Language if l != Language.UNKNOWN] + ["none"], - default="", + choices=[lang.value for lang in Language], + default="none", help="use language-specific string extraction, disable using 'none'" if show_all_options else argparse.SUPPRESS, ) advanced_group.add_argument( @@ -548,14 +548,12 @@ def main(argv=None) -> int: # set language configurations lang_id: Language - lang_id_mapping = { - Language.GO.value: Language.GO, - Language.RUST.value: Language.RUST, - Language.DOTNET.value: Language.DOTNET, - "none": Language.UNKNOWN, - } - - lang_id = lang_id_mapping.get(args.language, identify_language(sample, static_strings)) + + try: + lang_id = Language(args.language) + except ValueError: + print("Identifying language...", args.language) + lang_id = identify_language(sample, static_strings) if lang_id == Language.GO: if analysis.enable_tight_strings or analysis.enable_stack_strings or analysis.enable_decoded_strings: From 9ee8032eb54cca0895e96a3c85291d39ff5cd5c4 Mon Sep 17 00:00:00 2001 From: Arker123 Date: Fri, 10 Nov 2023 14:33:58 +0530 Subject: [PATCH 3/4] Tweak --- floss/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/floss/main.py b/floss/main.py index f384b9466..1f2ffe465 100644 --- a/floss/main.py +++ b/floss/main.py @@ -552,7 +552,6 @@ def main(argv=None) -> int: try: lang_id = Language(args.language) except ValueError: - print("Identifying language...", args.language) lang_id = identify_language(sample, static_strings) if lang_id == Language.GO: From 47c6f993fdaf20dc1915c5db98d93c975b2b0dcd Mon Sep 17 00:00:00 2001 From: Arnav Kharbanda <94680887+Arker123@users.noreply.github.com> Date: Fri, 10 Nov 2023 13:22:13 +0000 Subject: [PATCH 4/4] Minor variation --- floss/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/floss/main.py b/floss/main.py index 1f2ffe465..91a780d89 100644 --- a/floss/main.py +++ b/floss/main.py @@ -198,7 +198,7 @@ def make_parser(argv): advanced_group.add_argument( "--language", type=str, - choices=[lang.value for lang in Language], + choices=[lang.value for lang in Language if lang != Language.UNKNOWN] + ["none"], default="none", help="use language-specific string extraction, disable using 'none'" if show_all_options else argparse.SUPPRESS, )