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

    Всего: 338

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

    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
    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
    #include <stddef.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void *govno[300] = {NULL};
    
    size_t govnopoindex = 0;
    
    void chisti_govno(void)
    {
      do
      {
        free(govno[--govnopoindex]);
      } while (govnopoindex != 0);
    }
    
    
    char *concat(char *a, char *b)
    {
      char *ptr = malloc(strlen(a)+strlen(b)+4);
      if (ptr == NULL)
      {
        fprintf(stderr, "Huli ty obosralsya, mudak blyad? Ves' heap zasral\n");
        chisti_govno(); // иди под струю мойся
        exit(-1);
      }
      sprintf(ptr, "(%s*%s)", a, b);
      govno[govnopoindex++] = ptr;
      return ptr;
    }
    
    
    char *pow_gen(size_t n, char *a, char *p)
    {
      if (n == 0)
      {
        return a;
      }
      if (n & 1)
      {
        return pow_gen(n >> 1, concat(a, p), concat(p, p));
      }
      else
      {
        return pow_gen(n >> 1, a, concat(p, p));
      }
    }
    
    char* pow_b2(size_t n) {
      return pow_gen(n, "1", "a");
    }
    
    void printfshit(const size_t pow)
    {
      printf("double pow_%zu(double a) {return %s;}\n\n", pow, pow_b2(pow));
    }
    
    
    int main(void)
    {
      printfshit(255);
      chisti_govno();
      return 0;
    }

    http://govnokod.ru/23246#comment388959 - считаю что это заслуживает отдельного говнокода

    j123123, 10 Августа 2017

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

    +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
    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 <stddef.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    char *concat(char *a, char *b)
    {
      char *ptr = malloc(strlen(a)+strlen(b)+6);
      if (ptr == NULL)
      {
        fprintf(stderr, "da ty ohuel!\n");
        exit(-1);
      }
      sprintf(ptr, "(%s)*(%s)", a, b);
      return ptr;
    }
    
    char *govno[255] = {"a"};
    
    void printfshit(const size_t pow, const char *mul_stuff)
    {
      printf("double pow_%zu(double a) {return %s;}\n\n", pow, mul_stuff);
    }
    
    void genshit(void)
    {
      //printfshit(0,"1");
      size_t end_ind = 1;
      size_t prev_stop = 0;
      size_t end_ind_tmp = 1;
      while (end_ind < 255)
      {
        for (size_t ind1 = 0; ind1 < end_ind_tmp; ind1++)
        {
          for (size_t ind2 = prev_stop; ind2 < end_ind_tmp; ind2++)
          {
            if ( 
                 ((ind1+1) + (ind2+1) < 256) &&
                 (govno[(ind1+1) + (ind2+1)-1] == NULL)
               )
            {
              govno[(ind1+1) + (ind2+1)-1] = concat(govno[ind1], govno[ind2]);
              end_ind++;
            }
          }
        }
        prev_stop = end_ind_tmp;
        end_ind_tmp = end_ind;
      }
      printfshit(1,govno[0]);
      for (size_t i = 1; i < 255; i++ )
      {
        printfshit(i+1,govno[i]);
        free(govno[i]);
      }
    }
    
    int main(void)
    {
      genshit();
      return 0;
    }

    Кодогенератор, написаный специально для Antervis
    http://govnokod.ru/23227#comment388895

    j123123, 08 Августа 2017

    Комментарии (38)
  4. PHP / Говнокод #23242

    +4

    1. 1
    http://blog.extremehacking.org/blog/2017/07/31/hungarian-hacker-arrested-pressing-f12/

    Вкратце: в Будапеште за миллион баксов набыдлокодили систему продажи билетов на общественный транспорт с кучей багов, как например поле с суммой было readonly, но если поправить html в браузере, то можно цену поменять, а на бэкенде никто не стал проверку суммы делать. Пацанчик этот баг нашел, написал в саппорт, а через 2 недели его мусора загребли.

    j123123, 05 Августа 2017

    Комментарии (15)
  5. Си / Говнокод #23227

    −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
    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
    BYTE1 *GetLanguageCodeString( BYTE1	upper, BYTE1 lower , BYTE1  *lang_idx )
    {
    	int index = 0;
    	
    	switch(upper){
    		case 'a' :
    			switch(lower){
    				case 'a' : index = 0; break;
    				case 'b' : index = 1; break;
    				case 'f' : index = 2; break;
    				case 'm': index = 3; break;
    				case 'r': index = 4; break;
    				case 's': index = 5; break;
    				case 'y': index = 6; break;
    				case 'z': index = 7; break;
    				default: break;
    			}
    			break;
    		case 'b' :
    			switch(lower){
    				case 'a' : index = 8; break;
    				case 'e' : index = 9; break;
    				case 'g' : index = 10; break;
    				case 'h': index = 11; break;
    				case 'i': index = 12; break;
    				case 'n': index = 13; break;
    				case 'o': index = 14; break;
    				case 's': index = 136; break;	/* Added in SEIN 2004.04.01 KTJ */
    				default: break;
    			}
    			break;
    		case 'c' :
    			switch(lower){
    				case 'a' : index = 15; break;
    				case 'o' : index = 16; break;
    				case 's' : index = 17; break;
    				case 'y': index = 18; break;
    				default: break;
    			}
    			break;
    		case 'd' :
    			switch(lower){
    				case 'a' : index = 19; break;
    				case 'e' : index = 20; break;
    				case 'z' : index = 21; break;
    				default: break;
    			}
    			break;			
    		case 'e' :
    			switch(lower){
    				case 'l' : index = 22; break;
    				case 'n' : index = 23; break;
    				case 'o' : index = 24; break;
    				case 's': index = 25; break;
    				case 't': index = 26; break;
    				case 'u': index = 27; break;
    				break;
    			}
    			break;
    		case 'f' :
    			switch(lower){
    				case 'a' : index = 28; break;
    				case 'i' : index = 29; break;
    				case 'j' : index = 30; break;
    				case 'o': index = 31; break;
    				case 'r': index = 32; break;
    				case 'y': index = 33; break;
    				default: break;
    			}
    			break;
    		case 'g' :
    			switch(lower){
    				case 'a' : index = 34; break;
    				case 'd' : index = 35; break;
    				case 'l' : index = 36; break;
    				case 'n': index = 37; break;
    				case 'u': index = 38; break;
    				default: break;
    			}
    			break;
    		case 'h' :
    			switch(lower){
    				case 'a' : index = 39; break;
    				case 'e' : index = 40; break;
    				case 'i' : index = 41; break;
    				case 'r': index = 42; break;
    				case 'u': index = 43; break;
    				case 'y': index = 44; break;				
    				default: break;
    			}
    			break;			
    		case 'i' :
    			switch(lower){
    				case 'a' : index = 45; break;
    				case 'd' : index = 46; break;
    				case 'k': index = 47; break;
    				case 'n': index = 48; break;				
    				case 's': index = 49; break;
    				case 't': index = 50; break;

    питушня на switch для распознавания какой-то фигни с буквами

    j123123, 30 Июля 2017

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

    +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
    #define SPLICE(a,b) a##b
    #define LL(a,b) SPLICE(a,b)
    #define M(name) LL(NS,name)
    
    
    #define NS ns1_
    
    void M(somefunction)(){
    }
    
    #undef NS
    
    
    #define NS ns2_
    
    void M(somefunction)(){
    }
    
    #undef NS
    
    
    #define NS ns3_
    
    void M(somefunction)(){
    }
    
    #undef NS

    неймспейсы в Си на препроцессоре

    j123123, 30 Июля 2017

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

    +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
    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
    var effects = {
    	linear: function(t) {
    		return t;
    	},
    
    	easeInQuad: function(t) {
    		return t * t;
    	},
    
    	easeOutQuad: function(t) {
    		return -t * (t - 2);
    	},
    
    	easeInOutQuad: function(t) {
    		if ((t /= 0.5) < 1) {
    			return 0.5 * t * t;
    		}
    		return -0.5 * ((--t) * (t - 2) - 1);
    	},
    
    	easeInCubic: function(t) {
    		return t * t * t;
    	},
    
    	easeOutCubic: function(t) {
    		return (t = t - 1) * t * t + 1;
    	},
    
    	easeInOutCubic: function(t) {
    		if ((t /= 0.5) < 1) {
    			return 0.5 * t * t * t;
    		}
    		return 0.5 * ((t -= 2) * t * t + 2);
    	},
    
    	easeInQuart: function(t) {
    		return t * t * t * t;
    	},
    
    	easeOutQuart: function(t) {
    		return -((t = t - 1) * t * t * t - 1);
    	},
    
    	easeInOutQuart: function(t) {
    		if ((t /= 0.5) < 1) {
    			return 0.5 * t * t * t * t;
    		}
    		return -0.5 * ((t -= 2) * t * t * t - 2);
    	},
    
    	easeInQuint: function(t) {
    		return t * t * t * t * t;
    	},
    
    	easeOutQuint: function(t) {
    		return (t = t - 1) * t * t * t * t + 1;
    	},
    
    	easeInOutQuint: function(t) {
    		if ((t /= 0.5) < 1) {
    			return 0.5 * t * t * t * t * t;
    		}
    		return 0.5 * ((t -= 2) * t * t * t * t + 2);
    	},
    
    	easeInSine: function(t) {
    		return -Math.cos(t * (Math.PI / 2)) + 1;
    	},
    
    	easeOutSine: function(t) {
    		return Math.sin(t * (Math.PI / 2));
    	},
    
    	easeInOutSine: function(t) {
    		return -0.5 * (Math.cos(Math.PI * t) - 1);
    	},
    
    	easeInExpo: function(t) {
    		return (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));
    	},
    
    	easeOutExpo: function(t) {
    		return (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;
    	},
    
    	easeInOutExpo: function(t) {
    		if (t === 0) {
    			return 0;
    		}
    		if (t === 1) {
    			return 1;
    		}
    		if ((t /= 0.5) < 1) {
    			return 0.5 * Math.pow(2, 10 * (t - 1));
    		}
    		return 0.5 * (-Math.pow(2, -10 * --t) + 2);
    },
    ...

    /**
    * Easing functions adapted from Robert Penner's easing equations.
    * @namespace Chart.helpers.easingEffects
    * @see http://www.robertpenner.com/easing/
    */

    В общем это такая специальная параша, чтобы делать гладкую анимацию какой-то х****. Вопрос - на***а вообще нужна эта гладкая анимация, и почему эту х***ю не реализуют как набор неких встроенных в браузер функций чтобы их из этого жабаскрипта вызывать, чтобы эта хрень не тормозила? Меня б**** з****** эти ё***** сайты, обвешанные какой-то б******* х***** на жабаскрипте которая прыгает по всему экрану, кому вообще пришла в голову идея сделать подобную хрень? Поубивал бы этих е***** фронтендщиков с их х****й

    http://easings.net/ru вот еще про эту хуиту.

    j123123, 26 Июля 2017

    Комментарии (13)
  8. Си / Говнокод #23213

    +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
    #include <stdio.h>
    #include <stdlib.h>
    #include <inttypes.h>
    #include <string.h>
    #include <stddef.h>
    
    #define INITARR(arr,...)                                                                                      \
    do                                                                                                            \
    {                                                                                                             \
      typedef struct {typeof(*arr) __tmp_arr[sizeof( (typeof(*arr)[]){__VA_ARGS__} ) / sizeof(*arr)];} __tmp_str; \
      *((__tmp_str *)arr) = (__tmp_str){{__VA_ARGS__}};                                                           \
    } while(0)
    
    
    
    int main(void)
    {
      uint8_t *test;
      test = malloc (sizeof (uint8_t[10]));
      INITARR(test,1,2,3,4,5,6,7,8,9,10);  
      for (size_t i = 0; i < 10; i++)
      {
        printf("%" PRIu8 ", ", test[i]);
      }
      return 0;
    }

    Для удобной инициализации массивов в хипе

    j123123, 23 Июля 2017

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Сишечные строки для printf-подобной параши из прошивки ESP8266 (для веб-сервера):
    ....
    method="POST">Login: <INPUT size=10 NAME='login' value="%s"> Password: <INPUT size=10 NAME='pass' value="%s"></td></tr><br><INPUT TYPE='checkbox' NAME='fls'%s> Full Security.
    <input type="hidden" name="st" value=5><br>%s
    <hr><b>Config module:</b><br><div class="spH2"></div><form method="GET">Host name: <INPUT size=12 NAME='hn' value="%s">
    <input type="hidden" name="st" value=7><br>%s
    <hr><b>WiFi options:</b><br><div class="spH2"></div><form method="GET"><input type="radio" name="sm" value="0" %s>Station mode.<input type="radio" name="sm" value="7" %s>AP mode.<br>AP name: <input size=20 name="stname" value="%s"> <br>AP pass: <input size=20 type='password' name="stpass" value="%s"><br>
    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>%s</title><meta http-equiv="REFRESH" content="60"><meta name="viewport" content="width=480" /><meta name="mobile-web-app-capable" content="yes" /><link rel="stylesheet" href="main.css"></head><body><br><div style="text-align: center"><div style="display: inline-block"><div class="name fll">%s<div class="www">MaksMS <a href="http://wifi-iot.com" target="_blank">wifi-iot.com</a><br>

    ... и никакого пхп
    http://wifi-iot.com/ вот тут можно генерировать такие говнопрошивки

    j123123, 23 Июля 2017

    Комментарии (4)
  10. Си / Говнокод #23188

    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
    char*a??(??)=??<
    "??=include",
    "??=include",
    "??=define o stdout",
    "??=define b break;case",
    "??=define s(p)fputs(p,o);",
    "??=define c(p)fputc(p,o);",
    "void t(p,f)char*p;????/")b'??(':s(??/"???/??/?(??/")b'??)'",
    ":s(??/"???/??/?)??/")b'??/??/??/??/':f&&s(??/"???/??/?/??/")",
    "s(??/"???/??/?/??/")b'??/??/n':if(f)s(??/"???/??/?/n??/")",
    "else case'??/"':if(f)s(??/"???/??/?/??/??/??/"??/")",
    "else default:c(*p)??>??>??>main()??;??/",0);for(p=a",
    ";*p;p++)t(*p,0);exit(!ferror(o)&&",
    "!fclose(o)?EXIT_SUCCESS",
    ":EXIT_FAILURE);",
    "/*NOTREACHED*/",
    "??>",
    0??>;
    ??=include
    ??=include
    ??=define o stdout
    ??=define b break;case
    ??=define s(p)fputs(p,o);
    ??=define c(p)fputc(p,o);
    void t(p,f)char*p;??':s("???/?>")b'??(':s("???/?(")b'??)'
    :s("???/?)")b'??/??/':f&&s("???/?/")
    s("???/?/")b'??/n':if(f)s("???/?/n")
    else case'"':if(f)s("???/?/??/"")
    else default:c(*p)??>??>??>main()??;",0);for(p=a
    ;*p;p++)t(*p,0);exit(!ferror(o)&&
    !fclose(o)?EXIT_SUCCESS
    :EXIT_FAILURE);
    /*NOTREACHED*/
    ??>

    Очередной куайн. Херня на триграфах. Взято отсюда

    http://www.nyx.net/~gthompso/self_c.txt


    Там разумеется есть намного более ебанутые варианты

    j123123, 16 Июля 2017

    Комментарии (0)
  11. Си / Говнокод #23187

    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
    #include <stdio.h>
    char s[];
    int main ()
    {
        printf ("%s", s);
        for (char *s_p = s; *s_p; s_p++ )
        {
            printf ("%i,", *s_p);
        }
        printf ("};\n");
        return 0;
    }
    
    char s[] = R"(#include <stdio.h>
    char s[];
    int main ()
    {
        printf ("%s", s);
        for (char *s_p = s; *s_p; s_p++ )
        {
            printf ("%i,", *s_p);
        }
        printf ("};\n");
        return 0;
    }
    
    char s[] = {)";

    https://wandbox.org/permlink/uOQ7Uk6uFt4WVS2Y
    код на особом диалекте си (-std=gnu11) который генерирует код на более-менее обычном си (-std=c99) и этот сгенерированный код умеет будет генерировать сам себя
    Основано на сраной параше под названием raw string literals http://govnokod.ru/23178#comment388392 которая оказывается что поддерживается в особом диалекте си (-std=gnu11) https://stackoverflow.com/a/24850262

    j123123, 16 Июля 2017

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