Здравствуйте. У меня есть назовем некая функция, которая на вход принимает данные в виде строки и на выходе отдает строку. Внутри функции происходят какие-то не совсем сложные логические преобразования (аля xor), но не могу додуматься, какой у этой функции алгоритм работы. (отреверсить функцию не могу) На вход подаяю = на выходе получаю. 0x31 = 0x47 0x31, 0x31 = 0x47, 0xA0 0x31, 0x31, 0x31 = 0x47, 0xA0, 0xF4 0x32 = 0x44 0x32, 0x32 = 0x44, 0xA3 0x32, 0x32, 0x32 = 0x44, 0xA3, 0xF7 0x33 = 0x45 0x33, 0x33 = 0x45, 0xA2 0x33, 0x33, 0x33 = 0x45, 0xA2, F6 0x31, 0x32, 0x33 = 0x47, 0xA3, 0xF6 Из этого видно, что "кодирование" зависит от порядка символа в строке. Мне нужно узнать алгоритм для строк любого размера. (оригинальная функция "кодирует" строку любой длины, там не таблица по которой ксорят порядковый символ в строке) Есть идеи, что это?
так может там просто ксор со строкой символов? ну, такой массив: 0х76, 0х91, ... а когда достигается конец массива, ксор начинается с начала. дай результат обработки сотни одинаковых символов. кстати, это можно в А&О наверное.
ну может быть так например: Код (Text): f(x, i) { ret = 118; for (y = 1; y <= i; y++) ret += (28 - y)*y; ret ^= x; } =]
А так вообще очевидно что это просто ксор с длинным ключом. Этот ключ можно найти чисто экспериментально, подавая все большее кол-во данных.