- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
// Стандартное быдлорешение быдлофорсом
#include <stdio.h>
#include <stdlib.h>
#include <crypt.h>
#include <string.h>
void decrypt1(char hash[], char salt[]) {
char * crypted, pass[2], a;
pass[1] = '\0';
for (a = 'a'; a < 'z' + 1; a++) {
pass[0] = a;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
pass[0] -= 0x20;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
}
}
void decrypt2(char hash[], char salt[]) {
char * crypted, pass[3], a ,b;
pass[2] = '\0';
for (a = 'a'; a < 'z' + 1; a++) {
pass[0] = a;
for (b = 'a'; b < 'z' + 1; b++) {
pass[1] = b;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
pass[1] -= 0x20;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
}
pass[0] -= 0x20;
for (b = 'a'; b < 'z' + 1; b++) {
pass[1] = b;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
pass[1] -= 0x20;
crypted = crypt(pass, salt);
if(strcmp(crypted, hash) == 0) {
printf("Password: %s\n", pass);
exit(0);
}
}
}
}
/*
Соответствующая поставленной задаче куча дерьма.
Растёт и ширится как будто в неё упал кусок дрожжей.
*/
int main(int argc, char * args[]) {
if (argc != 2) exit(1);
decrypt1(args[1], "50");
decrypt2(args[1], "50");
decrypt3(args[1], "50");
decrypt4(args[1], "50");
printf("Nothing found, sorry.\n");
return 0;
}