1. Си / Говнокод #22335

    0

    1. 1
    2. 2
    if (width&3)
    		MS_Quit ("VL_MungePic: Not divisable by 4!");

    хехехе

    barop, 16 Февраля 2017

    Комментарии (20)
  2. Си / Говнокод #22313

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    typedef char бл;
    typedef char вы;
    typedef char на;
    бл*ть = "программирование";
    вы*бать = "снизу вверх";
    на*уя = "наискосок";
    бл**ь = &ть;
    вы**ать = &бать;
    на**я = &уя;

    Любителям писать звёздочки в середине слов посвящается.

    inkanus-gray, 11 Февраля 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    void skipWhite(char** look, char* endOfString){
        while ((isspace(**look) || **look==',') && *look<endOfString){
            (*look)++;
        }
    }

    Человек скинул проект на C, я его почитал, и думаю, какого буя собственно люди пишут на C?
    Почему бл*ть так много проблем с компиляцией C/C++, что бы вывести hellodaun в консоль, нужно вы*бать себя дилдаком, полазить по стаку, и прочим сайтам.
    КАК ЛЮДИ ПИШУТ НА ЭТОМ ЯЗЫКЕ?
    КААК?
    Эти сраные заголовки файлов, ну вот на*уя они нужны?
    Щас на меня обрушиться коричневая лавина, жду ваших комментов.

    Daun, 10 Февраля 2017

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

    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
    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
    // Стандартное быдлорешение быдлофорсом
    #include <stdio.h>
    #include <stdlib.h>
    #include <crypt.h>
    #include <string.h>
    
    void decrypt1(char hash[], char salt[]) {
        char * crypted, pass[2], a;
        pass[1] = '\0';
        
        for (a = 'a'; a < 'z' + 1; a++) {
            pass[0] = a;
            crypted = crypt(pass, salt);
            if(strcmp(crypted, hash) == 0) {
                printf("Password: %s\n", pass);
                exit(0);
            }
            
            pass[0] -= 0x20;
            crypted = crypt(pass, salt);
            if(strcmp(crypted, hash) == 0) {
                printf("Password: %s\n", pass);
                exit(0);
            }
        }
    }
    
    void decrypt2(char hash[], char salt[]) {
        char * crypted, pass[3], a ,b;
        pass[2] = '\0';
        
        for (a = 'a'; a < 'z' + 1; a++) {
            pass[0] = a;
            for (b = 'a'; b < 'z' + 1; b++) {
                pass[1] = b;
                crypted = crypt(pass, salt);
                if(strcmp(crypted, hash) == 0) {
                    printf("Password: %s\n", pass);
                    exit(0);
                }
                
                pass[1] -= 0x20;
                crypted = crypt(pass, salt);
                if(strcmp(crypted, hash) == 0) {
                    printf("Password: %s\n", pass);
                    exit(0);
                }
            }
            
            pass[0] -= 0x20;
            for (b = 'a'; b < 'z' + 1; b++) {
                pass[1] = b;
                crypted = crypt(pass, salt);
                if(strcmp(crypted, hash) == 0) {
                    printf("Password: %s\n", pass);
                    exit(0);
                }
                
                pass[1] -= 0x20;
                crypted = crypt(pass, salt);
                if(strcmp(crypted, hash) == 0) {
                    printf("Password: %s\n", pass);
                    exit(0);
                }
            }
        }
    }
    
    /*
        Соответствующая поставленной задаче куча дерьма.
        Растёт и ширится как будто в неё упал кусок дрожжей.
    */
    
    int main(int argc, char * args[]) {
        if (argc != 2) exit(1);
        
        decrypt1(args[1], "50");
        decrypt2(args[1], "50");
        decrypt3(args[1], "50");
        decrypt4(args[1], "50");
        printf("Nothing found, sorry.\n");
        return 0;
    }

    Что нужно:
    > C’s DES-based decrypt function

    От куда взято задание:
    > http://docs.cs50.net/problems/crack/crack.html

    Разница с заданием в том, что готовая программа должна ломать пароли до 8 знаков (включительно) по известной соли. Однако обычный брут (как в шапке), мягко говоря, нахуй не нужен чуть более, чем полностью, ибо скорость работы совершенно убогая.

    Соответственно приму любое предложение по улучшению. И да, я слышал про радужные таблицы, может кто-то дать ссыль на статью описание для нулевого иблана в криптографии? Увеличит ли применение этих таблиц скорость работы этого, с позволения сказать, кода? И ещё вопрос: является ли DES-based crypt обратимым?

    Darkling, 08 Февраля 2017

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

    +2

    1. 1
    Посоны, как заставить Watcom нормально адресовать? Он тупо пихает адреса, относительно нуля, а надо, что относительно сегментных регистров

    dm_fomenok, 07 Февраля 2017

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

    −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
    const char * c_version()
    {
      const char * hui = "hui";
      const char * pizda = "pizda";
      unsigned long huilen = strlen ( hui );
      unsigned long pizdalen = strlen ( pizda );
      char * sobaka = ( char* ) ::malloc ( (huilen + pizdalen) + 2 );
      strcat ( sobaka,hui );
      strcat ( ( sobaka + huilen ),"&" );
      strcat ( ( sobaka + huilen + 1 ),pizda );
      sobaka[huilen + pizdalen + 1] = '\0';
      return sobaka;
    }

    Склеиваем строки

    Koshak90, 01 Февраля 2017

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

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    #define EPS 1e-10 
    float sqrt(float x){ 
    float S=x, a=1,b=x; 
    while(fabs(a-b)>EPS){ a=(a+b)/2; b = S / a;} 
    return (a+b)/2; 
    }

    dm_fomenok, 31 Января 2017

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    void jsonUser(User *user) {
        printf("{id: %d, login: \"%s\", password: \"%s\"}\n", 
                user->id, user->login, user->password);
    }

    dm_fomenok, 31 Января 2017

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

    +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
    static void SHA256_Transform(SHA256_CTX* context, const sha2_word32* data) {
    	sha2_word32	a, b, c, d, e, f, g, h, s0, s1;
    	sha2_word32	T1, T2, *W256;
    	int		j;
    
    	W256 = (sha2_word32*)context->buffer;
    
    	/* Initialize registers with the prev. intermediate value */
    	// а с какого такого хуя вы решили, что компилятор непременно сунет это в регистры? Массивы для кого сделали?
    	// хотя это еще можно понять, есть вероятность, что компилятор так лучше соптимизирует (но далеко не факт)
    	a = context->state[0];
    	b = context->state[1];
    	c = context->state[2];
    	d = context->state[3];
    	e = context->state[4];
    	f = context->state[5];
    	g = context->state[6];
    	h = context->state[7];
    
    	j = 0;
    	do {
    #if BYTE_ORDER == LITTLE_ENDIAN
    		/* Copy data while converting to host byte order */
    		REVERSE32(*data++,W256[j]);
    		/* Apply the SHA-256 compression function to update a..h */
    		T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + W256[j];
    #else /* BYTE_ORDER == LITTLE_ENDIAN */
    		/* Apply the SHA-256 compression function to update a..h with copy */
    		T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + (W256[j] = *data++);
    #endif /* BYTE_ORDER == LITTLE_ENDIAN */
    		T2 = Sigma0_256(a) + Maj(a, b, c);
    		h = g;
    		g = f;
    		f = e;
    		e = d + T1;
    		d = c;
    		c = b;
    		b = a;
    		a = T1 + T2;
    
    		j++;
    	} while (j < 16);
    
    	do {
    		/* Part of the message block expansion: */
    		s0 = W256[(j+1)&0x0f];
    		s0 = sigma0_256(s0);
    		s1 = W256[(j+14)&0x0f];	
    		s1 = sigma1_256(s1);
    
    		/* Apply the SHA-256 compression function to update a..h */
    		T1 = h + Sigma1_256(e) + Ch(e, f, g) + K256[j] + 
    		     (W256[j&0x0f] += s1 + W256[(j+9)&0x0f] + s0);
    		T2 = Sigma0_256(a) + Maj(a, b, c);
    		h = g;
    		g = f;
    		f = e;
    		e = d + T1;
    		d = c;
    		c = b;
    		b = a;
    		a = T1 + T2;
    
    		j++;
    	} while (j < 64);
    
    	/* Compute the current intermediate hash value */
    	context->state[0] += a;
    	context->state[1] += b;
    	context->state[2] += c;
    	context->state[3] += d;
    	context->state[4] += e;
    	context->state[5] += f;
    	context->state[6] += g;
    	context->state[7] += h;
    
    	/* Clean up */
    	a = b = c = d = e = f = g = h = T1 = T2 = 0; //  А вот это уже полная хуйня
    	//вы правда думаете, что компилятор не выкинет это нахуй?
    }

    SHA2 питушня, скачать можно например тут http://sources.freebsd.org/RELENG_8/src/sys/crypto/sha2/sha2.c

    В общем если вам важно, чтобы некая хуйня была непременно в регистрах, и чтобы потом эта хуйня непременно была почищена, единственный надежный способ - херачить код на ассемблере (или вообще в машинных кодах)

    j123123, 30 Января 2017

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

    −4

    1. 1
    O say, can you see, by the dawn’s early light,

    guestinho, 20 Января 2017

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