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


Фотография

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


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 42

#31 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 14 Июль 2017 - 13:07

https://www.diffchecker.com/zRcXb3mC
FD37 7A58 5A00 0001 6922 DE36 0200 2101
0000 0000 3727 97D6 0100 0C44 4145 4453
494E 494F 594B 414B 0000 0000 6FAE A3B0
0001 210D 75DC A8D2 9042 990D 0100 0000
0001 595A


#32 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 14 Июль 2017 - 13:21

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

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

 

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


Сообщение отредактировал Doob: 14 Июль 2017 - 13:21


#33 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • 1 232 сообщений

Отправлено 14 Июль 2017 - 14:22

 

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



#34 Оффлайн   Ingr

Ingr
  • Пользователи
  • 188 сообщений
  • ГородМинск

Отправлено 14 Июль 2017 - 15:25

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

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

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

 

дополнение.

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

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

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

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


Сообщение отредактировал Ingr: 14 Июль 2017 - 15:42


#35 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 14 Июль 2017 - 15:31

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

#36 Оффлайн   Ingr

Ingr
  • Пользователи
  • 188 сообщений
  • ГородМинск

Отправлено 14 Июль 2017 - 18:28

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

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



#37 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • 1 232 сообщений

Отправлено 17 Июль 2017 - 08:59

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

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

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


  • Kartze это нравится

#38 Оффлайн   Fingercomp

Fingercomp
  • Гуру
  • 2 038 сообщений

Отправлено 17 Июль 2017 - 11:06

Если используется шифр Виженера, то одни и ти же буквы в шифротексте могут оказаться разными. Суть там проста: есть ключ какой-то длины, но повторяется на всю длину сообщения, а дальше буквы исходного текста сдвигаются на 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

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



#39 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 18 Июль 2017 - 05:51

Я сильно перемудрил с первым заданием, т. к. остальные слишком простые, текст взял короткий, поэтому сложно найти закономерности. Хотя, погуглив алгоритмы криптоанализа, можно составить утилиты, которые все делают сами.
Кстати, тексты на латыни.
KMMKXPMLZUIYDOGWYQFXYLWBAISSPWMBHZIGIXTQGEWQDAVIPTCDJQTAHAVZKMWIIZPVVPHBDBSIRTBUHZZCWWMIESVTCZXGFGDCYMQW
QNTUTVDAUQOWSVSWMMIMLSWQNWSIVTBMHETRLAZBVSVHZOAEIIGCXQVIXWMODVREVCKXOMGXDUIXRVLZBQQYQFIFGIJIXDZVXQUNMZJT
VRVWNXLXYFDAHSGUHZDMWTYXTXPIZAPDDZXQIQXQGXREPIGMQSQBVMIMJPDZXQWIZXZNXWYIFLDMVZIKMYXLZFHAOCVEXKIETBZGHBXC
UEWXOACITTXUPTWYQGMOBSIISMMDLQQXBGPQKEQMIBHGEXAMGIKEUZVALTIMMGCKLEQBPUSYIKMFRSIOQINMWGEWCYBEISLUZURVIFLG
TPCIVXVZWEGNUEXULASWOCLXZTOMCXVMIIGTHVIMMEIEUIFMOIUKYMIQEVFPHZZBQIEXZMTQLRUMPUQSHHKAWMSEUMXZLRIFAUEIIIQD
DAXQQHZMXEEIWWMMPJMXBMQMKOOMIQWEPUMERIESDVDURWGTXUAPLSOQOQXQIMZUMEVCXXDLRWTKWFTVMAHVJVHKSAWOUIIRHUXIOMHN
AUJZVNWIXWQWYEMBAEECR

Сообщение отредактировал Doob: 18 Июль 2017 - 05:53


#40 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 25 Июль 2017 - 07:19

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



#41 Оффлайн   Kartze

Kartze
  • Автор темы
  • Пользователи
  • 528 сообщений
  • ГородКрасноярск

Отправлено 25 Июль 2017 - 16:37

Тем временем Дуб, кажется, медленно решает свою же задачку...)


  • Totoro это нравится

#42 Оффлайн   nailfor

nailfor
  • Пользователи
  • 107 сообщений

Отправлено 25 Июль 2017 - 17:20

Возможно, он просто забыл кей на архив? Саинт, запили на свою ферму, прогоним хэши, ща взломаем..



#43 Оффлайн   Doob

Doob
  • Пользователи
  • 815 сообщений

Отправлено 26 Июль 2017 - 07:13

Ыщо одна подсказка - расшифрованная часть второго текста: HERCULIS


  • Invite это нравится




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных