eXeL@B —› Основной форум —› Возможно ли обратить алгоритм? |
Посл.ответ | Сообщение |
|
Создано: 06 июня 2012 10:17 · Личное сообщение · #1 Имеется банальная пара - сервер / клиент. Есть доступ только к коду клиента. По запросу сервер присылает файл, который клиент проверяет на валидность и далее расшифровывает. Проверка на валидность с виду проста, считается "CRC файла", за исключением последних 8 байт, и сравнивается с последними 8 байтами файла, если совпало - ок, иначе - облом. Задача - требуется самому "посчитать CRC" и записать в конец данных, чтобы клиент принял этот файл за родной, возможно ли это реализовать? Весь отреверсенный алгоритм проверки с примером файла и рабочим кодом в прицепе (моя неудачная попытка обращения там же). 9a9d_06.06.2012_EXELAB.rU.tgz - FileCRC.zip ----- Everything is relative... |
|
Создано: 06 июня 2012 10:54 · Поправил: r_e · Личное сообщение · #2 Vamit Мне кажется будет проще, если переименовать UpdateKey в MulMod64 = /* k * n mod m. */ GetKey в ExpMod64 = /* rem ^ n mod m. */ Тогда становится ясно что ulong keyOr = GetKey(origKey, Y, M); // origKey ^ Y mod M Дальше надо? added: public ulong ComputePrivateKey(byte[] data) { ulong dataKey = PrepareKey(data); ulong keyDt = dataKey % M; return ExpMod64(keyDt, 0x1DE7FED38081, M); } ----- старый пень | Сообщение посчитали полезным: Vamit |
|
Создано: 06 июня 2012 11:15 · Поправил: Vamit · Личное сообщение · #3 r_e Я понимаю, что вы в этом гуру, а я, к сожалению, в криптоалгоритмах почти нуль (могу только реверсить не очень понимая что к чему), т.ч. если есть желание и возможность, то можете переименовать всё что нужно и если сделаете функу обращения, то вознаграждение гарантирую - подробности в личку... added1: Охх, пока писал ты уже и ответ добавил - вот молодец... added2: Вопросик можно, откуда взялась эта константа - 0x1DE7FED38081? ----- Everything is relative... |
|
Создано: 06 июня 2012 11:25 · Поправил: r_e · Личное сообщение · #4 Читаем про ----- старый пень |
|
Создано: 06 июня 2012 11:57 · Личное сообщение · #5 |
|
Создано: 06 июня 2012 14:36 · Личное сообщение · #6 Vamit пишет: Имеется банальная пара - сервер / клиент. Есть доступ только к коду клиента. По запросу сервер присылает файл, который клиент проверяет на валидность и далее расшифровывает. Проверка на валидность с виду проста, считается "CRC файла", за исключением последних 8 байт, и сравнивается с последними 8 байтами файла, если совпало - ок, иначе - облом. Метатрейдер Сервер-клиет ковыряете ... Именно там идут подписи с помощью этого ключа. |
eXeL@B —› Основной форум —› Возможно ли обратить алгоритм? |