Реферат: Как ломать программы Windows C EDSON UCF, перевод Mr.BocoTCP

Нажмем F5 или Ctrl-D чтобы вернуться в программу и попробуем еще раз, но на этот раз с правильным кодом (в десятичной форме). Работает!

4. СОЗДАНИЕ ГЕНЕРАТОРА КЛЮЧЕЙ ДЛЯ COMMAND LINE 95

Взглянем на алгоритм генерации кода и попробуем перевести его на язык Си. Вот очень простая формула, по которой подсчитывается ключ:

code = ((uppercase_first_char * length_of_string) << 0x0A) + 0x2f8cc;

Замечание #1: Не следует забывать, что все символы в окне ввода имени были приведены к верхнему регистру, поэтому мы должны сделать то же.

Замечание #2: "<< 0x0A" означает "умножние на 2 в степени 10"

Целиком программа на Си выглядит так:

#include <string.h>

#include <stdio.h>

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;

printf("Your code is: %lu", code);

return 0;

Приятных сновидений!

4. КАК РАБОТАЮТ PUSH И CALL КОГДА ПРОГРАММА ВЫЗЫВАЕТ ФУНКЦИЮ

Снова

взглянем

PUSH

PUSH

PUSH

PUSH

CALL

на кусок кода из Task Lock'а:

К-во Просмотров: 913
Бесплатно скачать Реферат: Как ломать программы Windows C EDSON UCF, перевод Mr.BocoTCP