1. C++ / Говнокод #16754

    +62

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    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, 23 Сентября 2014

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

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

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

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


                                у меня вообще сложилось впечатления, что я через .Net знаю о жабе больше, чем докладчик.
                                Ответить
                                • я вообще не знаю джаву но книжку осилил когда её прочитал понял нахуй этот ООП нужен.
                                  Ответить
                                  • и нахуй?
                                    Ответить
                                    • > и нахуй?
                                      Вот именно, что нахуй.
                                      Ответить
                                      • Добби подарили компилятор хаскеля, Добби свободен от ооп!
                                        Ответить
                                        • >Добби подарили компилятор хаскеля, Добби свободен от ооп!
                                          А у Добби уже есть работа? Или Добби только целыми днями ест борщи?
                                          Ответить
                                          • > целыми днями ест борщи?
                                            Проверять еду Царя на наличие ядов - тоже работа.
                                            Ответить
                                          • > уже есть работа?
                                            работа дураков любит
                                            Ответить
                                          • Добби вообще нет. Это метафора
                                            Ответить
                                      • Зёрнышки риса Хаскель и речку нахуй.
                                        Ответить
                            • > жабе 4 основных вида объектов
                              Х.з., если честно, о чем он.

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

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

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