From 1b79c139d1b11c3d83e2ac6a0d49f082eee90720 Mon Sep 17 00:00:00 2001 From: nolze Date: Sat, 6 Jan 2024 01:47:57 +0900 Subject: [PATCH] Add tests for XOR Obfuscation --- README.md | 5 +++++ tests/inputs/xor_password_123456789012345.xls | Bin 0 -> 91136 bytes .../xor_password_123456789012345_plain.xls | Bin 0 -> 212992 bytes tests/test_compare_known_output.py | 19 +++++++++--------- 4 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 tests/inputs/xor_password_123456789012345.xls create mode 100644 tests/outputs/xor_password_123456789012345_plain.xls diff --git a/README.md b/README.md index f935cef..04a1677 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ msoffcrypto-tool (formerly ms-offcrypto-tool) is Python tool and library for dec * [Resources](#resources) * [Use cases and mentions](#use-cases-and-mentions) * [Contributors](#contributors) +* [Credits](#credits) ## Installation @@ -206,3 +207,7 @@ poetry run coverage run -m pytest -v ## Contributors * + +## Credits + +* The sample file for XOR Obfuscation is from: diff --git a/tests/inputs/xor_password_123456789012345.xls b/tests/inputs/xor_password_123456789012345.xls new file mode 100644 index 0000000000000000000000000000000000000000..51e12cc5c49c0620a49f176948fc82946dd788bf GIT binary patch literal 91136 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 literal 0 HcmV?d00001 diff --git a/tests/test_compare_known_output.py b/tests/test_compare_known_output.py index 6693445..5889e51 100644 --- a/tests/test_compare_known_output.py +++ b/tests/test_compare_known_output.py @@ -30,12 +30,13 @@ #: pairs of input/output files EXAMPLE_FILES = ( - ("example_password.docx", "example.docx"), - ("example_password.xlsx", "example.xlsx"), - ("ecma376standard_password.docx", "ecma376standard_password_plain.docx"), - ("rc4cryptoapi_password.doc", "rc4cryptoapi_password_plain.doc"), - ("rc4cryptoapi_password.xls", "rc4cryptoapi_password_plain.xls"), - ("rc4cryptoapi_password.ppt", "rc4cryptoapi_password_plain.ppt"), + ("example_password.docx", "example.docx", PASSWORD), + ("example_password.xlsx", "example.xlsx", PASSWORD), + ("ecma376standard_password.docx", "ecma376standard_password_plain.docx", PASSWORD), + ("rc4cryptoapi_password.doc", "rc4cryptoapi_password_plain.doc", PASSWORD), + ("rc4cryptoapi_password.xls", "rc4cryptoapi_password_plain.xls", PASSWORD), + ("rc4cryptoapi_password.ppt", "rc4cryptoapi_password_plain.ppt", PASSWORD), + ("xor_password_123456789012345.xls", "xor_password_123456789012345_plain.xls", "123456789012345"), ) #: output dir: @@ -50,7 +51,7 @@ class KnownOutputCompare(unittest.TestCase): def test_known_output(self): """See module doc.""" - for in_name, out_name in EXAMPLE_FILES: + for in_name, out_name, password in EXAMPLE_FILES: input_path = pjoin(TEST_BASE_DIR, INPUT_DIR, in_name) expect_path = pjoin(TEST_BASE_DIR, OUTPUT_DIR, out_name) @@ -58,9 +59,9 @@ def test_known_output(self): with open(input_path, "rb") as input_handle: file = msoffcrypto.OfficeFile(input_handle) if file.format == "ooxml" and file.type in ["standard", "agile"]: - file.load_key(password=PASSWORD, verify_password=True) + file.load_key(password=password, verify_password=True) else: - file.load_key(password=PASSWORD) + file.load_key(password=password) out_desc = None out_path = None