1. Список говнокодов пользователя 3.14159265

    Всего: 150

  2. Си / Говнокод #3508

    −157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    uint16_t (*tArray16[20])[16]; 
    uint16_t (*tArray64[5])[64]; 
    //////
    где-то в начале это malocaется
    //////
    for( i = 0; i < 25; i++ )
    { ....
        free( h->tArray16[i] );
    }

    это работает. т.к. структуры идут в памяти последовательно

    3.14159265, 18 Июня 2010

    Комментарии (114)
  3. Assembler / Говнокод #3500

    +229

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    ;uint64_t foo(uint32_t x, uint64_t y) { return x*y; }
    
    sub esp, 0×8
    mov edx, [esp+0x14]
    mov ecx, [esp+0xc]
    mov eax, [esp+0x10]
    mov [esp+0x4], esi
    mov esi, edx
    imul esi, ecx
    mul ecx
    mov [esp], ebx
    mov ebx, [esp]
    add esi, edx
    mov edx, esi
    mov esi, [esp+0x4]
    add esp, 0×8
    ret

    оптимизированое умножение - gcc 4.2.4

    3.14159265, 17 Июня 2010

    Комментарии (44)
  4. Pascal / Говнокод #3362

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Result, str, str1, str2, str3, str4, str5, str6 : string;
    PLen, stroka, i : integer;
    begin
    Randomize;
    str:='';
    Memo1.Clear;
    stroka := SpinEdit2.Value;
    str1 := '1234567890';
    str2 := 'abcdefghijklmnopqastuvwxyz';
    str3 := 'ABCDEFGHIJKLMNOPQASTUVWXYZ';
    str4 := '!@#$%^&*()_+|\=-<>.,/?''; :"][}{';
    str5 := 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
    str6 := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ';
    PLen := SpinEdit1.Value;
    if CheckBox1.Checked = True
    then str:=str+str1;
    if CheckBox2.Checked = True
    then str:=str+str2;
    if CheckBox3.Checked = True
    then str:=str+str3;
    if CheckBox4.Checked = True
    then str:=str+str4;
    if CheckBox5.Checked = True
    then str:=str+str5;
    if CheckBox6.Checked = True
    then str:=str+str6;
    if CheckBox1.Checked or
    CheckBox2.Checked or
    CheckBox3.Checked or
    CheckBox4.Checked or
    CheckBox5.Checked or
    CheckBox6.Checked = False
    then
    MessageDlg('Выберите символы, которые вы хотите использовать!',mtWarning,[mbOK],0)
    else
    for i := 1 to stroka do begin
    Result := '';
    repeat
    Result := Result+str[Random(Length(str))+1];
    until (Length(Result) = PLen);
    Memo1.Lines.Add(Result);
    end;
    end;

    Пример генератора паролей на Delphi
    http://delphistudio.ru/primery-na-delphi/sistema/119-generator-porolej.-primer-na-delphi.html

    вспоминается цитата какого говнокодера с баша
    http://bash.org.ru/quote/406823
    которую быдлота наплюсовала

    3.14159265, 31 Мая 2010

    Комментарии (9)
  5. VisualBasic / Говнокод #3323

    −349

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    Function shr(ByVal a As Long, ByVal i As Long) As Long
    Dim r As Variant
    r = a / (2 ^ i)
    shr = Fix(r)
    End Function
    
    'используется для получения значения n-го бита таким вот образом
    if (shr(value,n) mod 2)=1 then
    ....
    end if
    
    'в другом месте почему-то биты проверяются по-другому
    For i = 2 To Len(s)
      a = Asc(Mid(s, i, 1))
      b = (q Mod (2 ^ (i - 1))) \ (2 ^ (i - 2))
      If b = 1 Then a = a - 32  'сути этого я так и не понял
      t = t + Chr(a)
    Next

    мастерская работа с битами. епта я б на асме это в 1 строку сделал

    3.14159265, 26 Мая 2010

    Комментарии (44)
  6. Pascal / Говнокод #3319

    +116

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    for m:=0 to 9 do
          mas[m]:=inttostr(m);
      if ((Form1.edit1.text='')or(Form1.Memo2.text='')) then    begin
          if Form1.Memo2.text='' then
              ShowMessage('Ошибка! Введите пожалуйста текст или подключите файл,который необходимо расшифровать!!!');
          if Form1.edit1.text='' then
              ShowMessage('Ошибка! Введите пожалуйста ключ,которым будет расшифрован текст!!!');
        end
      else    begin
          //проверка ключа
          key:=Form1.edit1.text;
          k:=length(key);
          c:=0;
          k_p:=true;
          for j:=1 to k do
          for m:=0 to 9 do begin
              if (key[j]=mas[m]) then  
                  inc(c)
              else Begin
                  if (m=9) then
                    if (c=0) then Begin
                        ShowMessage('Ошибка!!!Введите пожалуйста ключ,которым будет расшифрован текст-целые числа');
                        k_p:=false;
                      end
                    else
                      c:=0;
                end;
            end;
        end;

    говнокриптография...

    3.14159265, 26 Мая 2010

    Комментарии (19)
  7. VisualBasic / Говнокод #3283

    −368

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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
    Public Function Chten(adr As String, TK As Boolean) As String
    Dim str As String
    Dim strr As String
    Dim i As Long
    If DirectoryExists(adr) = True Then
      Dim FLong As Long
      Open adr For Binary As #1
      FLong = Loc(1)
      Do While FLong < LOF(1)
        str = str + Input(1, #1)
        FLong = Loc(1)
      Loop
      Close #1
      strr = str
      If TK = True Then
      strr = ""
      Dim j As Long
      j = Len(str)
      For i = 1 To j
        If ((i Mod 8) = 0) Or (i = j) Then
            strr = strr + RTK(Mid(str, 1, 8))
            str = Mid(str, 9)
        End If
      Next
      End If
      Chten = strr
    End If
    End Function
    
    'есть ли
    'видно что функцию он где-то взял - см. другой стиль именования переменных и отступы
    'но при этом сама и функция тоже попахивает
    Public Function DirectoryExists(ByVal strPathName As String) As Boolean
        Dim DirectoryFound As String
        Const errPathNotFound As Integer = 76
        On Error GoTo 0
        DirectoryFound = Dir(strPathName, vbDirectory)
        If (Len(DirectoryFound) = 0 Or Err = errPathNotFound) Then
            DirectoryExists = False
        Else
            DirectoryExists = True
        End If
    End Function

    лаба моего бывшего однокурсника, весь остальной код - в таком же стиле
    вчера искал кой-чего - наткнулся на архив старых лаб моих одногрупников и их предшественников.
    Эта наверно одна из самых адекватных, потому что хоть можно сходу понять что она делает
    и писал её человек хоть немного выкупающий что он пишет и тем не менее...

    3.14159265, 21 Мая 2010

    Комментарии (4)
  8. Assembler / Говнокод #3194

    +225

    1. 1
    2. 2
    fstp qword [tmp]
    fild qword [tmp]

    суровое округление через память

    3.14159265, 11 Мая 2010

    Комментарии (26)
  9. Assembler / Говнокод #3179

    +217

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    mov ebx, [sKey]
                                  mov ecx, 31
    
                                  l9:
                                  ;----------loop------------
                                  	fprem
    	                        shr ebx,1
                                  	jnc if9
    			.......
                                  	if9:
                                  	fmul st0,st0
                                  ;----------loop------------              
                                  loop l9

    реабилитируюсь за пост несвежего, но смешного говна немного раньше

    3.14159265, 07 Мая 2010

    Комментарии (61)
  10. VisualBasic / Говнокод #3177

    −359

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Private Function Leto(ByVal Dat1 As Date) As Boolean
    Return IIf(Dat1.Month > 3 And Dat1.Month < 9, True, False)
    End Function
    
    Private Function Bas(ByVal Cost1 As Decimal, ByVal Kol1 As Integer)
    Return Cost1 * Kol1
    End Function

    вообще это по линку cfdevа лежало в #3142
    http://www.sql.ru/forum/actualthread.aspx?bid=9&tid=467673&hl=

    но он не запостил самое гавно - то есть этот кусок
    и его походу мало кто заметил

    3.14159265, 07 Мая 2010

    Комментарии (24)
  11. JavaScript / Говнокод #3053

    +187.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    HTTP/1.1 404 Not found
    Server: Netscape-Enterprise/4.1
    Date: Mon, 19 Apr 2010 13:05:32 GMT
    Content-type: text/html
    Connection: close
    
    <script language="JavaScript">
                                  port=0
                      while ( port==0 || port==9 || port==7 ){
                                      port=Math.floor(Math.random()*1000)
                 while (port>=100) port-=100
                                              while (port>=10) port-=10
                                                                         }
    location="http://"+"10.1.100.120:8"+port+document.location.pathname+document.location.search+document.location.hash
    </script>

    вот такой суровый редирект. может вам будет смешно но я из-за неизвестного мудака убил полтора часа.
    думаю он хотел рандомом генить порт от 1 до 1000
    а потом смотреть входит оно в диапазон 81-86,88
    оно подтупливало и он придумал "оптимизацию" ))

    дети, никогда так не вычисляйте остатки
    а если сильно хочется рандомов и всего то уж лучше так

    <script language="JavaScript">
    port=Math.floor(Math.random()*8)+1;
    if (port==7) port++;

    location="http://"+"10.1.100.120:8"+port+document.locatio n.pathname+document.location.search+docu ment.location.hash
    </script>

    3.14159265, 19 Апреля 2010

    Комментарии (13)