Я пытаюсь прочитать файлы данных, сгенерированные программой, изначально написанной на Visual Basic 6 (а затем переписанной на Java), чтобы я мог обработать их, используя свои собственные инструменты.
Рассматриваемая программа является общественным достоянием, созданным правительством США; нет лицензионного соглашения, запрещающего это. Я не могу упомянуть название программы или ссылку на ее веб-сайт, потому что программист, вероятно, изменит запутывание в версии следующего года, и мне придется повторить мои усилия по обратному инжинирингу.
Основной формат файла данных основан на тексте, а запутывание - это некий потоковый шифр с жестко закодированным ключом. Я могу объединить файлы данных XOR, чтобы получить некоторые данные (заполнив одно из строковых полей повторяющимся символом ASCII), но я хотел бы избежать встраивания всего потока ключей в мою программу.
Поиск в файле .exe выявляет вызов подпрограммы с именем RC4ini и строку, которая, как я считаю, является ключом (она нигде не отображается в пользовательском интерфейсе). Я нашел, что может быть исходным кодом для этой библиотеки шифрования на Исходный код планеты , внес корректные изменения в работающую реализацию RC4 (в JavaScript, поскольку это язык программирования, на котором я в основном работаю), и попробовал его использовать.
Я пытался искать зашифрованные данные при каждом смещении в файле, но мне не удалось расшифровать. Почему это происходит?