Есть у нас на диске 2053 от СВС программа "СЕРДЖИН", которая умеет делать некоторые системные действия, которые не делает СЕРП, и эти системные действия, например, выдача сообщения на произвольный терминал, защищена нехранимым паролем: 6 слов расшифровываются с помощью синуса и XOR цепным образом, потом на них передается управление.
Захотелось мне этот пароль вскрыть, for hack value, разумеется. Антропиковский Клод отказался, пришлось Гроком. Он написал программу перебора, а я придумывал разные cleartext cribs, типа должна встречаться команда возврата ПБ (13), не должно быть других переходов за пределы этих 6 слов, и т. п. Первые несколько попыток угадать crib приводили к возможным ключам безумного вида со смесью цифр и букв обоих алфавитов, и ничего не работало. Потом я понял, что сам этот код должен был формировать команды, предположил наличие УИА с небольшим по модулю отрицательным числом, ЦИКЛ назад по тому же регистру, и тут же выскочили вероятные пароли из 4 символов: "2АТD", "2АФD", "ВАС;", "ВАТ;", "ВАФ;", которые давали в первых трех словах что-то похожее на
УИИ 9(4) пока неясно, зачем
УИА -2(12)
сюда СЧ откуда+2(12)
Э75 куда+2(12)
ЦИКЛ сюда(12)
ПБ (13)
откуда ....
с ошибками в тех или иных местах, а собственно пароль (конечно, ВАСЯ) давал ошибки в ожидаемых командах (например 26 вместо 24), поэтому в качестве вероятного пароля вообще не появился.
Синус при этом считался стандартным кодом ОС Диспак, в котором есть только сложения и умножения, а на них симулятор собаку съел.
Единственное, что я могу предположить - это что разрабатывали программу на системе, в которой ради улучшенной точности коэффициенты полинома в Диспаке были хакнутые. О подобных случаях известно?
Leo