Level 4 - Basic Multi-Pass (Puzzle 2)
Below is a puzzle involving 24 input buffers and their transformed outputs. Each buffer is exactly 64 bytes, shown in hex. Your task: Figure out the logic of the transformation used to go from the INPUT to the OUTPUT. Then, provide a Python function that, given any new 64-byte buffer, will produce the correct transformed output. Here are the 24 input (SRC) buffers in hex (one line per buffer): INPUT #01: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #02: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #03: 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #04: 02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #05: 80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #06: aa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 INPUT #07: 00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #08: f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #09: 0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #10: 55ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff INPUT #11: 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f INPUT #12: fffefdfcfbfaf9f8f7f6f5f4f3f2f1f0efeeedecebeae9e8e7e6e5e4e3e2e1e0dfdedddcdbdad9d8d7d6d5d4d3d2d1d0cfcecdcccbcac9c8c7c6c5c4c3c2c1c0 INPUT #13: aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55 INPUT #14: 55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa55aa INPUT #15: f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 INPUT #16: 0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f INPUT #17: 01010101010101010202020202020202040404040404040408080808080808081010101010101010202020202020202040404040404040408080808080808080 INPUT #18: 01010101020202020202020203030303040404040505050508080808090909090101010102020202020202020303030304040404050505050808080809090909 INPUT #19: 0102040810204080010204081020408001020408102040800102040810204080fefdfbf7efdfbf7ffefdfbf7efdfbf7ffefdfbf7efdfbf7ffefdfbf7efdfbf7f INPUT #20: 48656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c20576f726c64212048656c6c6f2c2057 INPUT #21: 4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20 INPUT #22: 0101020305080d1522375990e97962db3d18556dc22ff12011314273b528dd05e2e7c9b07929a2cb6d38a5dd825fe140216182e36548adf5a29739d009d9e2bb INPUT #23: 789b34caf54f2e220acd941e71b88d5836866d0d858b63549e94be2cacc67f5b7ef28f2d9903959f63d3d893dce752779c84162917ec8ff1af4a6422d367e18d INPUT #24: c5d71484f8cf9bf4b76f47904730804b9e3225a9f133b5dea168f4e2851f072fcc00fcaa7ca62061717a48e52e29a3fa379a953faa6893e32ec5a27b945e605f And here are the corresponding transformed outputs (DST) in hex: OUTPUT #01: aa54fea852fca650faa44ef8a24cf6a0a7aeb5bcc3cad1d8dfe6edf4fb020910171e252c333a41484f565d646b727980878e959ca3aab1b8bfc6cdd4dbe2e9f0 OUTPUT #02: 55aaff54a9fe53a8fd52a7fc51a6fb50565c62686e747a80868c92989ea4aab0b6bcc2c8ced4dae0e6ecf2f8fe040a10161c22282e343a40464c52585e646a70 OUTPUT #03: ab55ffa953fda751fba54ff9a34df7a1a8afb6bdc4cbd2d9e0e7eef5fc030a11181f262d343b424950575e656c737a81888f969da4abb2b9c0c7ced5dce3eaf1 OUTPUT #04: a852fca650faa44ef8a24cf6a04af49ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970777e858c939aa1a8afb6bdc4cbd2d9e0e7ee OUTPUT #05: 2ad47e28d27c26d07a24ce7822cc7620272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f464d545b626970 OUTPUT #06: 00aa54fea852fca650faa44ef8a24cf6fd040b121920272e353c434a51585f666d747b828990979ea5acb3bac1c8cfd6dde4ebf2f900070e151c232a31383f46 OUTPUT #07: aaff54a9fe53a8fd52a7fc51a6fb50a5abb1b7bdc3c9cfd5dbe1e7edf3f9ff050b11171d23292f353b41474d53595f656b71777d83898f959ba1a7adb3b9bfc5 OUTPUT #08: 5aaf0459ae0358ad0257ac0156ab00555b61676d73797f858b91979da3a9afb5bbc1c7cdd3d9dfe5ebf1f7fd03090f151b21272d33393f454b51575d63696f75 OUTPUT #09: a5fa4fa4f94ea3f84da2f74ca1f64ba0a6acb2b8bec4cad0d6dce2e8eef4fa00060c12181e242a30363c42484e545a60666c72787e848a90969ca2a8aeb4bac0 OUTPUT #10: ff54a9fe53a8fd52a7fc51a6fb50a5fa00060c12181e242a30363c42484e545a60666c72787e848a90969ca2a8aeb4bac0c6ccd2d8dee4eaf0f6fc02080e141a OUTPUT #11: aa55fda65403af5cfea141e2882fd3788fa7c0daf5112e4c6b8baccef1153a6087afd8022d5986b4e3134476a9dd12487fb7f02a65a1de1c5b9bdc1e61a5ea30 OUTPUT #12: 55a90056a7f74a9cf955b4126bc31e786e63574a3c2d1d0cfae7d3bea8917960462b0ff2d4b59574522f0be6c09971481ef3c79a6c3d0ddcaa77430ed8a16930 OUTPUT #13: 00fffffefefdfdfcfcfbfbfafaf9f9f8a905b612c31fd02cdd39ea46f7530460116d1e7a2b87389445a152ae5fbb6cc879d586e293efa0fcad09ba16c723d430 OUTPUT #14: fffffefefdfdfcfcfbfbfafaf9f9f8f8540561126e1f7b2c88399546a253af60bc6dc97ad687e394f0a1fdae0abb17c824d531e23eef4bfc5809651672237f30 OUTPUT #15: 5ab40e68c21c76d02a84de3892ec46a0978e857c736a61584f463d342b22191007fef5ece3dad1c8bfb6ada49b928980776e655c534a41382f261d140b02f9f0 OUTPUT #16: a54aef9439de8328cd7217bc6106ab50667c92a8bed4ea00162c42586e849ab0c6dcf2081e344a60768ca2b8cee4fa10263c52687e94aac0d6ec02182e445a70 OUTPUT #17: ab5601ac5702ad5800a850f8a048f098a3aeb9c4cfdae5f0ff0e1d2c3b4a59687f96adc4dbf20920476e95bce30a31589fe62d74bb024990179e25ac33ba41c8 OUTPUT #18: ab5601ac54fca44cf49c44ec953ee7909ba6b1bcc8d4e0ecfb0a19283848586870788088919aa3acb5bec7d0dae4eef8030e1924303c485463728190a0b0c0d0 OUTPUT #19: ab5301a35de7d1fba64efc9e58e2ccf6fe071221385fa62d353e49586f96dd64696d6f6d63490f959a9ea09e947a40c6cbcfd1cfc5ab71f7fc000200f6dca228 OUTPUT #20: e2b1773d0288120fd4ac7240cb55370679ec6295bc1a90097ce70f3685f164d74d80a7057bf467d2fa2170dc4fc2386b92f066df52bde50c5bc73aad23567ddb OUTPUT #21: e6ab835219a3664019f8bf4917dca267e00781f16c93fb6fdb5689b01a90057feb55d03cb733acd33ba6168dfd77e151c6345bc73aaa25587ff965d0f762d8ff OUTPUT #22: ab56fea756f89f5ee68376b0f3c68eff4362be32fb31295068a0e9631f4e323e2715e59c1c4cf5c73b7a260a93f9e12850b8412b97e69a963fdd1df404e4cd8f OUTPUT #23: d203a1016045c951f158964a25375e508d1a8ea22ec02a852ac58abd703dc325aaa3396d0d17b359c39d7c16f9e740be61ec0939574ae0d88edf4a734dbba337 OUTPUT #24: 6fecaad82a8fc01e3b00ed2714aed8b95e97c3736ba56146ee5d5841cdf301370a1114c548f51c84fc7dccb8ed1dc7c806a743893aa9432d622ed759f459c026 Instructions: - Return just your best possible approximation as a small python function that takes a 64 byte array as input, and returns the 64 byte array as output. - Remember, the transformation is the same for all 24 buffers. - The function will be scored by the number of buffers that are correctly transformed (as shown in the 24 outputs). - And it also will be tested on another set of 24 hidden input buffers not shown in the prompt. - Do not include anything else in your response, no introduction text or explanations. Example Output: def transform(data: bytes) -> bytes: # Transform logic return bytes
Copy Puzzle Prompt
Submit your solution:
def transform(data: bytes) -> bytes: # Your solution here return data
Submit
Leaderboard