Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
1

Найти ключ, закодированный в звуке

11.12.2019, 21:03. Показов 1787. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, вопрос не то, чтобы именно по жаве, но всё же. В общем, есть некоторый звуковой файл (.wav) и в нём закодирован некий ключ. Надо каким-то образом етот самый ключ вытащить. Я подумал, что там может использоваться стеганография, мол каждые n бит одного байта ключа кодируются в n младших бит одного байта звука. Ну, я пытался собирать таким образом 1 младший бит, два, четыре, собирал в разном порядке (цеплял каждые новые n бит сзади / спереди), но на выходе всегда каша. Щас попробую собирать старшие, но чёт мне кажется, что смысла в этом нет, ибо в любом случае получится достаточно объёмный текст. Ну и собсна, товарищи, есть ли у вас какие-нибудь идеи относительно того, как достать этот банный ключ?

Достаю биты этим кодом. Понимаю, что достаточно костыльно, но я имею очень мало опыта работы с бинарниками
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
        byte[] target = Files.readAllBytes(Paths.get("/home/okno/Downloads/noise.wav"));
        
        byte[] bytes = new byte[target.length];
        
        int pos = 0;
        while (pos < target.length) {
            if (target[pos] == 0x64) {
                byte[] chunk = new byte[4];
 
                for (int i = 0; i < 4 && pos < target.length; i++) {
                    chunk[i] = target[pos];
                    pos++;
                }
 
                if (!"data".equalsIgnoreCase(new String(chunk))) {
                    continue;
                }
 
                for (int i = 0; i < 4 && pos < target.length; i++, pos++);
 
                break;
            }
 
            pos++;
        }
        
        int temp = 0;
        int count = 0;
        int i = 0;
        while (pos < target.length) {
            temp = (temp << 2) | (target[pos++] & ~(~1 << 1));
            count++;
            
            if (count == 4) {
                // if (temp == 0) break;
                
                bytes[i++] = (byte) temp;
                temp = 0;
                count = 0;
            }
        }
        
        byte[] out = new byte[i];
        System.arraycopy(bytes, 0, out, 0, i);
        
        System.out.println(new String(out, "UTF-8"));
Ну и да, примерно 44 первых байта эт заголовок wav файла, поэтому я его просто пропускаю
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2019, 21:03
Ответы с готовыми решениями:

RSA, как найти закрытый ключ имея открытый ключ, p и q
Прив, задание такое - Как найти закрытый ключ d, если мы знаем открытый ключ e, который равен 5, и...

Крестик на звуке
добрый день. звука нет. драйвера менял. наушники и колонки рабочие. случилось после попытки...

Пропадает звуке из за мазилы
Здравствуйте, у меня такая проблема: если в мазиле смотреть ролики слушать музыку звук может...

Появились трески в звуке
Трески слышны на любых наушниках, особенно выражены, при смене громкости и включении - выключении...

4
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
11.12.2019, 23:52 2
Лучший ответ Сообщение было отмечено Gungala как решение

Решение

Для решения этой задачи, используется азбука морзе, с помощью нее берется буковка ключа.
1
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2019, 00:36 3
может тупо строка в файле записана?
0
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
12.12.2019, 00:48  [ТС] 4
xoraxax, неа, проверял

sdasdaw, хм, интересно. Попробую завтра
0
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
13.12.2019, 20:16  [ТС] 5
Чёрт, всё оказалось куда проще, чем я представлял. Странно, что так мало людей решили. Ключ выкладывать не буду, ибо уже было написано, как его найти
0
13.12.2019, 20:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2019, 20:16
Помогаю со студенческими работами здесь

Сабвуфер 2.1 отключается на максимальном звуке
Короче такая проблема, взял с рук акустику:...

Артефакты в звуке (треск, щелчки)
Добрый день! У меня наблюдается следующая проблема - при прослушивании музыки,работе в...

G z370 hd3 наводки на звуке
Добрый день. Решил обновить комп. Купил новую мать gigabyte z370 hd3 + i3, память и блок на 800w...

Лаги при громком звуке
Сабж. Сама по себе, проблема очень странная. При прослушивании музыки (например с ВК, в клиентких...

Закодированный скрипт
Недавно встретил код такого вида...

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


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

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