Сабж, сделал два конфига прогой, в одном зашифрованом конфиге где-то есть строка c:\a\keys.dat в другом c:\b\keys.dat Судя по виду криптотекста это какой-то хоr , но у меня почему-то не хватает мозгов дешифровать( Файл с c:\a\keys.dat : Код (Text): Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 6D EA B8 8E FB A8 67 21 47 88 F7 45 FC 8A 35 85 m긎û¨g!Gˆ÷EüŠ5… 00000010 E0 88 6F A6 99 0D 0A B2 8E EC 69 AC 01 7A CF 7F àˆo¦™ ²Žìi¬ zÏ 00000020 BC CA 5B 3E 99 9A 62 91 36 C2 BE F9 ED 5F DF FD ¼Ê[>™šb‘6¾ùí_ßý 00000030 00 0D 6F F9 82 FE A8 C1 8E 2B BF 3A A2 D0 59 96 où‚þ¨ÁŽ+¿:¢ÐY– 00000040 58 36 48 54 47 AA 79 2C BF 74 DD FC D8 43 25 C3 X6HTGªy,¿tÝüØC%à 00000050 75 43 A8 B6 A8 D8 7C 17 24 DC 2A A1 39 9A E8 1D uC¨¶¨Ø| $Ü*¡9šè 00000060 3B 2D 4E FB 5F D8 4D 69 82 A1 66 92 2A DF F4 56 ;-Nû_ØMi‚¡f’*ßôV 00000070 AE D9 33 8B 64 0B 75 2D 01 CC 84 FB EA F1 EE 95 ®Ù3‹d u- Ì„ûêñî• 00000080 7C A8 11 7E B9 B7 E3 48 D0 80 A6 72 2D 68 99 1B |¨ ~¹·ãHÐ?¦r-h™ 00000090 BC 23 43 BC 84 07 82 70 84 A3 BF A0 7A 6F 81 E5 ¼#C¼„ ‚p„£¿ zo å 000000A0 BB 91 5A 1E 2B 49 21 82 67 A9 D7 5D 27 FE 2D 1B »‘Z +I!‚g©×]'þ- 000000B0 6D 39 4D 62 3F EE A6 A2 9F 86 82 60 28 E4 AA 30 m9Mb?Ÿ†‚`(äª0 000000C0 67 07 7B B1 35 A0 AB 12 E0 71 4D 79 B1 4A A3 75 g {±5 « àqMy±J£u 000000D0 C7 BF 5E 99 71 05 3B 6B 37 20 04 A6 B5 87 AD B3 Ç¿^™q ;k7 ¦µ‡³ 000000E0 DB 24 CE 50 F9 75 2E 3C 7C F1 8F 5E 1C 84 88 F5 Û$ÎPùu.<|ñ ^ „ˆõ 000000F0 54 D7 48 94 36 D5 5D 29 1A D7 F1 79 C8 8D 2E BE T×H”6Õ]) ×ñyÈ .¾ 00000100 8F 26 77 01 D3 43 EA 5A 19 A6 4B C9 11 14 95 C6 &w ÓCêZ ¦KÉ •Æ 00000110 B9 46 0E CD 26 C0 4C 83 F4 9B C9 8B 25 B6 5B 6D ¹F Í&ÀLƒô›É‹%¶[m 00000120 D3 6A 0F 79 A7 C3 E7 BE 73 08 7E C1 77 6A 1E EE Ój y§Ãç¾s ~Áwj î 00000130 FA 19 01 76 63 68 88 64 59 6F B6 CE D9 4C C9 81 ú vchˆdYo¶ÎÙLÉ 00000140 B5 C7 F7 C2 AE A9 02 2B 04 BD 21 51 CE 11 C4 81 µÇ÷®© + ½!QÎ Ä 00000150 D1 36 2E 91 3D 56 90 23 6E 0B 46 B1 23 04 FA D4 Ñ6.‘=V #n F±# úÔ 00000160 DE 10 FD DE 9D 2A 20 0E 96 12 8F 01 D5 91 9B 71 Þ ýÞ * – Õ‘›q 00000170 B0 85 01 A4 ED 76 97 BC 3E F6 18 6B 8F 83 15 FD °… ¤ív—¼>ö k ƒ ý 00000180 55 FF 30 DA 3E 77 5F 2A 98 D0 C2 4B AE A7 E0 44 Uÿ0Ú>w_*˜ÐÂK®§àD 00000190 4A 0A 9C 37 2B F6 72 9B F3 61 98 CE 8C 76 37 59 J œ7+ör›óa˜ÎŒv7Y 000001A0 28 9E 40 1C 43 C9 DA 49 DE 78 52 35 82 D7 CA C4 (ž@ CÉÚIÞxR5‚×ÊÄ 000001B0 91 20 55 CE CA AE 4F C5 6F 56 0D 80 D7 0A F5 D4 ‘ UÎÊ®OÅoV ?× õÔ 000001C0 44 95 E4 F6 5E 2E E8 68 4E CF E3 30 92 48 64 8D D•äö^.èhNÏã0’Hd 000001D0 6F 59 2D 92 CC 59 C5 B9 0C E2 90 0E FF C5 70 35 oY-’ÌYŹ â ÿÅp5 000001E0 0D 48 4E E1 96 38 91 65 78 7B 23 53 AC 43 F6 BD HNá–8‘ex{#S¬Cö½ 000001F0 0F 6F 25 D1 75 00 D7 FD 1C BE BC 0F 73 62 CD E0 o%Ñu ×ý ¾¼ sbÍà 00000200 D3 0D 9B 02 30 18 88 97 E2 66 BA 99 19 46 DC 72 Ó › 0 ˆ—âfº™ FÜr 00000210 6F EA 78 4A 45 31 5D A3 B6 1D 38 15 1A D3 54 39 oêxJE1]£¶ 8 ÓT9 00000220 D4 CF 97 1F 06 4A FB CD 30 35 82 E2 5E 02 09 62 ÔÏ— JûÍ05‚â^ b 00000230 90 86 76 49 32 1B B4 37 32 8A 00 98 2D 4D 98 57 †vI2 ´72Š ˜-M˜W 00000240 0E BC 75 87 53 09 27 66 E9 48 E6 22 58 89 7A EC ¼u‡S 'féHæ"X‰zì 00000250 C3 A9 9A B5 A4 B6 C6 C1 0E 0F C4 07 3A 83 27 F6 éšµ¤¶ÆÁ Ä :ƒ'ö 00000260 D9 FC 94 BD 89 B8 56 1B 8D 93 CB EE 69 D4 6F 4A Ùü”½‰¸V “ËîiÔoJ 00000270 3D 15 15 84 B5 44 0B 5E 42 63 8A 7C C0 89 2F 82 = „µD ^BcŠ|À‰/‚ 00000280 C9 62 C1 B6 54 4F F3 38 7C 66 59 22 07 FA 6B 16 ÉbÁ¶TOó8|fY" úk 00000290 7F 82 1E 71 18 F4 35 73 82 E1 5C F8 83 7D BC 5F ‚ q ô5s‚á\øƒ}¼_ 000002A0 C8 72 E9 36 8B 8A 45 79 7D 57 13 E9 39 51 F6 A1 Èré6‹ŠEy}W é9Qö¡ 000002B0 05 E9 61 85 77 78 94 1F 44 2F 76 71 5D 78 7D F8 éa…wx” D/vq]x}ø 000002C0 25 A1 E8 CB 69 1A 94 67 94 90 64 67 69 7B 7B 60 %¡èËi ”g” dgi{{` 000002D0 AC B7 4D A6 5F 0C 8E 6B D6 6D D3 4B DB 5A 43 7E ¬·M¦_ ŽkÖmÓKÛZC~ 000002E0 7D 89 D2 2C 5E 51 05 63 52 B5 61 C4 27 E3 EA E2 }‰Ò,^Q cRµaÄ'ãêâ 000002F0 85 2D 75 AC FB BC 91 1B 03 08 D6 2E CA 0D 8E 86 …-u¬û¼‘ Ö.Ê Ž† 00000300 4B 86 78 5D 92 EF 3D 84 D2 B3 31 3B 51 A6 15 39 K†x]’ï=„Ò³1;Q¦ 9 00000310 AA 04 52 A5 52 2F AE 02 C1 1F 72 13 82 6C FB AF ª R¥R/® Á r ‚lû¯ 00000320 2F 06 B8 FA 9A 35 23 / ¸úš5# Файл с c:\b\keys.dat : Код (Text): Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00000000 6D EA B8 8E FB A8 67 21 47 88 F7 45 FC 8A 35 84 m긎û¨g!Gˆ÷EüŠ5„ 00000010 ED 88 69 A9 99 0D 0A B2 8E EC 69 AC 01 7A CF 7F íˆi©™ ²Žìi¬ zÏ 00000020 BC CA 5B 3E 99 9A 62 91 36 C2 BE F9 ED 5F DF FD ¼Ê[>™šb‘6¾ùí_ßý 00000030 00 0D 6F F9 82 FE A8 C1 8E 2B BF 3A A2 D0 59 96 où‚þ¨ÁŽ+¿:¢ÐY– 00000040 58 36 48 54 47 AA 79 2C BF 74 DD FC D8 43 25 C3 X6HTGªy,¿tÝüØC%à 00000050 75 43 A8 B6 A8 D8 7C 17 24 DC 2A A1 39 9A E8 1D uC¨¶¨Ø| $Ü*¡9šè 00000060 3B 2D 4E FB 5F D8 4D 69 82 A1 66 92 2A DF F4 56 ;-Nû_ØMi‚¡f’*ßôV 00000070 AE D9 33 8B 64 0B 75 2D 01 CC 84 FB EA F1 EE 95 ®Ù3‹d u- Ì„ûêñî• 00000080 7C A8 11 7E B9 B7 E3 48 D0 80 A6 72 2D 68 99 1B |¨ ~¹·ãHÐ?¦r-h™ 00000090 BC 23 43 BC 84 07 82 70 84 A3 BF A0 7A 6F 81 E5 ¼#C¼„ ‚p„£¿ zo å 000000A0 BB 91 5A 1E 2B 49 21 82 67 A9 D7 5D 27 FE 2D 1B »‘Z +I!‚g©×]'þ- 000000B0 6D 39 4D 62 3F EE A6 A2 9F 86 82 60 28 E4 AA 30 m9Mb?Ÿ†‚`(äª0 000000C0 67 07 7B B1 35 A0 AB 12 E0 71 4D 79 B1 4A A3 76 g {±5 « àqMy±J£v 000000D0 C7 BF 5E 99 71 05 3B 6B 37 20 04 A6 B5 87 AD B3 Ç¿^™q ;k7 ¦µ‡³ 000000E0 DB 24 CE 50 F9 75 2E 3C 7C F1 8F 5E 1C 84 88 F5 Û$ÎPùu.<|ñ ^ „ˆõ 000000F0 54 D7 48 94 36 D5 5D 29 1A D7 F1 79 C8 8D 2E BE T×H”6Õ]) ×ñyÈ .¾ 00000100 8F 26 77 01 D3 43 EA 5A 19 A6 4B C9 11 14 95 C6 &w ÓCêZ ¦KÉ •Æ 00000110 B9 46 0E CD 26 C0 4C 83 F4 9B C9 8B 25 B6 5B 6D ¹F Í&ÀLƒô›É‹%¶[m 00000120 D3 6A 0F 79 A7 C3 E7 BE 73 08 7E C1 77 6A 1E EE Ój y§Ãç¾s ~Áwj î 00000130 FA 19 01 76 63 68 88 64 59 6F B6 CE D9 4C C9 81 ú vchˆdYo¶ÎÙLÉ 00000140 B5 C7 F7 C2 AE A9 02 2B 04 BD 21 51 CE 11 C4 81 µÇ÷®© + ½!QÎ Ä 00000150 D1 36 2E 91 3D 56 90 23 6E 0B 46 B1 23 04 FA D4 Ñ6.‘=V #n F±# úÔ 00000160 DE 10 FD DE 9D 2A 20 0E 96 12 8F 01 D5 91 9B 71 Þ ýÞ * – Õ‘›q 00000170 B0 85 01 A4 ED 76 97 BC 3E F6 18 6B 8F 83 15 FD °… ¤ív—¼>ö k ƒ ý 00000180 55 FF 30 DA 3E 77 5F 2A 98 D0 C2 4B AE A7 E0 44 Uÿ0Ú>w_*˜ÐÂK®§àD 00000190 4A 0A 9C 37 2B F6 72 9B F3 61 98 CE 8C 76 37 59 J œ7+ör›óa˜ÎŒv7Y 000001A0 28 9E 40 1C 43 C9 DA 49 DE 78 52 35 82 D7 CA C4 (ž@ CÉÚIÞxR5‚×ÊÄ 000001B0 91 20 55 CE CA AE 4F C5 6F 56 0D 80 D7 0A F5 D4 ‘ UÎÊ®OÅoV ?× õÔ 000001C0 44 95 E4 F6 5E 2E E8 68 4E CF E3 30 92 48 64 8D D•äö^.èhNÏã0’Hd 000001D0 6F 59 2D 92 CC 59 C5 B9 0C E2 90 0E FF C5 70 35 oY-’ÌYŹ â ÿÅp5 000001E0 0D 48 4E E1 96 38 91 65 78 7B 23 53 AC 43 F6 BD HNá–8‘ex{#S¬Cö½ 000001F0 0F 6F 25 D1 75 00 D7 FD 1C BE BC 0F 73 62 CD E0 o%Ñu ×ý ¾¼ sbÍà 00000200 D3 0D 9B 02 30 18 88 97 E2 66 BA 99 19 46 DC 72 Ó › 0 ˆ—âfº™ FÜr 00000210 6F EA 78 49 45 31 5D A3 B6 1D 38 15 1A D3 54 39 oêxIE1]£¶ 8 ÓT9 00000220 D4 CF 97 1F 06 4A FB CD 30 35 82 E2 5E 02 09 62 ÔÏ— JûÍ05‚â^ b 00000230 90 86 76 49 32 1B B4 37 32 8A 00 98 2D 4D 98 57 †vI2 ´72Š ˜-M˜W 00000240 0E BC 75 87 53 09 27 66 E9 48 E6 22 58 89 7A EC ¼u‡S 'féHæ"X‰zì 00000250 C3 A9 9A B5 A4 B6 C6 C1 0E 0F C4 07 3A 83 27 F6 éšµ¤¶ÆÁ Ä :ƒ'ö 00000260 D9 FC 94 BD 89 B8 56 1B 8D 93 CB EE 69 D4 6F 4A Ùü”½‰¸V “ËîiÔoJ 00000270 3D 15 15 84 B5 44 0B 5E 42 63 8A 7C C0 89 2F 82 = „µD ^BcŠ|À‰/‚ 00000280 C9 62 C1 B6 54 4F F3 38 7C 66 59 22 07 FA 6B 16 ÉbÁ¶TOó8|fY" úk 00000290 7F 82 1E 71 18 F4 35 73 82 E1 5C F8 83 7D BC 5F ‚ q ô5s‚á\øƒ}¼_ 000002A0 C8 72 E9 36 8B 8A 45 79 7D 57 13 E9 39 51 F6 A1 Èré6‹ŠEy}W é9Qö¡ 000002B0 05 E9 61 85 77 78 94 1F 44 2F 76 71 5D 78 7D F8 éa…wx” D/vq]x}ø 000002C0 25 A1 E8 CB 69 1A 94 67 94 90 64 67 69 7B 7B 60 %¡èËi ”g” dgi{{` 000002D0 AC B7 4D A5 5F 0C 8E 6B D6 6D D3 4B DB 5A 43 7E ¬·M¥_ ŽkÖmÓKÛZC~ 000002E0 7D 89 D2 2C 5E 51 05 63 52 B5 61 C4 27 E3 EA E2 }‰Ò,^Q cRµaÄ'ãêâ 000002F0 85 2D 75 AC FB BC 91 1B 03 08 D6 2E CA 0D 8E 86 …-u¬û¼‘ Ö.Ê Ž† 00000300 4B 86 78 5D 92 EF 3D 84 D2 B3 31 3B 51 A6 15 39 K†x]’ï=„Ò³1;Q¦ 9 00000310 AA 04 52 A5 52 2F AE 02 C1 1F 72 13 82 6C FB AF ª R¥R/® Á r ‚lû¯ 00000320 2F 06 B8 FA 9A 35 23 / ¸úš5#
Код (Text): C:\Users\nut>fc /B d:\conf1.dat d:\conf2.dat Сравнение файлов D:\conf1.dat и D:\CONF2.DAT 0000000F: 85 84 00000010: E0 ED 00000012: 6F 69 00000013: A6 A9 000000CF: 75 76 00000213: 4A 49 000002D3: A6 A5
Кажется это не xor, либо конфиг не текстовый. Т.к. старший бит в случае xor для текстовых (без русских букв) данных имел бы явную закономерность появления
Похоже на XOR с гаммой. Если криптотекст совпадает по размеру с исходным, просто сложите их (XOR). Если нет - то нужно поиграться с plain text, чтобы получить больше позиций.
Вероятнее всего это не блочный шифр, т.к. распределение байтов не очень похоже на нормальное. М.б. какой-нить потоковый шифр типа RC4... Ну либо конфиг бинарный))
Да, какой там, нафиг, шифр - с такой дисперсией. Любой cipher обвалил бы весь поток после точки расхождения, а тут только точечные изменения в нескольких байтах - обычное побайтное гаммирование. Если очень повезет и гамма в разы короче текста (маловероятно), то можно попытаться определить размер гаммы брутом, накладывая сдвинутый текст сам на себя, но, IMHO, проще "кормить" cipher специально сгенерированным plain text'ом и найти байтики гаммы по одному. (Опять же, если очень повезет, то она может вычисляться по какой-либо несложной формуле).
Давай хотябы ещё 1 сэмпл с c:\с\keys.dat . Если различные байты на тех же смещениях, то хоть что-то будет прояснятся.
Тогда, может быть, проще саму программу посмотреть в отладчике. Играясь с одной строкой всю гамму все равно не вычислить - нужен полный plain text.
Код (Text): C:\abababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab\keys.dat
Ну, надежды на короткую гамму, очевидно, не оправдались. А вот интересно, насколько длинную строку удастся скормить программе? Килобайт примет (так, чтобы перекрыть обычный конфиг)? В любом случае, нужно использовать максимальный размер и строку идентичных символов. Идеалом было бы 00h, но это, конечно, не пройдет. Зато, можно сделать несколько строк из последовательных символов, например, 30h, 31h, 32h... , т.е. вида: c:\000..000, c:\111..111, c:\222..222, вычислить гамму и убедиться, что она такая же, как в "обычном" случае. В эташе утилитка для двоичных операций с файлами. XOR должно быть достаточно. Пусть, например, с некоторой позиции i plain text P имеет вид ppp... и ему соответствует cipher text C: xyz... Тогда гамма G определяется как G = P ^ C. Если для контекстов { c:\000..000, c:\111..111, c:\222..222 } G1 = G2 = G3, то тогда это, действительно, XOR и простое гаммирование и известно столько байт гаммы, сколько удалось всунуть plain text. Ну, и начальные байты трех имеющихся конфигов. Выглядит обнадеживающе Код (Text): ----------+----+----+---- | 1 | 2 | 3 ----------+----+----+---- 0000000F: 85 84 84 00000010: E0 ED EB 00000012: 6F 69 6B 00000013: A6 A9 A9 ----------+----+----+----
Ага, значит у меня получилось так (извиняюсь за возможное капитанство). Имя файла в конфиге лежит по смещению 0хСС (ну со второй попытки я его угадал, тут вариантов немного было, т.к. мало разных байт в conf1.dat conf2.dat). Соответственно, поксорив conf3.dat со строкой C:\много ab\keys.dat мы получили гамму длинной 0xe5 по смещению 0xCC. Теперь я взял эту гамму и применил к conf1.dat. Всё очень хорошо, вначале у меня был правильный путь c:\a\keys.dat (только почемуто c:\a\\keys.dat... ну видимо прога на слеш в конце плохо реагирует), а затем следовала неизвестная до этого часть конфига(таки текстовый оказался). Получается, что удалось получить новый открытый текст! Осталось только повторить предыдущие манипуляции несколько раз и... наткнутся на то что путь к файлу встречается в конфиге несколько раз - надо будет при на одном этапе дополнительно вместо c\:\\a\\keys.dat вставить строку "много ab" и у меня таки получилось рашифровать конфиг за исключением первых 0xCC байт. Пока незнаю как бы их расшифровать.