![]() |
eXeL@B —› Вопросы новичков —› Обратить функцию FoxPro |
Посл.ответ | Сообщение |
|
Создано: 25 октября 2013 09:46 · Поправил: Loh_Ushastik · Личное сообщение · #1 Есть функция на фокспро: FUNCTION Reg *** ENDFUNC Переменная id - это идентификатор компьютера с абсалютным значением которого в итоге сравнивается результат вычисления функции с входящим параметром id1 - введенный серийник. Софт реверсится на раз - хочешь верни в обоих случаях фальс, хочешь поправь на сравнение одной и той же переменной. Вот теперь хочу типа КГ сделать. Первый цикл оформил , а вот два вложенные ниже ну никак логику не пойму, вернее результат отличается от того , что получается в программе. для контроля : Серийник на входе - id1 = 2222222222221111 Идентификатор на входе и при сравнении на выходе из функции id = 1809384867 Результат вычислений программой - id1 =0000000000033211 Пишу на Делфи. Подскажите обратима она? линейно вроде бы все понятно: 1. собирает строку из серийника, каждый символ типа число А=10 (длина >1) если 1 (длина <1) то лепит ноль так 01 2. В получившейся строке с хвоста берет числа (2 символа) и ксорит их с предыдущим 3. Потом в строке меняет i-тую пару на результат ксор (если нужно дописывает ведущий ноль) 4. И в конце выбирает каждый второй символ из результирующей строки Ксор функция обратимая, это хорошо но эти циклы меня совсем запутали. ![]() ![]() |
|
Создано: 25 октября 2013 11:40 · Личное сообщение · #2 |
|
Создано: 25 октября 2013 12:20 · Поправил: -=AkaBOSS=- · Личное сообщение · #3 сппшный вариант. работает напрямую с байтами, без заморочек с преобразованиями Code:
/ADD по моим подсчётам, для указанного хвида может подойти такой ключ: 99999998190A1D67 проверь его - если подойдёт, выложу алго. не на паскале, правда) ![]() |
|
Создано: 25 октября 2013 12:22 · Поправил: Loh_Ushastik · Личное сообщение · #4 |
|
Создано: 25 октября 2013 14:14 · Поправил: Loh_Ushastik · Личное сообщение · #5 -=AkaBOSS=- пишет: сппшный вариант. Спасибо , с преобразованием я поня и что ксор понятно, а вот как заразу вывернуть в обратную сторону , с момента : IF VAL(id1)<>ABS(id) где при правильном серийнике будет сравниваться IF VAL(1809384867)<>ABS(1809384867) и в обратную сторону размотать алгоритм , чтобы получить валидный Кей ? По логике я так понимаю при выходе из циклов: Code:
Должна быть строка : 00000000000001080009030804080607 для моего компьютера. А вот следующий шаг к началу - застрял. Вот эти цыклы как обратить? ![]() ![]() |
|
Создано: 25 октября 2013 17:46 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Обратить функцию FoxPro |
Эта тема закрыта. Ответы больше не принимаются. |