Кресты / Говнокод #16754 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
#include<iostream>
#include<clocale>
#include<fstream>
#include<cstring>
using namespace std;
int main()
{
    setlocale(LC_ALL,"RUS");
    int cnt=0,cnt2=0,cnt3=0,cnt4=0;
    int iMax=93;
    bool bPassword=1;
    char password[6];
    char cBuffer[5]="";
    char cSymbols[]=",<.>/?;:'|[{]}`~!@#$%^&*()-_=/№0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHILKLMNOPQRSTUVWXYZ";
    char cClear[]="";
    cout<<"Введите пароль:";
    cin>>password;
    cout<<"Брать ли в перебор символы?(1 - да , 0 - нет):";
    bool bSymbols;
    cin>>bSymbols;
    cout<<"Брать ли в перебор цифры?(1 - да , 0 - нет):";
    bool bNumbers;
    cin>>bNumbers;
    cout<<"Брать ли в перебор буквы нижнего регистра?(1 - да , 0 - нет):";
    bool bDownRegister;
    cin>>bDownRegister;
    cout<<"Брать ли в перебор буквы верхнего регистра?(1 - да , 0 - нет):";
    bool bUpRegister;
    cin>>bUpRegister;
    while(bPassword)
    {
        if(!bSymbols){if(cnt>=0&&cnt<31){cnt++;continue;}}
        if(!bNumbers){if(cnt>=31&&cnt<41){cnt++;continue;}}
        if(!bDownRegister){if(cnt>=31&&cnt<67){cnt++;continue;}}
        if(!bUpRegister){if(cnt>=67&&cnt<iMax){cnt++;continue;}}
        cBuffer[0]={cSymbols[cnt]};
        bPassword=strcmp(password,cBuffer);
        cout<<"cBuffer:"<<cBuffer<<endl;
        if(bPassword){strcpy(cBuffer,cClear);}
        if(cnt==iMax)
        {
            cnt=0;
            while(bPassword)
            {
                if(!bSymbols){if(cnt>=0&&cnt<31){cnt++;continue;}}
                if(!bNumbers){if(cnt>=31&&cnt<41){cnt++;continue;}}
                if(!bDownRegister){if(cnt>=31&&cnt<67){cnt++;continue;}}
                if(!bUpRegister){if(cnt>=67&&cnt<iMax){cnt++;continue;}}            
                if(!bSymbols){if(cnt2>=0&&cnt2<31){cnt2++;continue;}}
                if(!bNumbers){if(cnt2>=31&&cnt2<41){cnt2++;continue;}}
                if(!bDownRegister){if(cnt2>=31&&cnt2<67){cnt2++;continue;}}
                if(!bUpRegister){if(cnt2>=67&&cnt2<iMax){cnt2++;continue;}}
                cBuffer[0]={cSymbols[cnt2]};
                cBuffer[1]={cSymbols[cnt]};
                bPassword=strcmp(password,cBuffer);
                cout<<"cBuffer:"<<cBuffer<<endl;
                if(bPassword){strcpy(cBuffer,cClear);}
                if(cnt2==iMax&&cnt==iMax)
                {
                    cnt2=0;
                    cnt=0;
                    while(bPassword)
                    {
                        if(!bSymbols){if(cnt>=0&&cnt<31){cnt++;continue;}}
                        if(!bNumbers){if(cnt>=31&&cnt<41){cnt++;continue;}}
                        if(!bDownRegister){if(cnt>=31&&cnt<67){cnt++;continue;}}
                        if(!bUpRegister){if(cnt>=67&&cnt<iMax){cnt++;continue;}}
                        if(!bSymbols){if(cnt2>=0&&cnt2<31){cnt2++;continue;}}
                        if(!bNumbers){if(cnt2>=31&&cnt2<41){cnt2++;continue;}}
                        if(!bDownRegister){if(cnt2>=31&&cnt2<67){cnt2++;continue;}}
                        if(!bUpRegister){if(cnt2>=67&&cnt2<iMax){cnt2++;continue;}}
                        if(!bSymbols){if(cnt3>=0&&cnt3<31){cnt3++;continue;}}
                        if(!bNumbers){if(cnt3>=31&&cnt3<41){cnt3++;continue;}}
                        if(!bDownRegister){if(cnt3>=31&&cnt3<67){cnt3++;continue;}}
                        if(!bUpRegister){if(cnt3>=67&&cnt3<iMax){cnt3++;continue;}}
                        cBuffer[0]={cSymbols[cnt3]};
                        cBuffer[1]={cSymbols[cnt2]};
                        cBuffer[2]={cSymbols[cnt]};
                        bPassword=strcmp(password,cBuffer);
                        cout<<"cBuffer:"<<cBuffer<<endl;
                        if(bPassword){strcpy(cBuffer,cClear);}
                        if(cnt3>=iMax&&cnt2>=iMax&&cnt>=iMax)
                        {
                            cnt3=0;
                            cnt2=0;
                            cnt=0;
                            while(bPassword)
                            {
                                if(!bSymbols){if(cnt>=0&&cnt<31){cnt++;continue;}}
                                if(!bNumbers){if(cnt>=31&&cnt<41){cnt++;continue;}}
                                if(!bDownRegister){if(cnt>=31&&cnt<67){cnt++;continue;}}
                                if(!bUpRegister){if(cnt>=67&&cnt<iMax){cnt++;continue;}}
                                if(!bSymbols){if(cnt2>=0&&cnt2<31){cnt2++;continue;}}
                                if(!bNumbers){if(cnt2>=31&&cnt2<41){cnt2++;continue;}}
                                if(!bDownRegister){if(cnt2>=31&&cnt2<67){cnt2++;continue;}}
                                if(!bUpRegister){if(cnt2>=67&&cnt2<iMax){cnt2++;continue;}}
                                if(!bSymbols){if(cnt3>=0&&cnt3<31){cnt3++;continue;}}
                                if(!bNumbers){if(cnt3>=31&&cnt3<41){cnt3++;continue;}}
                                if(!bDownRegister){if(cnt3>=31&&cnt3<67){cnt3++;continue;}}
                                if(!bUpRegister){if(cnt3>=67&&cnt3<iMax){cnt3++;continue;}}

Брутфорс 2014 (!).

Запостил: Exclumice Exclumice, (Updated )

Комментарии (43) RSS

  • Правильно ли я понимаю, что оно брутит введенный юзером пароль?

    P.S. Сам код тоже писался не без применения грубой силы...
    Ответить
  • Товарищи гуру кода. А как можно исправить сего монстра? Создать несколько массивов - один со строчными, другой с прописными буквами, третий с цифрами и т. д., а при выборе юзером нужных опций попросту копировать нужные наборы символов в "рабочий" динамический массив? Или как?
    P.S.: Если меня накормят говном - я пойму.
    Ответить
    • Это пишет человек с чем-то факелоподобным на аватарке?
      Ответить
      • Человек с чем-то факелоподобным на аватарке давно покинул сия вертеп.
        Ответить
        • Жаль. А я уж увидел "истинно, батюшка" в соседнем треде и подумал, что он вернулся. Выходит, это просто кто-то вайпает в честь него.
          Ответить
              • И чьи комментарии больше похожи на комментарии гостя?
                Ответить
                • Ну ладно, мои, если сравнивать посимвольно.
                  P.S. Такая прямолинейность напоминает работу системы "Антиплагиат". Это даже смешнее, чем ЕГЭ, поскольку задачки для ЕГЭ хотя бы люди придумывали. А тут пишешь диплом, скажем, на тему поэзии Пушкина, а в заимствованиях получаешь документы по сравнительной зообиологии жидорептилоидов из-за титульного листа или какого-нибудь научного оборота вроде "Рассмотрим ротор ротора магнитного поля вытянутого плавославного цилиндра размером в один ямб".
                  Ответить
                  • Если что, это разность градиента дивергенции и лапласиана вышеуказанного религиозного вектора.
                    Ответить
                    • Бессмыслица — "правый выход" из конвенциональной парадигмы сообщения. Бессмыслица контрреволюционна, она по сути консервативна и охранительна — она доводит до предела и переводит через предел присущие материнской культуре, сохраняя в синтаксисе, в затексте всю предысторию смысла. Заумь — эстетика левая, революционная, авангардная. Роль зауми в литературе во многом аналогична роли абстракционизма в изобразительном искусстве: в обоих случаях вместо конвенциональных значений предлагается некоторый более или менее андифицированный смысл.
                      Ответить
                    • а че так сложно? ротор в точке это ж тупе векторное произведение набла и вектора поля в точке.
                      Ответить
                      • Там джважды умножали - так что набла перевернулась.
                        Ответить
                      • Кстати, с какого хрена поднялась эта возня с The SCP Foundation? Народ спокойненько пилил годами свою личную шизофазию автогенератором на отдельном сайте для автогенерации, а тут вдруг с августа Joyreactor пестрит картинками всяких ██████ и кругом шутки про Java-объекты.
                        Ответить
                        • хз, я давно фанат SCP и терпеть не могу эти чорные полоски.

                          про жабу - я тут доклад человека слушал и он сказал что final делает из класса подобие структуры(?!) а так же что в жабе 4 основных вида объектов. Можете пояснить?
                          Ответить
                          • > и он сказал что final делает из класса подобие структуры
                            Алокация на стеке.
                            Но escape-анализ и без final так умеет, просто немутабельные объекты проще дуплить. Ты ж любитель хаскилов всяких.
                            Ответить
                            • В жабе же нет дефолтного интрументария для аллокации на стэке. И final тут не пришей кобыле хвост
                              Ответить
                              • > же нет дефолтного интрументария для аллокации на стэке
                                Зачем он нужен?
                                Ответить
                              • >И final тут не пришей кобыле хвост
                                Непонятно конечно кого ты слушал, что он говорил, и как ты это понял.
                                Возможно речь шла о том что можно поля наружу выставлять, без геттеров, если он финальные.
                                Ответить
                                • Цитата "Final позволяет делать из классов аналог структур в .Net" звиняйте, но бред же.
                                  Ну если не считать, что нельзя наследоваться, да, тут аналогия полная
                                  Ответить
                            • то бишь если я создам в одном скоупе много мелких обьектов, которые не юзаются за пределами, то JVM поля в стек заложит?
                              Ответить
                                • норм. видимо еще и массивы полей делает из массивов структур. то бишь для поинтов массив Х и массив Y
                                  Ответить
                                  • > массивы полей делает из массивов структур
                                    А вот это уже очень маловероятно. Как минимум из-за null'а. Ну и из-за наследования (если класс не final, то вместо него всегда могут подсунуть его потомка).
                                    Ответить
                          • > а так же что в жабе 4 основных вида объектов
                            И всё, больше ничего не сказал человек? Критерий деления не упомянул, весь список не огласил?
                            Ответить
                            • сказал что не понимает их устройства и что они есть. больше ничего. а потом заявил что есть книжка философия жабы, но он ее не осилил.
                              А еще первый слайд хвастал надписью "правило номер 0 - не ЯВА, а ДЖАВА", на что препод спросил "а жабой можно называть?"


                              у меня вообще сложилось впечатления, что я через .Net знаю о жабе больше, чем докладчик.
                              Ответить
                          • > жабе 4 основных вида объектов
                            Х.з., если честно, о чем он.

                            Есть вероятность, что он делит их на обычные, вложенные static/не static классы и анонимные. Как раз 4 получается.

                            P.S. Ты же доклад слушал, тебе лучше знать...
                            Ответить
                            • Возможно, он имел в виду типы ссылок - обычные, слабые, мягкие, фантомные...
                              Ответить
                              • не, очень маловероятно. Это ж надо иметь представления о ссылках и сборке мусора, а там похоже - хуячь как можешь и будь как будет
                                Ответить
  • На самом деле, я видел нечто похожее в одноэске семёрке. Там можно выбрать группировки галочками, скажем, по товару, складу и фирме, а внутри - пять вложенных циклов, которые эти группировки умеют обходить. Вне зависимости от порядка, т.е. там внутри куча пасты для того, если эта группировка товар, или склад, и так пять раз.
    Количество возможных группировок - семь-восемь. Что происходит, когда пользователь выбирает больше пяти? Его вежливым языком отправляют нахер, предлагая выбрать любые, но не более пяти.
    С человеческим лицом. (q)
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8