Перейти к содержимому
Гость Kartze

Задачки для хакеров

Рекомендуемые сообщения

На самом деле, все честно. Но надо быть немного в теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Каким образом получить архив? Я этот набор буквоцифр запихал в файл filename.7z. Как архив не открывается. Неизвестный формат или ошибка в архиве

hex2bin сначала. Получишь бинарник, дальше просто разархивировать

Со второй чета не пойму, Саинт перемудрил)) Это hex но какойто странный...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Kartze

@@Zer0Galaxy@@nailfor, ну вы чо?

 

Задачка посложнее! Метод решения похож, но отличается. Некоторые символы были заменены на другие! Не беспокойтесь, все делалось не по рандому, а целенаправленной заменой одних символов на других. Нужно лишь угадать, что на что было заменено...
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Задачка посложнее! Метод решения похож, но отличается. Некоторые символы были заменены на другие! Не беспокойтесь, все делалось не по рандому, а целенаправленной заменой одних символов на других. Нужно лишь угадать, что на что было заменено...

Разгадайте, кого убили, и победителю будет вручена какая-нибудь крутая вкусняшка из моего сейфа.

Данные:
fd3u ua58 5a11 1111 6922 de36 1211 2111
1111 1111 3u2u 9ud6 1111 1c44 4145 4453
494e 494f 594b 414b 1111 1111 6fae a3b1
1111 211d u5dc a8d2 9142 991d 1111 1111
1111 595a

 

ну файл похоже в вормате .xz https://tukaani.org/xz/format.html хотя открыть его у меня таки не получилось, видимо не все замены подобрал правильно :( но внутри обнаружился следующий текст -- "DAEDSINIOYKAK". Сомневаюсь что это правильный ответ но логически остальные замены подобрать не могу, а наугад лень :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендую к прочтению книгу по истории криптографии 'The Codebreakers'

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Достаточно заменить один символ.

Изменено пользователем Doob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Достаточно заменить один символ.

 

выложи готовый файл в виде бинарника. Хочу глянуть в чем проблема, почему у меня файл не открывается.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость Kartze

@@Ingr, ты, кажись, ближе всех к разгадке. Остался лишь последний шаг с: 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Раньше, для большего удобства делали так:

AUDVX WHNKQ CXZOF BJOLR XTWOI SPCHV OCPXV BOUCX RZPQG THUYB VCJIT EQBPU VIBTO UCXRM XVJUL PPXLG D

 

Но вообще, это одна строка и скрытого смысла в разбиении нет.
AUDVXWHNKQCXZOFBJOLRXTWOISPCHVOCPXVBOUCXRZPQGTHUYBVCJITEQBPUVIBTOUCXRMXVJULPPXLGD

Изменено пользователем Doob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Т.е. нули были заменены единицами? Это при том, что единицы единицами и остались?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Достаточно заменить один символ.

один символ? э... ты вообще видишь логику в проведенных заменах? я не вижу.

замена "u" на "7" видна сразу, Замена "11" на "00" вот тут "fd3u ua58 5a11" тоже понятна так как следует из спецификации формата файла. Все остальные замены сделанные тобой логике не поддаются. И это уже далеко не замена одного символа.

 

дополнение.

блин, ты говорил про замену только относительно оригинала, а я учитывал оба преобразования :)

в любом случае заменен был не один символ, а два "7" на "u" и "0" на "1"

так же проведенная тобой замена не имеет (во всяком случае я его не нашел) логического способа обратного преобразования и потому годится разве что для решения экстрасенсами, а не программистами :)

Если логический способ (кроме просто угадать) решения задачи все же существует, то очень хотелось бы его увидеть.

Изменено пользователем Ingr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лол, зачем мне вся фурнитура? Ты ведь сам понял, что за формат. Я глянул контейнер, нашел расхождение в CRC, причина в одном символе 6F AE A3 B1, создал контейнер с таким же наполнением, получил - 6F AE A3 B0.

А дальше своим ходом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лол, зачем мне вся фурнитура? Ты ведь сам понял, что за формат. Я глянул контейнер, нашел расхождение в CRC, причина в одном символе 6F AE A3 B1, создал контейнер с таким же наполнением, получил - 6F AE A3 B0.

А дальше своим ходом.

я походил к задаче с позиции что файл был закодирован, а не испорчен и поэтому искал способ декодирования :) Сперва я тоже хотел разобрать файл по спецификации и исправить в нем ошибки (по сути сделать то же что ты только вручную) но решил что это выходит за рамки задачи и поленился с этим возиться :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мы ничего не знаем об цели нашего поиска. Что вообще нужно найти в задаче? Текст, число или изображение? Если текст, то кем он составлен и для кого? Поэтому мои дальнейшие рассуждения будут строиться на предположениях.

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

2) Поскольку это первая, а стало быть самая легкая задача, метод шифрования должен быть не слишком сложным. Должно быть используется либо перестановочный либо одноалфавитный шифр.

3) Сосчитаем число вхождений букв в зашифрованный текст:

s="AUDVXWHNKQCXZOFBJOLRXTWOISPCHVOCPXVBOUCXRZPQGTHUYBVCJITEQBPUVIBTOUCXRMXVJULPPXLGD"
-- Считаем
t={}
for i=1,s:len() do
  c=s:sub(i,i)
  if t[c] then t[c]=t[c]+1
  else t[c]=1 end
end
-- Сортируем
f={}
for i=1,10 do f[i]="" end
for c,n in pairs(t) do
  f[n]=f[n]..c
end
-- Выводим результат
for i=10,1,-1 do
  print(i,f[i])
end

Имеем следующее количество вхождений

8 X
6 COPUV
5 B
4 T
3 HIJLQR
2 DGZW
1 AEFKMNYS

4) Частота встречаемости явно не соответствует частоте букв английского алфавита, поэтому перестановочный шифр не может иметь места. Принимаем в качестве рабочей гипотезы одноалфавитный шифр.

5) Наиболее встречаемая буква в исходном тексте - буква X, значит она скорее всего соответствует исходной букве E. Произведем замену. Для удобства зашифрованные символы оставим прописными, а исходные будем писать строчными.

AUDVeWHNKQCeZOFBJOLReTWOISPCHVOCPeVBOUCeRZPQGTHUYBVCJITEQBPUVIBTOUCeRMeVJULPPeLGD

У меня пока мысли кончились.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если используется шифр Виженера, то одни и ти же буквы в шифротексте могут оказаться разными. Суть там проста: есть ключ какой-то длины, но повторяется на всю длину сообщения, а дальше буквы исходного текста сдвигаются на n букв вправо, где n — позиция соответствующей буквы ключа в алфавите.

1. Ключ: abc, исходник: hahahah
2. Повторяем ключ до тех пор, пока его длина не станет равна длине исходника:

   hah aha h
   abc abc a -> abcabca

3. Шифруем

   КЛЮЧ        abcabca
   ИСХОДНИК    hahahah

   ШИФРОТЕКСТ  ickbjdi

Предположив, что используется именно он, я попытался найти длину ключа методом Касиски — и она, скорее всего, кратна 7.

Разобьём шифротекст на группы по 7 символов.

AUDVXWH
NKQCXZO
FBJOLRX
TWOISPC
HVOCPXV
BOUCXRZ
PQGTHUY
BVCJITE
QBPUVIB
TOUCXRM
XVJULPP
XLGD

Если предположение о длине ключа и о типе шифра верно, то далее каждый столбик — это просто шифр Цезаря с каким-то сдвигом. Однако максимальное количество символов в каждом столбике равно двенадцати, так что частотный анализ толком поиспользовать не удастся.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я сильно перемудрил с первым заданием, т. к. остальные слишком простые, текст взял короткий, поэтому сложно найти закономерности. Хотя, погуглив алгоритмы криптоанализа, можно составить утилиты, которые все делают сами.

Кстати, тексты на латыни.

KMMKXPMLZUIYDOGWYQFXYLWBAISSPWMBHZIGIXTQGEWQDAVIPTCDJQTAHAVZKMWIIZPVVPHBDBSIRTBUHZZCWWMIESVTCZXGFGDCYMQW
QNTUTVDAUQOWSVSWMMIMLSWQNWSIVTBMHETRLAZBVSVHZOAEIIGCXQVIXWMODVREVCKXOMGXDUIXRVLZBQQYQFIFGIJIXDZVXQUNMZJT
VRVWNXLXYFDAHSGUHZDMWTYXTXPIZAPDDZXQIQXQGXREPIGMQSQBVMIMJPDZXQWIZXZNXWYIFLDMVZIKMYXLZFHAOCVEXKIETBZGHBXC
UEWXOACITTXUPTWYQGMOBSIISMMDLQQXBGPQKEQMIBHGEXAMGIKEUZVALTIMMGCKLEQBPUSYIKMFRSIOQINMWGEWCYBEISLUZURVIFLG
TPCIVXVZWEGNUEXULASWOCLXZTOMCXVMIIGTHVIMMEIEUIFMOIUKYMIQEVFPHZZBQIEXZMTQLRUMPUQSHHKAWMSEUMXZLRIFAUEIIIQD
DAXQQHZMXEEIWWMMPJMXBMQMKOOMIQWEPUMERIESDVDURWGTXUAPLSOQOQXQIMZUMEVCXXDLRWTKWFTVMAHVJVHKSAWOUIIRHUXIOMHN
AUJZVNWIXWQWYEMBAEECR
Изменено пользователем Doob

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В качестве ключа используется название эвристического подхода в программировании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...