Форум программистов, компьютерный форум, киберфорум
Криптография
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
1

Можно ли расшифровать файл, если известно, что источник - это XML

06.04.2015, 18:09. Показов 3411. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Известно (с большой долей вероятности), что исходные файлы - это XML,
который, как известно, начинается скорее всего с "<?xml version="1.0" encoding=".
Может ли это помочь дешифровке ?
В качестве примера привожу пару файлов, могу привести и больше. Все они начинаются одинаково.
Как я подозреваю - это просто base64 от зашифрованного xml
Нужно понять принцип шифрования.

Есть ли какая-нибудь тулза, которой можно скормить бинарный (или base64) файл, а она его попробует пробрутфорсить ?
Вложения
Тип файла: txt 1.xml.txt (2.9 Кб, 11 просмотров)
Тип файла: txt 2.xml.txt (4.0 Кб, 5 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2015, 18:09
Ответы с готовыми решениями:

ИСТОЧНИК ТОКА что это ?
Просвети меня по поводу источников питания. Я не совсем понимаю силу тока которую выдает...

Нужно расшифровать, если это вообще как-то возможно
yadi.sk/i/7/3/100000,(big)9/1/010,9/5/1000000,(big)7/5/100,_,7/3/100000,(big)1/3/00100000000,9/5/100...

Какова вероятность того, что оба окажутся юношами, если известно, что один из выбранных юноша?
Из группы, состоящей из четырех юношей возраста 17, 18, 19 и 20 лет и четырех девушек тех же лет,...

Бросают три игральные кости. Найти вероятность того, что на каждой из них выпало 6 очков, если известно, что
Здравствуйте, уважаемые форумчане! Помогите, пожалуйста, решить задачу по теории вероятностей....

16
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
06.04.2015, 22:12 2
Цитата Сообщение от avkiev Посмотреть сообщение
base64 от зашифрованного xml
Похоже, что так.

Кодер/Декодер Base64
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
06.04.2015, 22:49  [ТС] 3
Похоже, что так
Так в том то и вопрос - как получается то, от чего берется base64 ?
Иными словами - алгоритм (ключ) шифрования

Добавлено через 20 минут
Формализирую немного:
Дано:
result = s ( base64 ( f ( source ) ) )

Известно:
функция s - тривиальное разбиение текстового файла на строки по 72 символа
base64 - он и есть base64
source - ASCII-файл в формате XML, всегда начинается с известного xml-заголовка
Файлов result можно нагенерить сколько угодно

Вопрос:
как грамотно реализовать атаку/брутфорс на определение функции f ?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
06.04.2015, 22:55 4
Цитата Сообщение от avkiev Посмотреть сообщение
то, от чего берется
Если там что-то сложнее XOR с константой, то шансы на угадывание мизерные. Допустим, там примитив: AES/ECB. Заметны тождественные куски (в начале файлов, еще где-то). Чем это вам поможет?
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
06.04.2015, 23:27  [ТС] 5
Если там и XOR - то не с константой.
Для первых 6-ти байт массив XOR-ов выглядит так: 42, 83, 26, 3A, A3, B6

Не по теме:

Как в том анекдоте:

Илья Муромец рассказывает, как он сражался с Лернейской Гидрой:
— Отрубаю ей голову — на ее месте четыре вырастает. Четыре отрубаю — три вырастает. Три отрубаю — семь.
— Ну и чо?
— Полчаса рубил — никакой закономерности


Идеи ?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
07.04.2015, 10:17 6
Лучший ответ Сообщение было отмечено avkiev как решение

Решение

Цитата Сообщение от avkiev Посмотреть сообщение
Идеи ?
Их есть. Только реализовывать придется вам.

Совпадение протяженных участков позволяет предположить, что это не блочный шифр. А тождественность четных колонок наводит на мысль, что это код страницы изначально юникодной строки. Иными словами, это, вероятно, XOR и половина гаммы у вас уже есть(точнее, можно просто выбросить коды страниц). Остается XOR и неизвестная гамма. Если угадаете plain text, получите часть ключа.
Миниатюры
Можно ли расшифровать файл, если известно, что источник - это XML   Можно ли расшифровать файл, если известно, что источник - это XML  
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
08.04.2015, 00:11  [ТС] 7
Спасибо за проявленный интерес.
Да, да, да.

Да, это не блочный шифр. Эти зашифрованные xml-файлы - это файлы настроек.
Так вот: при изменении одного символа в настройках - изменения всего файла не происходит, размер остаётся тот же, файл меняется только в паре мест по несколько байт.

Да, мы имеем дело с юникодом.
Прога, которая генерит эти файлы - китайская (читай-юникодная), зашифрованные файлы - юникодные, четные байты не меняются.
Логично предположить, что исходный XML - тоже в юникоде.

Да, это похоже на простой XOR, поскольку изменение одного байта исходного файла не корёжит полностью весь результат, а только пару мест.

А теперь вопросы:
- почему у меня есть половина гаммы ?
- чему (по теории) равна длина гаммы ?
- какова (ориентировочно) длина ключа ?

Можно попробовать проверить несколько стандартных хмл-хедеров, получить соответствующие массивы для XOR. Но какой длины строки брать ? Я пробовал 6 байт ("<?xml "), этого явно мало, закономерности не выявлено

Добавлено через 44 минуты
ЗЫ. А что это за XC2 на твоих скриншотах ? Плагин под Фар ? Не могу его найти
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.04.2015, 01:49 8
Цитата Сообщение от avkiev Посмотреть сообщение
почему у меня есть половина гаммы?
Половина символов строки в Unicode - это код страницы. Для латиницы - это 0. В любом случае, он неинтересен.

чему (по теории) равна длина гаммы?
Никакой теории, кроме (авто)корреляции. Требует внимательного подбора. Выбираете четные символы и смотрите, нет ли повторов. Вполне возможно, что длина гаммы превышает размер текста (скажем, 2^32 - 1). Мне как-то попался ключ 2^16 :-\

XC2
Можете воспользоваться (почти) любой визуальной утилитой для сравнения файлов. Эта же опция есть и в большинстве Hex-редакторов.
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
08.04.2015, 10:57  [ТС] 9
Цитата Сообщение от gazlan Посмотреть сообщение
Вполне возможно, что длина гаммы превышает размер текста
Файлы - небольшие, до 5К.
Вполне вероятно, что гамма - больше, с запасом.

У нас есть половина гаммы (нечетные байты).
То есть гамма начинается с 3F BC 3F 57 3F 9A, где 3F ("?") - любой байт.
Пробовал искать эту последовательность в экзешке - увы.
Где-то же эта гамма хранится... Но, видать, шибко заколдована...
Похоже, что единственный выход - дизасм экзешки под Идой, да ?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.04.2015, 11:19 10
Цитата Сообщение от avkiev Посмотреть сообщение
дизасм
Гамма может быть выходом простейшего RND итп. То есть, не существовать в явном виде.
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
08.04.2015, 11:39  [ТС] 11
Потому - только дизасм ? Криптография тут бессильна ?
0
642 / 151 / 60
Регистрация: 08.04.2015
Сообщений: 390
08.04.2015, 11:59 12
Цитата Сообщение от avkiev Посмотреть сообщение
Похоже, что единственный выход - дизасм экзешки под Идой, да ?
Реверс в данном случае - самый разумный способ. Зачем пытаться что-то угадывать, если есть возможность узнать точно?
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.04.2015, 12:04 13
Экспериментируйте. Если сама шифрующая программа доступна, вариантом может быть подача на вход plain text (серии нулей, например). И, если это, действительно, XOR, остальное очевидно.
1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 9
08.04.2015, 12:21  [ТС] 14
Программа - доступна. Но ей нельзя дать на вход произвольный буфер. Можно только в ней менять некоторые настройки, из которых она делает xml и шифрует. После чего можно смотреть на то, как меняется выходной файл.
0
3176 / 1935 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
08.04.2015, 13:36 15
Цитата Сообщение от avkiev Посмотреть сообщение
доступна
Ну, если повезет - не накрыта протектором с VM, написана на вменяемом языке... disasm может оказаться подходящим выбором.
1
0 / 0 / 0
Регистрация: 19.04.2016
Сообщений: 6
09.06.2016, 05:48 16
Кто-нибудь знает, где можно скачать этот XC2?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
09.06.2016, 19:13 17
Ребята, я полагал, что криптостойкость шифра не зависит
от файла. Или я что-то не понимаю?
0
09.06.2016, 19:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2016, 19:13
Помогаю со студенческими работами здесь

Получил ли я что-то новое или это уже было известно? И вообще на сколько реально любителю получить что-то новое
Придумал теоремку пока рассматривал график делимости чисел :) Все составные числа представляются в...

Найти угол BAC, если известно, что AB=AD и BD:BC=2:3
Точка D лежит на стороне BC треугольника .ABC Радиусы окружностей, вписанных в треугольники ABD и...

Как найти файл, если известно его имя
Допустим мы знаем как называется файл, и каталог где искать, но в нем могут быть подкаталоги. Можно...

Можно ли сниферами вытянуть и расшифровать весь трафик, и на сколько это будет сложно
В общем начал писать диплом, очередную тестирующую программу, использую MySql и AdoConection(точнее...

Длинная арифметика: вычислить N+1, если известно, что N <= 10^100
Вводится N. Требуется вычислить N+1. Ограничения для N 10 в сотой. Язык С. Помогите плиз

Найти вектор f, если известно, что f и d разнонаправленные вектора
Найти вектор f, если известно, что f и d разнонаправленные вектора и |f| = 2 d(0,-17,-20)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru