
Комментарии 3
Хочу сообщить, что я написал реализацию описанного алгоритма "шифрования" на языке программирования Rust, которая ориентирована на чтение файлов в формате MKB. В данной реализации учитывается порядок записи символов в сжатом потоке (четыре символа записываются в порядке little-endian и описывают один байт), а также порядок бит в сжатом потоке (первый бит является старшим битом в байте).
К реализации прилагается небольшая утилита, которая выводит сжатое содержимое файла вместе с паролями, установленными для редактирования и для чтения.
Друг, с меня + в статью, карму и подписка. Но поясни зачем ты это делал. смысл происходящего?
Во-первых, я хотел создать программу, которая бы была обратно совместимой с Малой экспертной системой 2.0, что включает в себя а) одинаковое исполнение базы знаний как в оригинале, так и в моей программе и б) понимание всех форматов файлов, какие понимает Малая ЭС.
Во-вторых, мне было интересно понять, какое там шифрование применяется. Когда я слышу "шифрование", то думаю, что там есть какой-то ключ (в данном случае аж два ключа - на редактирование и на чтение, наверняка, генерируются на основе пароля), но когда я обнаружил функцию 0x40b074, то сначала не понял (куда в эту функцию ключи передаются), а потом понял, чем на самом деле то шифрование было.
Было бы неплохо понять, можно ли создать такую криптосистему, которая бы позволяла заблокировать как минимум паролем неавторизованное редактирование, но при этом разрешала чтение (если нет пароля на чтение), не прибегая к комбинации "сжатие+обфускация".
Хочу сообщить, что я написал реализацию описанного алгоритма "шифрования" на языке программирования Rust, которая ориентирована на чтение файлов в формате MKB. В данной реализации учитывается порядок записи символов в сжатом потоке (четыре символа записываются в порядке little-endian и описывают один байт), а также порядок бит в сжатом потоке (первый бит является старшим битом в байте).
К реализации прилагается небольшая утилита, которая выводит сжатое содержимое файла вместе с паролями, установленными для редактирования и для чтения.
Обратная разработка одного проприетарного алгоритма шифрования