Форум программистов, компьютерный форум CyberForum.ru

Анализ текста - C++

Восстановить пароль Регистрация
 
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 17:10     Анализ текста #1
Всем привет. Есть программа, которая шифрует файлы. Я хотел бы перебором всех ключей (ключевое пространство небольшое) вычислить открытый текст. Вот в чём вопрос: каким образом компьютер может отличить окрытый текст от обычного набора символов?

Добавлено через 32 минуты
up....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2013, 17:10     Анализ текста
Посмотрите здесь:

C++ Частотный анализ текста (пословный)
Частотный анализ текста (символьный) C++
C++ Морфологический анализ текста
C++ Анализ текста
C++ Частотный анализ текста
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
02.07.2013, 17:15
  #2

Не по теме:

при чём тут С++?

bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 17:23  [ТС]     Анализ текста #3
Программа на C++)
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.07.2013, 17:34     Анализ текста #4
выкладывай. Надеюсь, ты имел в виду
Цитата Сообщение от bgm123 Посмотреть сообщение
Есть программа, которая шифрует файлы и её исходники на C++

Не по теме:

Кулхацкерством тут заниматься не будут, если что.

bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 18:11  [ТС]     Анализ текста #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
выкладывай. Надеюсь, ты имел в виду
Вопрос состоит не в анализе коде. А в способе определения является ли текст открытым? Вот например, как программно определить является ли следующий текст открытым: type uipoksl hohk?

Добавлено через 1 минуту
Используется симметричный алгоритм
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 18:24  [ТС]     Анализ текста #6
В этой программе открытый текст разбивается на порции по 64 символа. Далее, для каждой порции на основе
8 значного исходного ключа вырабатывается гамма. Гамма вырабатывается с использованием функции rand из стандартной библиотеки C. Сам алгоритм является симметричным. Ниже описаны основные функции и exe-ик.


Вот основные реализация основных функций:

C++
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
47
48
49
50
#define MAX_OFFSET 100
#define SIZE_UKEY 8
#define SIZE_BLOCK 64
#define MAX_KEY_VALUE 256
 
//хеш функция
unsigned int StrToInt(char *str)
{
    unsigned int result = 0;
    int len = strlen(str);
 
    for(int i = 0; i < len; i++)
        result = (result * 10 + str[i]) % UINT_MAX;
        
    return result;
}
 
//генератор гаммы
void getKey(char *key, char *ukey, int size_key)
{
    unsigned int hash = StrToInt(ukey);
    static int offset = hash % MAX_OFFSET;
 
    for(int i = 0; i < SIZE_UKEY; i++){
        srand(ukey[i]);
        srand(hash + rand() + ukey[i]);
        for(int j = 1; j <= offset; j++)
            rand();
        for(int k = i; k < size_key; k += SIZE_UKEY)
            key[k] = rand();    
    }
 
    strncpy(ukey, key, SIZE_UKEY);
}
 
 
void CryptFile(FILE *in, FILE *out, char *ukey)
{
    char buf[SIZE_BLOCK + 1] = {0};
    char key[SIZE_BLOCK + 1] = {0};
    int count;
 
    while(!feof(in)){
        count = fread(buf, sizeof(char), SIZE_BLOCK, in);
        getKey(key, ukey, SIZE_BLOCK);
        for(int i = 0; i < count; i++)
            buf[i] ^= key[i];
        fwrite(buf, sizeof(char), count, out);
    }
}
Вложения
Тип файла: rar exe.rar (14.3 Кб, 4 просмотров)
bgm123
39 / 39 / 16
Регистрация: 29.01.2013
Сообщений: 277
02.07.2013, 19:56  [ТС]     Анализ текста #7
Запускается через командную строку
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.07.2013, 20:00     Анализ текста #8
для проверки случайных последовательностей на принадлежность открытым текстам того или иного класса имеются детерминированные и вероятностные модели открытых текстов. поищите в интернете, немало на эти темы имеется литературы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 04:52     Анализ текста
Еще ссылки по теме:

C++ Чтение/анализ строки текста
Частотный анализ текста C++
Лексический и синтаксический анализ текста C++

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

Или воспользуйтесь поиском по форуму:
Praktolock
 Аватар для Praktolock
58 / 58 / 0
Регистрация: 29.11.2011
Сообщений: 272
03.07.2013, 04:52     Анализ текста #9
А дешифрующей программы нет?
Yandex
Объявления
03.07.2013, 04:52     Анализ текста
Ответ Создать тему
Опции темы

Текущее время: 16:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru