1. Куча / Говнокод #25136

    −103

    1. 1
    Остались ли среди созидателей Ынтерпрайзного гуано не познавшие вкус хуйца своего шефа?

    Cолгите ещё один раз. Обманите себя, сказав что Ваш рот девственен.

    rOMOCEKCYAjluCT, 02 Декабря 2018

    Комментарии (151)
  2. Куча / Говнокод #25135

    0

    1. 1
    2. 2
    https://habr.com/post/431534/
    Проблемные личности среди разработчиков

    syoma, 30 Ноября 2018

    Комментарии (76)
  3. C++ / Говнокод #25134

    +1

    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
    // HooksList.h
    #define PPCAT_NX(A, B) A ## B
    #define PPCAT(A, B) PPCAT_NX(A, B)
    
    #ifdef HOOKS_DEFS
        using namespace NtStructs;
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
            return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__); \
            extern PPCAT(hook_name, _ptr) PPCAT(hook_name, _orig);
    #elif defined(HOOKS_LIST)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            {module_name, #hook_name, (LPVOID)PPCAT(hook_name, _hook), (LPVOID*)&PPCAT(hook_name, _orig), enabled},
    #elif defined(HOOKS_TYPES_DEF)
        using namespace NtStructs;
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
            return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__);
    #elif defined(ORIGINAL_FUNCTIONS_TABLE_DEF)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            PPCAT(hook_name, _ptr) hook_name;
    #elif defined(ORIGINAL_FUNCTIONS_TABLE_FILL)
        #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
            (ORIGINAL_FUNCTIONS_TABLE_NAME).hook_name = PPCAT(hook_name, _orig);
    #else
        #define API_HOOK_DEF(...)
    #endif
    
    // NtCreateFile
    API_HOOK_DEF(L"ntdll", NtCreateFile, NTSTATUS, true,
                 PHANDLE            FileHandle,
                 ACCESS_MASK        DesiredAccess,
                 POBJECT_ATTRIBUTES ObjectAttributes,
                 PIO_STATUS_BLOCK   IoStatusBlock,
                 PLARGE_INTEGER     AllocationSize,
                 ULONG              FileAttributes,
                 ULONG              ShareAccess,
                 ULONG              CreateDisposition,
                 ULONG              CreateOptions,
                 PVOID              EaBuffer,
                 ULONG              EaLength)
    
    // NtDeleteFile
    API_HOOK_DEF(L"ntdll", NtDeleteFile, NTSTATUS, true,
                 POBJECT_ATTRIBUTES ObjectAttributes)
    // И так далее
    
    // В .cpp:
    static HookEntry hookEntries[] = {
    #define HOOKS_LIST
    #include "HooksList.h"
    #undef HOOKS_LIST
    };
    
    
    // ...
    static OriginalFunctions originalFuncsTable;
    #define ORIGINAL_FUNCTIONS_TABLE_FILL 1
    #define ORIGINAL_FUNCTIONS_TABLE_NAME originalFuncsTable
    #include "HooksList.h"
    #undef ORIGINAL_FUNCTIONS_TABLE_NAME
    #undef ORIGINAL_FUNCTIONS_TABLE_FILL

    Мокросы!..

    gost, 30 Ноября 2018

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

    +3

    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
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    : ENUM>  ( -- )  ;
    : <ENUM ( xt n -- )
       BEGIN
          BEGIN
             >IN @  BL WORD DUP C@ 0=
          WHILE
             2DROP  REFILL 0= IF EXIT THEN
          REPEAT
          FIND SWAP ['] ENUM> = AND IF DROP 2DROP EXIT THEN
          >IN !
          2DUP SWAP EXECUTE
          1+
       AGAIN
    ;
    WORDLIST CONSTANT ASSEMBLER
    GET-ORDER ASSEMBLER SWAP 1+ SET-ORDER  DEFINITIONS
    HEX
    VARIABLE 'BYTES
    : B,  ( c -- )  C,  1 'BYTES @ +! ;
    : W,  ( u -- )  DUP B,  8 RSHIFT B, ;
    : DB"  ( "ccc<quote>" -- c-addr u )
       [CHAR] " PARSE SWAP OVER HERE >R HERE SWAP DUP ALLOT CMOVE
       R> SWAP DUP 'BYTES @ +!
    ;
    : W!  ( u addr -- )  2DUP C!  SWAP 8 RSHIFT SWAP 1+ C! ;
    ' CONSTANT 0 <ENUM  AX CX DX BX SP BP SI DI  ENUM>
    ' CONSTANT 0 <ENUM  AL CL DL BL AH CH DH BH  ENUM>
    : MEM  ( u "<spaces>name" -- )  DUP 18 AND 3 RSHIFT >R 7 AND R> 2CONSTANT ;
    ' MEM 0 <ENUM
       [BX+SI]   [BX+DI]   [BP+SI]   [BP+DI]   [SI]   [DI]   [W]      [BX]
       [BX+SI]+B [BX+DI]+B [BP+SI]+B [BP+DI]+B [SI]+B [DI]+B [BP]+B   [BX]+B
       [BX+SI]+W [BX+DI]+W [BP+SI]+W [BP+DI]+W [SI]+W [DI]+W [BP]+W   [BX]+W
    ENUM>
    :NONAME  ( reg1 reg2 -- )  3 LSHIFT OR B, ;
    :NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, W, ;
    :NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, B, ;
    :NONAME  ( reg off 6 | reg u -- )
       DUP 6 = IF
          ROT 3 LSHIFT OR B, W,
       ELSE
          SWAP 3 LSHIFT OR B,
       THEN 
    ;
    CREATE MOD , , , ,
    3 CONSTANT REG
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, CELLS MOD + @ EXECUTE ;
    ' --  0   <ENUM    ADD<B    ADD<W    ADD>B    ADD>W    ENUM>
    ' --  8   <ENUM    OR<B     OR<W     OR>B     OR>W     ENUM>
    ' --  10  <ENUM    ADC<B    ADC<W    ADC>B    ADC>W    ENUM>
    ' --  18  <ENUM    SBB<B    SBB<W    SBB>B    SBB>W    ENUM>
    ' --  20  <ENUM    AND<B    AND<W    AND>B    AND>W    ENUM>
    ' --  28  <ENUM    SUB<B    SUB<W    SUB>B    SUB>W    ENUM>
    ' --  30  <ENUM    XOR<B    XOR<W    XOR>B    XOR>W    ENUM>
    ' --  38  <ENUM    CMP<B    CMP<W    CMP>B    CMP>W    ENUM>
    ' --  85  <ENUM    TESTB    TESTW    XCHGB    XCHGW
                       MOV<B    MOV<W    MOV>B    MOV>W    ENUM>
    8D -- LEA    0C4 -- LES    0C5 -- LDS
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, B, ;
    4  -- AL-ADD     0C  -- AL-OR    14  -- AL-ADC   1C  -- AL-SBB
    24 -- AL-AND     2C  -- AL-SUB   34  -- AL-XOR   3C  -- AL-CMP
    6B -- PUSHB      0A8 -- AL-TEST  0CD -- INT      0EB -- JMP-SHORT
    ' --  70  <ENUM  JO JNO JB JAE JZ JNZ JBE JA JS JNS JP JNP  ENUM>
    ' --  0B0 <ENUM    AL-MOV    CL-MOV    DL-MOV    BL-MOV
                       AH-MOV    CH-MOV    DH-MOV    BH-MOV    ENUM>
    ' --  0E0 <ENUM    LOOPNZ    LOOPZ     LOOP      JCXZ
                       INB       INW       OUTB      OUTW      ENUM>
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, W, ;
    5   -- AX-ADD    0D  -- AX-OR     15  -- AX-ADC    1D  -- AX-SBB
    25  -- AX-AND    2D  -- AX-SUB    35  -- AX-XOR    3D  -- AX-CMP
    68  -- PUSHW     0A0 -- MEM>AL    0A1 -- MEM>AX    0A2 -- AL>MEM
    0A3 -- AX>MEM    0A9 -- AX-TEST   0C2 -- RETW      0CA -- RETW-FAR
    0E8 -- CALL      0E9 -- JMP
    ' --  0B8  <ENUM    AX-MOV    CX-MOV    DX-MOV   BX-MOV
                        SP-MOV    BP-MOV    SI-MOV   DI-MOV    ENUM>
    : -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, ;
    6   -- ES-PUSH             7   -- ES-POP    0E -- CS-PUSH    16 -- SS-PUSH
    17  -- SS-POP              1E  -- DS-PUSH   1F  -- DS-POP     26 -- ES:
    26  -- DAA                 2E  -- CS:       2F  -- DAS        36 -- SS:
    37  -- AAA                 3E  -- DS:       3F  -- AAS        60 -- PUSHA
    61  -- POPA                64  -- FS:       65  -- GS:        66 -- CHANGE-OP-SIZE
    67  -- CHANGE-ADDR-SIZE    0C3 -- RET       0C9 -- LEAVE      0CB -- RET-FAR
    0CC -- INT3                0CE -- INTO      0CF -- IRET       0F0 -- LOCK
    ' --  40  <ENUM    AX-INC  CX-INC  DX-INC  BX-INC  SP-INC  BP-INC  SI-INC  DI-INC
                       AX-DEC  CX-DEC  DX-DEC  BX-DEC  SP-DEC  BP-DEC  SI-DEC  DI-DEC
                       AX-PUSH CX-PUSH DX-PUSH BX-PUSH SP-PUSH BP-PUSH SI-PUSH DI-PUSH
                       AX-POP  CX-POP  DX-POP  BX-POP  SP-POP  BP-POP  SI-POP  DI-POP
    ENUM>
    ' --  6C  <ENUM    INSB          INSW          OUTSB         OUTSW         ENUM>
    ' --  80  <ENUM    NOP           CX-AX-XCHG    DX-AX-XCHG    BX-AX-XCHG
                       SP-AX-XCHG    BP-AX-XCHG    SI-AX-XCHG    DI-AX-XCHG
                       CBW           CWD                                       ENUM>
    ' --  9B  <ENUM    WAIT      PUSHF     POPF       SAHF       LAHF          ENUM>
    ' --  0A4 <ENUM    MOVSB     MOVSW     CMPSB      CMPSW                    ENUM>
    ' --  0AA <ENUM    STOSB     STOSW     LODSB      LODSW      SCASB  SCASW  ENUM>
    ' --  0D4 <ENUM    AAM       AAD       SALC       XLAT                     ENUM>
    ' --  0EC <ENUM    DX-AL-IN  DX-AX-IN  AL-DX-OUT  AX-DX-OUT                ENUM>
    ' --  0F2 <ENUM    REPNZ     REPZ      HLT        CMC                      ENUM>
    ' --  0F8 <ENUM    CLC       STC       CLI        STI        CLD    STD    ENUM>

    Я вчера упоролся подумал, хуля я как лох пешу форт на асме, ТруЪ фротеры пишут форт на ыорте. И начал я с этого —– я представляю вам единственный и неповторимый говно-фрот-асамблец за авторством моего меня.

    Примерим:

    VARIABLE BYTES
    BYTES 'BYTES !
    CREATE PROG

    9 AH-MOV
    0 DX-MOV HERE 2 -
    21 INT
    4C00 AX-MOV
    21 INT

    DB" Hello, Forth-ASSembler!$" DROP PROG - 100 + SWAP W!

    PROG BYTES @ DUMP


    https://ideone.com/UtN1EZ

    another_fake, 29 Ноября 2018

    Комментарии (170)
  5. JavaScript / Говнокод #25131

    0

    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
    // https://dev.to/saigowthamr/how-to-reverse-a-string-in-javascript-3i9c
    
    // In this tutorial, we are going to learn three different ways to reverse a string
    // in JavaScript by using the reverse method, reduce method.
    
    // First way
    
    const str = "hello"
    
    str.split('').reverse().join('')
    
    //"olleh"
    
    
    // We used split method to split the string into an array of individual strings then chain it to reverse method.
    // Second way
    
    const str = "hello"
    
    [...str].reduce((prev,next)=>next+prev)
    
    //"olleh"
    
    // First, we spread the string using spread operator and reverse the string using the reduce method
    // Third way
    
    
    function reverseString(str){
    
      const arr = [...str]
      let reverse= "";
    
      while(arr.length){
         reverse = reverse + arr.pop()
      }
    
      return reverse
    }
    
    // I mostly like the Second way to reverse a string using reduce method.
    
    // Happy coding...

    Это видимо такой вид соревнований, типа как вкрутить лампочку в патрон наиболее упоротым и неочевидным способом. Нахрена это нужно обычному программисту? Может это такой способ ручной обфускации? Тогда понятно

    j123123, 29 Ноября 2018

    Комментарии (134)
  6. Си / Говнокод #25130

    +1

    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
    #include <stdio.h>
    #include <inttypes.h>
    #include <string.h>
    
    typedef struct
    {
      uint8_t arr[10];
      uint8_t pos;
      uint8_t is_swap;
    } arr10;
    
    arr10 bubble_sort_recursion(arr10 a);
    void bubble_sort (uint8_t arr[static 10]);
    
    
    void bubble_sort (uint8_t arr[static 10])
    {
      arr10 a;
      memcpy(a.arr, arr, sizeof(a.arr));
      a.pos = 0;
      a.is_swap = 0;
      a = bubble_sort_recursion(a);
      memcpy(arr, a.arr, sizeof(a.arr));
    }
    
    arr10 bubble_sort_recursion(arr10 a)
    {
      if (a.pos != 9)
      {
        if (a.arr[a.pos] > a.arr[a.pos + 1])
        {
          uint8_t tmp = a.arr[a.pos + 1];
          a.arr[a.pos + 1] = a.arr[a.pos];
          a.arr[a.pos] = tmp;
          a.is_swap = 1;
        }
        a.pos++;
        return bubble_sort_recursion(a);
      }
      else
      {
       if (a.is_swap == 0)
       {
         return a;
       }
       else
       {
         a.pos = 0;
         a.is_swap = 0;
         return bubble_sort_recursion(a);
       }
      }
    }
    
    int main(void)
    {
      uint8_t arr[10] = {244, 90, 254, 109, 33, 85, 69, 81, 126, 71};
      bubble_sort(arr);
      printf("%" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8,
             arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9]);
      return 0;
    }

    Рекурсивная сортировка пузырьком

    j123123, 29 Ноября 2018

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    <j123123__> Ну лол, я 29-летний бородатый чел из Харькова который живет с мамкой, пишет прошивки под микроконтроллеры STM32
    <j123123__> Я не мобилизован потому что например дважды в психбольнице лежал, лол
    <j123123__> Ну диагноз тама не говорят, вроде шизо-какое-то расстройство
    <j123123__> А вот представь вот в пледик укрыться с кунчиком и на сишечке прогать

    Узнаем j123123 с новой стороны.

    FrauSchweinhund, 29 Ноября 2018

    Комментарии (90)
  8. Куча / Говнокод #25128

    −6

    1. 1
    Давайте хвалить "NodeJS".

    AnalThermos, 28 Ноября 2018

    Комментарии (36)
  9. PHP / Говнокод #25127

    −1

    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
    $type = ($_POST['type'] == 'any') ? '' : str_replace(' ', '%20', str_replace('|','%7C', $_POST['type']));
    $make = ($_POST['make'] == 'any') ? '' : str_replace(' ', '%20', str_replace('|','%7C', $_POST['make']));
    $url = 'http://www.cycletrader.com/search-results?sort=featured%3Aasc&page='.$_POST['page'].'&type='.$type.'&make='.$make;
    $str = getCurlObject($url);
    $content = multiexplode('<div id="searchPage"', '<div class="footer', $str);
    $list = multiexplode('<div id="gridView"', '<div class="rezDetailsBtm', $content);
    $field = explode('<div data-url=', $list);
    for ($k = 1; $k < count($field); $k++) {
        $title_tmp = multiexplode('<a class="listing-info-title', '</a>', $field[$k]);
        $title = multiexplode('title="', '"', $title_tmp);
        $link = $lang['dir'].'detail?'.$_POST['form'].'&'.multiexplode('href="', '"', $title_tmp);
        $img_tmp = multiexplode('<img', '/>', $field[$k]);
        $img = multiexplode('data-src="', '"', $img_tmp);
        $price_tmp = multiexplode('class="price', '</span>', $field[$k]);
        if (strripos($price_tmp,'<span class="mileage">')) {
            $price = multiexplode('<span>', '<span', $price_tmp);
        } else {
            $price = multiexplode('<span>', '</span>', $price_tmp);
        }
        if (trim($price) == 'Call for price') $price = '';
        $result['item'][$k]['link'] = $link;
        $result['item'][$k]['title'] = $title;
        $result['item'][$k]['img'] = $img;
        $result['item'][$k]['price'] = $price;
        $result['item'][$k]['location'] = $location;
    }
    
    if (strripos($content,'<div class="pagination')) {
        $pagination = multiexplode('<div class="pagination', '</div>', $content);
        $pagination_tmp = multiexplode('<span class="hidden-xs','</div>', $pagination);
        $pagination_item = explode('<li', $pagination);
        if (count($pagination_item) > 6) {
            $result['pagination'] = true;
        }
    }

    Стандартный похокод пыходибила.

    хуита, 28 Ноября 2018

    Комментарии (10)
  10. PHP / Говнокод #25126

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    начало пхп прог уннамед
    
    подключить "пхп модуль 1.0"
    
    доллар целое а = 4
    доллар целое б = 2
    
    печать сум доллар а + доллар б 2
    
    помолиться perl
    
    конец пхп прог уннамед

    Ksyrx, 28 Ноября 2018

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