1
$\begingroup$

I have a encryption png.

I open the file in hex editor and I saw it:

83 5A 44 4D 07 00 10 00 0A 0A 0A 07 43 42 4E 58 0A 0A 0B A5 0A 0A 0A D8 02 08 0A 0A 0A 78 C8 D2 F7 0A 0A 0A 0B 79 58 4D 48 0A A4 C4 16 E3 0A 0A 0A 0E 6D 4B 47 4B 0A 0A BB 85 01 F6 6B 0F 0A 0A 0A 03 7A 42 53 79 0A 0A 04 C9 0A 0A 04 C9 0B CD 65 A2 6E 0A 0A 06 70 43 4E 4B 5E 72 54 E7 D7 CB 61 5E 53 B4 0D 7A D1 6E 80 86 19 50 7A D5 81 AE 5B 70 1B F6 1D 10 16 B1 15 47 6A 4A 1D E4 0F 2B 09 49 25 F0 B3 C2 CC AF 11 1D B4 53 3E 09 17 1A D6 B1 5A 72 2A C9 7E ED 03 F4 01 E8 A8 5B 30 53 B2 65 E2 2C 69 8D 10 69 54 F7 A0 64 3E BB E5 B3 5F 9F 71 79 E5 A7 A0 C5 8D 01 77 A9 63 43 40 E1 91 79 E4 33 ED FD F1 62 75 75 F5 1E CA C6 31 97 F7 1D 6A BC 43 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 42 49 8A 2A 07 0B 88 3E 0E 02 D8 1A 2A 76 BE B5 B5 95 D7 08 3F E0 D4 36 B5 F9 2A B1 35 EE E0 E8 A1 31 97 E6 94 50 43 C9 D8 3C DD 75 B4 F4 3A B1 35 DA B3 F5 78 FB 78 7C 05 33 F8 F4 D3 16 28 19 11 6A AC 56 D8 FC E4 D5 79 F4 47 7D F5 74 65 25 B1 8F 16 71 35 B7 C2 E4 F8 37 D6 F3 EE F6 C4 6C FC 0B FF 9A 8C DA 58 D7 E1 5D 7C BD B8 71 60 2A 07 51 65 E1 D4 A5 95 96 F5 33 77 F7 B0 BB 97 77 EC FE 71 D8 11 3B 17 F7 FC 2D 3F 25 EC 34 B7 9A D7 1F 73 F4 F0 15 45 B8 51 44 94 ED 8C 2F 67 E5 A4 74 F3 F0 53 FC CB 71 1D DD C5 34 B4 3B 9D 77 7A 06 83 35 BC D2 BF 87 79 7D 25 6F FD 5F D2 D1 B2 F8 C1 E7 ED D3 0D CD 5A E7 DD D9 F1 A3 FA F3 97 3D D3 0D 8D A7 96 73 F0 62 6B 33 F1 6A 78 FE 98 77 A7 91 D7 1D 92 DA E5 64 28 13 11 BC C6 EC 70 75 C2 39 74 1E FC 36 52 81 F5 FD 6C 3F A9 83 B8 5B D2 39 F2 70 0C 5D E3 A5 60 E5 8D CD 73 5B D2 39 AB 09 A2 41 81 A5 54 94 71 75 77 75 EC 68 FC 11 4D 37 E5 F4 3A 31 69 F5 8C 43 C9 DC 12 C6 82 81 DC 13 4D 19 13 5E 74 F4 B2 F7 95 F5 27 1D 8F 15 12 2E E9 E0 FB 1D 9D FC 54 AE B5 94 15 BD 2C 75 C7 60 63 EB 7B 74 2A B4 73 2B 07 61 28 07 51 AB 71 F9 F6 C5 F3 D9 CA E9 73 F4 F0 F9 5C A4 42 34 B1 F9 C1 3B 15 7E 64 B5 F7 3B B1 91 54 41 75 F2 C1 40 7C 71 D2 89 75 87 3A AB AC 08 D8 BA 7B D1 B1 A1 B3 B1 7A C1 60 E7 80 EE 91 D1 55 84 35 42 56 30 F7 53 7C 3D CF EC B4 52 97 C5 64 63 8A 3E 66 D0 EC 7D CD 73 4E 32 98 ED A5 B5 64 E1 BC CD 12 2E A4 85 3F EE 93 B1 9A 3D 64 10 F2 66 B3 CE 88 5F 91 26 25 ED B7 2B 55 B6 BF C5 AC 1C D8 BA 6B C9 7C EB 94 90 B5 FF F7 AB 6D E7 E5 A5 CF 61 D3 2D 1E 73 7C ED D5 E7 D7 75 F9 7A 6D 96 1B 68 70 D6 BE 78 EC 65 5F A4 AE 3D 60 63 34 ED DB EB F9 3D D8 BA 1C D8 BA A7 A4 67 06 58 E5 E9 BF AF E6 5D 84 E0 D6 87 D5 37 71 21 37 68 E0 71 79 F1 B1 40 95 30 A7 96 73 F0 34 9B D9 DD CC 42 AD C0 70 29 CE DB DD 90 9D 65 76 F6 7E F7 7D 8B 72 7F FB 9F 07 22 5E 49 10 BC 44 3C 12 16 67 AD D4 D6 D0 A9 79 33 13 7B D2 C9 64 09 C1 23 0D D1 4D E4 55 C7 74 2B EF CB D0 12 A1 37 B7 4A C6 D8 FC D7 3F 6F 8D 73 6D E8 FB 62 61 43 C9 3C E3 85 0D 59 89 CB AE F6 4B D9 71 D7 75 3C BD 17 E5 F8 97 D4 7D 5E 36 A3 7D AC 91 9C 9A 8C 07 31 72 16 DC 91 FB 87 30 14 C6 BB 76 69 AB 2A 7B 90 D4 84 DD 91 DE 1D 0F E8 B9 31 B5 23 45 5A E2 E7 45 BC 16 DC 4B 10 3C 27 91 F7 9F 97 FB 7F F4 9C 14 14 34 71 D3 F2 EA A1 79 3D 7F DC 28 3E 33 70 8F 09 D8 7A 50 26 F5 B3 99 86 91 3C 66 DB 52 50 F2 3C 97 DD 3C 12 D9 08 D8 7A 60 2E 44 38 BE 4D DB 7E D4 9C 30 90 2D 07 A3 45 ED A1 DE 18 B9 27 7F 3E 45 10 44 85 DB 40 EC 3F 60 F3 76 60 B8 D6 AC 8F 88 D5 5D 5B 36 7E 9F 22 36 4B C1 43 C9 E3 3B FE 52 41 F9 F8 45 94 8F 9B 20 BF 6E EF C4 84 56 9F 1F AD 72 F5 8D 1D 9C 17 E6 1D 94 E2 75 D0 72 2D 01 63 35 63 32 01 24 96 64 C1 63 87 D6 99 6D 29 30 BB 1C 3E 89 16 16 B1 9C 50 BE 24 9B 83 D9 4E 10 44 85 6E 0F CA 81 ED AD AE A2 4B FF F0 99 E8 58 3F 2F 29 19 6D A3 13 C9 3E 99 8C 59 E9 43 3D 5B 1C 66 F4 25 75 9C 8C 33 A8 B6 E4 22 BF F2 8D 81 10 6F 1F 9F 16 AD 4B D8 7A 40 E6 67 76 91 72 69 A5 7E B4 12 F9 A2 D5 03 D0 74 99 22 55 3C 75 AB D4 25 B8 3D 31 A4 B8 B6 64 B5 B2 BD 4A 96 7A D8 7A 30 36 F3 27 DF C9 EE E8 E0 15 D0 59 E8 6F 61 E1 67 7C FD AB D9 95 DC 92 8C B7 5B 6B FB E6 F2 AA 8A DA DB A1 E2 32 47 72 BA 6C C0 36 DB AE EB 3E E2 D4 46 C4 F2 30 D5 9E 63 D7 5D BF A7 9D 83 EB D2 C0 76 77 9B F7 6E 2D 37 20 26 26 2A BE BE FA 32 68 BB AA 80 D0 91 D1 F5 A7 09 F8 EE 98 8C 19 A5 71 39 D7 42 EA D0 CC E8 EF E6 BC 07 B0 F5 46 87 C2 E0 51 FF 44 F5 EE 82 C8 13 A9 1E 1A 80 20 60 C3 08 84 30 2A 45 3A 63 32 DB 00 71 A0 56 56 35 51 63 71 EF D8 98 E1 36 FF A7 70 65 A4 2D 54 A4 54 1E 84 5F 32 E9 D8 68 20 1A CD A0 D2 F2 31 B3 07 05 BE C7 A1 8D 3E 96 5E 71 11 5D 00 D1 24 55 57 26 DF D4 B4 70 0F D9 F3 B0 5C B7 F9 7D 26 FC 01 70 15 A9 8C DA AF CF 4E 27 51 2F 73 2C 9E 3E 96 3E 0D 4D 2C 80 50 B5 FD 4C 8F 67 21 00 97 16 9E FF 56 57 12 BD CA E7 FB 2E 10 78 C7 D5 F0 95 69 FC 18 B2 F6 DD F6 7F 9F 18 2F 73 F8 85 5D A0 FB 59 01 63 D2 38 73 8D C5 84 56 C9 BC 00 CD 30 4A C1 4C 8F CF 61 B2 F9 BD F4 50 45 7A 2D 94 50 9C C3 E8 AF 8F 65 78 8D 8D 2F B0 25 56 F4 A5 B6 5D A9 9B 7C 04 39 4D 10 BC 40 60 20 3D 98 C4 F7 52 FB 16 B1 9B CA 43 11 B8 B9 A5 A4 8B 6B E8 A3 6F D3 26 C4 05 A5 38 99 EF 41 97 B6 B0 6D D7 E1 84 0A 94 32 63 D2 20 C3 C7 C3 49 CE DE F2 6F A1 9C 85 F1 8C 95 71 E1 D6 A5 61 4C B5 93 31 D3 26 B5 3F 37 7B F8 B0 4E FD 8F 4E 13 F9 8D 31 C4 4E 95 3A 63 32 1F D4 1D 5C 33 D5 8C 19 1B D7 91 89 25 6C D2 B3 BD 10 3D 0A EF 45 99 21 D2 90 94 E2 78 5D AC F1 48 B8 26 A4 30 1B 2D 41 10 BC 40 93 18 25 0D 14 A6 97 6E 2C 34 75 F7 F3 4B E6 AC A5 FE 88 C3 2B BF 64 0A D0 74 F1 69 7C 7D CE 6D C1 EF 15 BA EC E4 83 23 53 C7 B1 BA A5 DC 2A 19 71 DD 1F 31 B7 A1 2F 07 51 2F FF 5E 74 76 F7 46 A6 A6 FC 55 EF 70 5B 52 E1 58 45 F4 29 82 40 04 4D 2D 80 E6 9C A7 EC D7 01 CE 88 49 25 77 7C 70 5D 46 10 BC 46 B5 0B FB BA 21 7F 1A E8 49 D7 E1 A7 26 3C 7F 67 A9 E4 5F E5 FE F3 E2 3C E1 15 70 13 AB 49 35 1F F3 62 75 75 35 B1 EF 32 BC 7D 5D F9 BC 4A DD 3F FC 23 30 9C 7D 6A F4 DC FD E9 25 3E 2D B4 A5 D8 30 FD 85 B7 D0 59 E8 AF D4 56 25 5D CE FA 32 40 76 AD 15 72 B8 99 70 08 D1 F1 B3 D8 A4 E9 4C 99 C7 D2 7A B8 FF EC 59 B7 EB 49 5B E5 FC 74 FF B7 3C 46 93 0D 0F 1B 10 53 F2 94 8A 14 03 03 F7 FF A2 6B 81 5B 5E 4E 10 44 89 C2 CE C8 F3 5E A9 B1 DF 5C C4 36 87 C2 64 D7 4C C2 DC 11 30 FA E5 76 6F 6A 52 2F 63 32 27 24 D5 23 06 CE 8D 31 FF E4 B6 13 66 0F E5 55 85 84 73 E4 67 BC E7 67 56 43 4F EB B1 DD BC 77 31 46 2D 91 3E 96 28 9D E5 1E 47 93 A1 33 E1 90 07 FE 8C 54 39 F5 4C B7 D0 23 F9 00 66 D7 F1 7D F4 33 FE 22 31 2C 0E 45 82 3E 96 20 97 B1 0F C1 C7 05 7D 5F 6C A4 C3 B2 FF CB 34 DE F7 4D E4 53 CC B8 75 26 CF AE EB 9E B3 FE CD 88 C0 C6 C0 EE 17 9F 5F B0 A4 F4 20 93 53 F3 4D A0 E1 31 CF 32 A1 AE EB BE 93 F1 68 3F E5 9E 61 55 83 C9 B9 DE 2D FD 42 FF CF FF 35 90 2A 95 3A 63 32 7F 9C 9D 99 75 A3 6F 04 C5 58 9D D6 29 DF D0 CA DC 4A 10 38 F7 18 8D ED D0 F3 E2 2A 7D 90 D6 A0 3C BA 59 41 10 38 09 9C C5 2D 95 14 BE 47 F4 2B C8 F0 B0 62 C7 38 63 C2 06 42 37 37 62 EB 89 DE D6 2C A1 BF 7F DB 90 67 D8 7A E0 1E 5E 22 92 D7 3D 5F A8 5E D0 B9 CD F5 63 53 5B A6 F6 49 8E 5F 5E 14 69 22 63 32 7F 98 17 D6 6D 53 A8 2C 61 E3 B0 51 FF A2 AE F8 12 49 43 C9 63 99 E4 EA 34 D9 E1 98 97 A5 F8 85 27 BC A7 D1 ED D4 81 7E 21 4E 44 92 3E 96 24 51 FD 7C D9 ED F6 45 75 30 C9 49 86 4E 31 AD 59 05 B4 5F 4B 90 0B 63 D2 AA E7 D7 DF 74 D7 F6 C0 C0 67 67 E5 74 57 DE 97 A4 DE C3 D3 83 9D D5 81 44 0F 63 D4 9B 8C C7 D3 F0 B5 64 B5 7C 63 FD 70 25 19 21 A2 B2 DF B7 53 5E 95 BF BC BC CF A7 9F E2 4F 1D 57 19 D0 D1 38 8B 10 43 C9 9C 22 D3 04 27 8C 93 8F BF FA 60 61 51 D6 68 C3 54 7E FB 09 43 2A 28 07 51 2F 61 8D 3C D4 31 79 79 F7 ED 45 8C 5E E7 3D 3A 16 42 04 05 F1 8B 52 B8 8D C6 D4 CC 9F 74 21 31 CB 30 A3 AE 6B 11 FF ED C4 F7 A1 AA 4E E1 DC B7 55 0D 95 39 BE E9 CD CF FF 35 13 12 04 26 D5 F2 59 4B 87 95 D1 55 14 6D 72 74 FA 1D FB C1 4B 4F C8 BD 35 A3 1F 3E 9B AE 6B 79 00 C0 21 B6 39 62 84 96 71 77 54 BA 6A 78 D2 DF CF 90 11 DE BF D1 D6 D0 A9 C8 3C 38 0D D7 80 81 41 8F B5 F1 5B 9E FD 1D AB 78 D0 8E 98 8C 07 A0 A8 9D F6 1A E0 89 EC E2 D6 F7 F4 C6 DA 5D B4 EA ED 5A E5 10 FF 4D 1B 99 4E 10 3C 62 63 EB D1 EE 69 A6 00 56 56 35 21 00 F9 27 27 36 14 2B 1A 85 C1 DB 9B 03 2F 07 11 BF 76 E9 E9 5D 2D F8 BC 86 A0 C4 2C C2 4F 70 8B F2 F8 66 F0 13 68 03 9C E5 2D 9F 3E 66 56 B6 27 C5 5F 92 83 DD 3C C4 63 DD 33 90 B3 BF 4D 5F B4 F8 5B A6 B5 76 11 0A 10 29 07 41 50 50 F2 2C ED 0A 66 ED 91 7B CD 6F 89 46 76 73 E4 E3 FB ED C4 53 69 C3 B1 9F FE D2 47 C6 E8 A5 77 D7 56 31 DA A0 54 E0 05 6E A5 76 7B 8D F4 68 E5 F0 A1 E2 6C 3D DB 34 D0 D5 D5 C5 64 63 97 2D 31 95 A6 1F 65 F2 E2 B7 05 07 09 A1 3C F6 6F 85 6D B8 2D F9 2A 28 BD A9 76 E5 ED 96 96 A7 8B 3E 8E FC D2 D4 57 C7 D3 42 25 07 E1 6B AC 06 1A AE 2B BE D6 C0 B6 AC 22 BF 9A 8C DA 14 D1 65 00 C5 91 79 A8 AE 2B BE 8C 8C 73 87 98 8C DA 1C 71 35 36 C4 33 FA AD 6B 54 57 AE 2B BE CE 99 D5 04 A0 EA 16 AB 6B 54 57 AE 2B BE CB FC E4 60 F4 2C CD C4 5D 9F 66 AD 6D 32 F1 07 AB 1B F3 51 01 75 4D 1F A8 F0 12 11 48 19 3C B5 11 2B 00 1F 27 A5 9F 3E 8E 0C E6 F7 FE 28 B1 21 A8 16 44 A7 AE 2B BE D9 C0 93 AD EC C2 BF 98 8C DA 8A B3 45 25 6E 7D F3 A4 24 B4 70 DE 56 B3 AA 13 6F 1F 0F 90 9B 51 A4 EC EE A0 E9 3A 9E 3E 0E 02 6C C0 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 0E 63 02 1A AE 2B 4A 9A 8C 0A 4B 10 08 96 30 7F E0 DE F5 09 18 CE 1C 6B 0F 5D C5 D6 0A 0A 0A 0A 43 4F 44 4E A4 48 6A 88

Now, I know that png file must start with the above sequence:

83 5A 44 4D 07 00 10 00 0A 0A 0A 07 43 42 4E 58 0A 0A - original sequence
89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 -  need to be

In addition the final sequence of the file must be with the above sequence:

0A 0A 0A 0A 43 4F 44 4E A4 48 6A 88 - original final sequence
00 00 00 00 49 45 4E 44 AE 42 60 82 - need to be

I'm trying to figure out what type of encryption the file is encrypted.

I thought it was substitution cipher so I wrote this script:

import io

with open('second.png', mode='rb') as file:  # b is important -> binary
    fileContent = file.read()
    binary = " ".join("{:02x}".format(ord(c)) for c in fileContent)
    # for word in binary.split():
    # print word

    arr1 = ["89", "50", "4E", "47", "0D", "0A", "1A", "00", "49", "48", "44", "52", "49", "45" ,"4E",  "44" ,"AE", "42", "60", "82"]
    arr2 = ["83", "5A", "44", "4D", "07", "00", "10", "0A", "43", "42", "4E", "58", "43", "4F", "44", "4E",  "A4", "48", "6A", "88"]
    with open('second2.png', mode='wb') as file2:  # b is important -> binary
        for word in binary.split():
            if word.upper() in arr2:
                # print word
                file2.write( (arr1[arr2.index(word.upper())]).decode("hex") )
                #bytearray.fromhex("7061756c").decode()
            else:
                file2.write( word.upper().decode('hex') )

But it doesn't work.

$\endgroup$
4
$\begingroup$

The reason your code doesn't work is that you haven't figured out how to decrypt the byte values that don't appear in the header or in the final sequence.

While you could try to break this encryption simply as a general monoalphabetic substitution cipher on bytes, that would require you to individually figure out the corresponding plaintext byte for each of the 256 possible ciphertext bytes. A far more efficient method would be to see if there's some simple rule that relates the ciphertext bytes to the plaintext bytes.

The first possibility I would try is bitwise XOR. Indeed, if you take the first 18 bytes of your file, and XOR them with the expected PNG header bytes, you get:

ciphertext: 83 5A 44 4D 07 00 10 00 0A 0A 0A 07 43 42 4E 58 0A 0A
PNG header: 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00
-----------------------------------------------------------------
       XOR: 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A 0A

That does suggest a rather obvious pattern, doesn't it?

| improve this answer | |
$\endgroup$
  • $\begingroup$ Thanks! I succeeded to decipher the encryption png ! <3 $\endgroup$ – Yair B. May 11 '17 at 22:27

Not the answer you're looking for? Browse other questions tagged or ask your own question.