Level 4 - Basic Multi-Pass (Puzzle 3)
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: 00010203040506070100030205040706020300010607040503020100070605040405060700010203050407060100030206070405020300010706050403020100 OUTPUT #02: fffefdfcfbfaf9f80001020304050607010003020504070602030001060704050302010007060504040506070001020305040706010003020607040502030001 OUTPUT #03: 01010203040506070100030205040706020300010607040503020100070605040405060700010203050407060100030206070405020300010706050403020100 OUTPUT #04: 02010203040506070100030205040706020300010607040503020100070605040405060700010203050407060100030206070405020300010706050403020100 OUTPUT #05: 80010203040506070100030205040706020300010607040503020100070605040405060700010203050407060100030206070405020300010706050403020100 OUTPUT #06: aa010203040506070100030205040706020300010607040503020100070605040405060700010203050407060100030206070405020300010706050403020100 OUTPUT #07: 00fefdfcfbfaf9f80001020304050607010003020504070602030001060704050302010007060504040506070001020305040706010003020607040502030001 OUTPUT #08: f0fefdfcfbfaf9f80001020304050607010003020504070602030001060704050302010007060504040506070001020305040706010003020607040502030001 OUTPUT #09: 0ffefdfcfbfaf9f80001020304050607010003020504070602030001060704050302010007060504040506070001020305040706010003020607040502030001 OUTPUT #10: 55fefdfcfbfaf9f80001020304050607010003020504070602030001060704050302010007060504040506070001020305040706010003020607040502030001 OUTPUT #11: 0000000000000000090b090f090b09171212161612121e1e1b1d1f1d1b252725242424242c2c2c2c2d2f2d333537353336363a3a3e3e3a3a3f41434147414341 OUTPUT #12: fffffffffffffffff8f6f4f6f0f6f4f6f1f1edede9e9ededeae8eae4e2e0e2e4e3e3e3e3dbdbdbdbdcdad8dadcd2d0d2d5d5d1d1d5d5c9c9cecccec8cecccec0 OUTPUT #13: aa54a856ae50ac52ab57a955af53ad51ac56ae54a852aa50ad59af5ba95dab5fae58ac5aaa5ca85eaf5bad59ab5fa95db05ab258b45eb65cb15db35fb559b75b OUTPUT #14: 55ab57a951af53ad56aa54a852ae50ac57ad55af53a951ab58ac5aae5ca85eaa59af5bad5dab5fa95aae58ac5eaa5ca85bb159b35fb55db75cb05eb258b45ab6 OUTPUT #15: f0f1f2f3f4f5f6f7f1f0f3f2f5f4f7f6f2f3f0f1f6f7f4f5f3f2f1f0f7f6f5f4f4f5f6f7f0f1f2f3f5f4f7f6f1f0f3f2f6f7f4f5f2f3f0f1f7f6f5f4f3f2f1f0 OUTPUT #16: 0f0e0d0c0b0a09081011121314151617111013121514171612131011161714151312111017161514141516171011121315141716111013121617141512131011 OUTPUT #17: 0100030205040706030201000706050406070405020300010b0a09080f0e0d0c1415161710111213252427262120232246474445424340418786858483828180 OUTPUT #18: 0100030206070405030201000001020306070405030201000b0a090808090a0b0504070602030001070605040c0d0e0f0a0b08090f0e0d0c0f0e0d0c14151617 OUTPUT #19: 0103060b142546870202070a15244786030504091627448504040508172645840200fdf8f7e6c584030302fff0e1c283040203fef1e0c382050500fdf2e3c081 OUTPUT #20: 48646e6f6b29265070726f6626244f616e6f732d265c77736f6626204f6d6968733126587773766f26244f6975747236265c777b766f21214f6d717072362159 OUTPUT #21: 4c6e706669256f7774776c2261756b77742377687227656868762d206277777169667a6a7c7c702366686c766a7d6e69746c2468766a7c35277b6e68236e7020 OUTPUT #22: 01000000010d0b1223395892ee7f65db3f1b556cc034f52514354775bc2ee60fe6eacfb77928a0c8723ca8e18361e04227668aea6f4bb5fca99f42d414e5efc5 OUTPUT #23: 789a36c9f14a28250bcf971c76bc885e38896d0c83886351a196c32cabcc845982f7913299029fa468d9df9be5e9517ba28b1e2c19f793f0b650692ade6bee93 OUTPUT #24: c5d61687fcca9df3b8714a924c34874ba03525a8f730b1e7a46af5e68c270c35d00502ad84af2262767e4fe9372baef83da19946b46b9fee35cdab819f606161 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