Представим, что есть некая программа,
защищенная "ключем активации",
зависящим от введенного имени. Вот
реализация этого на Си (для приведенного
примера необходимо использовать 32-ух
битный компилятор, любители Дельфи, сорри…).
Программа спрашивает имя и пароль,
проверяет его и говорит "правильно"
или "извиняй, дядя".

#include <stdio.h>

unsigned int me(unsigned int arg,int p,int n){

unsigned int r=1;
for(;p>=1;p—)r=(r*arg)%n;
return r;

}

void main(){

unsigned int e=35467,n=54031,pwd;
char name[256];
unsigned int hash,x;

printf("Name: ");scanf("%s",name);
printf("Password: ");scanf("%d",&pwd);

hash=0;
for(x=0;;x++){
if(name[x]==0)break;
hash+=name[x];
}

if(me(pwd,e,n)==hash)
printf("Correct!\n");
else printf("Sorry :(\n");

}

Задача: сделать генератор паролей —
программу, спрашивающую имя и вычисляющую
"правильный" пароль. Понятно, что
программа, определяющая пароль полным
перебором (он займет несколько часов) —
неспортивно :), есть гораздо более красивые
решения.

Вторая — для тех, кто предпочитает копаться
не в исходниках, а в сетях. 

Даны хосты:

194.113.251.192
208.220.199.96
165.76.80.98
136.204.73.14
129.35.180.113

1. Чем они замечательны?
2. В чем причина?

Срок — опять до следующей пятницы.

Оставить мнение

Check Also

Windows 10 против шифровальщиков. Как устроена защита в обновленной Windows 10

Этой осенью Windows 10 обновилась до версии 1709 с кодовым названием Fall Creators Update …