"ED!SON (пер. Mr.Boco). Как ломать программы Windows" - читать интересную книгу автораCMP ECX, EDX ; Сравнивает числа JZ 00402DA6 ; Прыгает, если равны Когда Вы дотрассировали до сравнения чисел, Вы можете посмотреть, каким должен был быть Ваш РЕАЛЬНЫЙ регистрационный код: :? ecx В моем случае это дало: 000DC0CC 0000901324 То есть, правильный код для меня: 901324. Нажмем F5 или Ctrl-D чтобы вернуться в программу и попробуем еще раз, но на этот раз с правильным кодом (в десятичной форме). Работает! 4. СОЗДАНИЕ ГЕНЕРАТОРА КЛЮЧЕЙ ДЛЯ COMMAND LINE 95 ================================================= Взглянем на алгоритм генерации кода и попробуем перевести его на язык Си. Вот очень простая формула, по которой подсчитывается ключ: code = ((uppercase_first_char * length_of_string) << 0x0A) + 0x2f8cc; Замечание #1: Не следует забывать, что все символы в окне ввода имени были приведены к верхнему регистру, поэтому мы должны сделать то же. Замечание #2: "<< 0x0A" означает "умножние на 2 в степени 10" Целиком программа на Си выглядит так: #include #include int main() { unsigned long code; unsigned char buffer[0x1e]; printf("CommandLine95 Keymaker by ED!SON '96\n"); printf("Enter name: "); gets(buffer); strupr(buffer); code = ( ((unsigned long)buffer[0] * (unsigned long)strlen(buffer)) << 0x0A) + 0x2f8cc; |
|
|