1. C++ / Говнокод #17115

    +53

    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
    int lenNameTrack = byteArrAudioFile->size() - 128 + 3,
          lenAutorTrack =             byteArrAudioFile->size() - 128 + 3 + 30,
          lenAlbumTrack =            byteArrAudioFile->size() - 128 + 3 + 30 + 30,
          lenYearTrack =               byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30,
          lenCommentTrack =      byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4,
          lenFlagNumberTrack =   byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28,
          lenNumberTrack =         byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1,
          lenIdGenreTrack =         byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1 + 1;
    
                      for(int i = byteArrAudioFile->size() - 128+3; i <= byteArrAudioFile->size(); i++)
                      {
                          if(i == lenAutorTrack) //Названние трэка
                              for(int j = lenNameTrack, k = 0;   j < lenAutorTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  if( ((int) byteArrAudioFile->at(j)) < 0 )
                                      ID3v1.title.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
                                  else ID3v1.title.append(  byteArrAudioFile->at(j) );
                              }
                          if(i == lenAlbumTrack) //Исполнитель
                              for(int j = lenAutorTrack; j < lenAlbumTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  if( ((int) byteArrAudioFile->at(j)) < 0 )
                                      ID3v1.autor.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
                                  else ID3v1.autor.append(  byteArrAudioFile->at(j) );
                              }
                          if(i == lenYearTrack) //Альбом
                              for(int j = lenAlbumTrack; j < lenYearTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  if( ((int) byteArrAudioFile->at(j)) < 0 )
                                      ID3v1.album.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
                                  else ID3v1.album.append(  byteArrAudioFile->at(j) );
                              }
                          if(i == lenCommentTrack) //Год
                              for(int j = lenYearTrack; j < lenCommentTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  ID3v1.year.append(byteArrAudioFile->at(j));
                              }
                          if(i == lenFlagNumberTrack) //Комментарий
                              for(int j = lenCommentTrack; j < lenFlagNumberTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  if( ((int) byteArrAudioFile->at(j)) < 0 )
                                      ID3v1.comment.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
                                  else ID3v1.comment.append(  byteArrAudioFile->at(j) );
                              }
                          if(i == lenNumberTrack) //Если есть номер трэка то установлен нулевой байт
                              for(int j = lenFlagNumberTrack; j < lenNumberTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  ID3v1.flagNumberTrack.append(byteArrAudioFile->at(j));
                              }
                          if(i == lenIdGenreTrack) //Номер трэка
                              for(int j = lenNumberTrack; j < lenIdGenreTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  ID3v1.numberTrack.append(byteArrAudioFile->at(j));
                              }
                          if(i == lenIdGenreTrack + 1) //Индетификатор жанра
                          {
                              for(int j = lenIdGenreTrack; j <= lenIdGenreTrack; ++j)
                              {
                                  if( (int) byteArrAudioFile->at(j) == 0)
                                      break;
                                  ID3v1.genre.append( QString::number( (int) byteArrAudioFile->at(j)));
                              }
                              ID3v1.genre.append(genreList(ID3v1.genre.toInt()));
                          }
                      }

    Парсинг ID3v1 тегов

    ConstantineVL, 16 Ноября 2014

    Комментарии (0)
  2. Assembler / Говнокод #17114

    +147

    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
    strnstr proc
    	jrcxz @@3
    	push rdi
    	push rsi
    	mov rdi,rdx
    	mov al,[r9]
    	inc r9
    	dec r8
    @@1:
    	repne scasb
    	jne @@2
    	cmp rcx,r8
    	jb @@2
    	mov rsi,r9
    	mov rdx,rdi
    	mov r10,rcx
    	mov rcx,r8
    	repe cmpsb
    	je @@2
    	mov rcx,r10
    	mov rdi,rdx
    	jmp @@1
    @@2:
    	sete al
    	movzx rax,al
    	neg rax
    	and rax,rdi
    	pop rsi
    	pop rdi
    	ret
    @@3:
    	xor rax,rax
    	ret
    strnstr endp

    PSTR __fastcall strnstr(SIZE_T n1, const void* str1, SIZE_T n2, const void* str2);

    zhukas, 15 Ноября 2014

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

    +53

    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
    void zxc()
    {
    	DWORD i = 256, j, k, l, nTry, N = 0;
    	ULONG_PTR a = 0, b = 0, aa = 0, bb = 0;
    	_PTE* pte = PXE(256);
    	do 
    	{
    		if (pte->Valid)
    		{
    			pte->Owner = 1;
    			__try
    			{
    				j = 0, nTry = 0;
    
    				_PTE* pte = PPE(i, 0);
    
    				do 
    				{
    					if (pte->Valid)
    					{
    						pte->Owner = 1;
    
    						__try
    						{
    							k = 0, nTry = 0;
    
    							_PTE* pte = PDE(i, j, 0);
    
    							do 
    							{
    								if (pte->Valid)
    								{
    									pte->Owner = 1;
    
    									if (pte->LargePage)
    									{
    										b = LA(i, j, k, 0);
    
    										if (!a)
    										{
    											a = b;
    										}
    										continue;
    									}
    									__try
    									{
    										l = 0, nTry = 0;
    
    										_PTE* pte = PTE(i, j, k, 0);
    
    										do 
    										{
    											b = LA(i, j, k, l);
    
    											if (pte->Valid)
    											{
    												pte->Owner = 1;
    
    												if (!a)
    												{
    													a = b;
    												}
    											}
    											else
    											{
    												if (!pte->Prototype && pte->Protection && pte->Protection < MM_NOCACHE)
    												{
    												}
    												else if (a)
    												{
    													aa = a, bb = b, a = 0, N++;
    												}
    											}
    										} while (nTry = 0, ++pte, ++l < PTE_PER_PAGE);
    									}
    									__except(OnPteException(pte, nTry)){}
    								}
    								else if (a)
    								{
    									aa = a, bb = LA(i, j, k, 0), a = 0, N++;
    								}
    							} while (nTry = 0, ++pte, ++k < PDE_PER_PAGE);
    						}
    						__except(OnPteException(pte, nTry)){}
    					}
    					else if (a)
    					{
    						aa = a, bb = LA(i, j, 0, 0), a = 0, N++;
    					}
    				} while (nTry = 0, ++pte, ++j < PPE_PER_PAGE);
    			}
    			__except(OnPteException(pte, nTry)){}
    		}
    		else if (a)
    		{
    			aa = a, bb = LA(i, 0, 0, 0), a = 0, N++;
    		}
    	} while (++pte, ++i < PXE_PER_PAGE);
    }

    #define LA(i, j, k, l) (0xFFFF000000000000 + \
    ((ULONG_PTR)(i) << PXI_SHIFT) + \
    ((ULONG_PTR)(j) << PPI_SHIFT) + \
    ((ULONG_PTR)(k) << PDI_SHIFT) + \
    ((ULONG_PTR)(l) << PTI_SHIFT))

    zhukas, 15 Ноября 2014

    Комментарии (0)
  4. C++ / Говнокод #17112

    +51

    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
    DWORD getDirectoryIndex()
    	{
    		STATIC_OBJECT_ATTRIBUTES(oa, "\\");
    		HANDLE hFile;
    		DWORD ObjectTypeIndex = 0;
    
    		if (0 <= ZwOpenDirectoryObject(&hFile, DIRECTORY_QUERY, &oa))
    		{
    			NTSTATUS status;
    			PVOID buf = 0, stack = alloca(guz);
    			DWORD cb = 0, rcb = 0x10000;
    
    			do 
    			{
    				if (cb < rcb) cb = RtlPointerToOffset(buf = alloca(rcb - cb), stack);
    
    				if (0 <= (status = ZwQuerySystemInformation(SystemExtendedHanfleInformation, buf, cb, &rcb)))
    				{
    					PSYSTEM_HANDLE_INFORMATION_EX pshti = (PSYSTEM_HANDLE_INFORMATION_EX)buf;
    
    					if (ULONG NumberOfHandles = (ULONG)pshti->NumberOfHandles)
    					{
    						PSYSTEM_HANDLE_TABLE_ENTRY_INFO_EX Handles = pshti->Handles;
    
    						ULONG_PTR UniqueProcessId = GetCurrentProcessId();
    						do 
    						{
    							if (Handles->UniqueProcessId == UniqueProcessId && Handles->HandleValue == (ULONG_PTR)hFile)
    							{
    								ObjectTypeIndex = Handles->ObjectTypeIndex;
    								break;
    							}
    
    						} while (Handles++, --NumberOfHandles);
    					}
    				}
    			} while (STATUS_INFO_LENGTH_MISMATCH == status);
    
    			ZwClose(hFile);
    		}
    
    		return ObjectTypeIndex;
    	}
    
    	ZOBJECT_ALL_TYPES_INFORMATION()
    	{
    		_TypeInformation = 0, _NumberOfTypes = 0;
    
    		if (DWORD DirectoryTypeIndex = getDirectoryIndex())
    		{
    			PVOID stack = alloca(guz);
    			OBJECT_ALL_TYPES_INFORMATION* poati = 0;
    			DWORD cb = 0, rcb = 0x2000;
    			NTSTATUS status;
    			do 
    			{
    				if (cb < rcb)
    				{
    					cb = RtlPointerToOffset(poati = (OBJECT_ALL_TYPES_INFORMATION*)alloca(rcb - cb), stack);
    				}
    
    				if (0 <= (status = ZwQueryObject(0, ObjectAllTypeInformation, poati, cb, &rcb)))
    				{
    					if (DWORD NumberOfTypes = poati->NumberOfTypes)
    					{
    						if (OBJECT_TYPE_INFORMATION* TypeInformation = (OBJECT_TYPE_INFORMATION*)LocalAlloc(0, rcb))
    						{
    							_NumberOfTypes = NumberOfTypes;
    							_TypeInformation = TypeInformation;
    
    							STATIC_UNICODE_STRING_(Directory);
    							OBJECT_TYPE_INFORMATION* pti = poati->TypeInformation;
    							PWSTR buf = (PWSTR)(TypeInformation + NumberOfTypes);
    							int Index = 0;
    							do 
    							{
    								if (RtlEqualUnicodeString(&Directory, &pti->TypeName, TRUE))
    								{
    									_firstObjectTypeIndex = DirectoryTypeIndex - Index;
    								}
    
    								DWORD Length = pti->TypeName.Length, MaximumLength = pti->TypeName.MaximumLength;
    								memcpy(buf, pti->TypeName.Buffer, Length);
    
    								*TypeInformation = *pti;
    								TypeInformation++->TypeName.Buffer = buf;
    
    								buf = (PWSTR)RtlOffsetToPointer(buf, Length);
    
    								pti = (OBJECT_TYPE_INFORMATION*)
    									(((ULONG_PTR)pti + sizeof(OBJECT_TYPE_INFORMATION) + MaximumLength + sizeof(PVOID)-1) & ~(sizeof(PVOID)-1));
    
    							} while (Index++, --NumberOfTypes);
    						}
    					}
    				}
    			} while (status == STATUS_INFO_LENGTH_MISMATCH);
    		}
    	}

    ObjectTypeIndex

    zhukas, 15 Ноября 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    var list = [ ];
    
    // hidden elements
    list[ NaN ] = 'this-element-always-is-last'; // max index
    list[ Number.MAX_VALUE ] = 'this-is-smallest';
    list[ Infinity ] = 'this-just-infinity';
    
    // list.length == 0; // true

    Делать нечего в селе, мы сидим навеселе. Всех с пятницей!

    bot, 14 Ноября 2014

    Комментарии (28)
  6. Perl / Говнокод #17110

    −288

    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
    sub serialize {
        my ($obj) = @_;
        my $result;
    
        my $ref = ref $obj;
        if ($ref eq 'HASH') {
            $result = sprintf '{ %s }', join(', ', map { qq/"$_": / . serialize($obj->{$_}) } keys %$obj);
        } elsif ($obj eq 'ARRAY') {
            $result = sprintf '[ %s ]', join(', ', map { serialize($_) } @$obj);
        } elsif (! $ref) {
            if (!defined $obj) {
                $result = 'null';
            } elsif ($obj =~ /^ -? (?:0|[1-9]\d*) (?:\.\d+)? (?:[eE][+-]?\d+)? $/x) {
                $result = $obj;
            } else {
                $obj =~ s/(["\\])/\\$1/g;
                $obj =~ s/\r/\\r/g;
                $obj =~ s/\n/\\n/g;
                $obj =~ s/\t/\\t/g;
                $result = qq/"$obj"/;
            }
        }
    
        return $result;
    }

    В продолжение #17106. Самопальная Самобытная сериализация в JSON.

    Elvenfighter, 14 Ноября 2014

    Комментарии (42)
  7. PHP / Говнокод #17109

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    bool 
     CIBlockElement::Update(...);
    
    // ......
    
    $el = new CIBlockElement;
    
    // ......
    
    $res = $el->Update($PRODUCT_ID, $arLoadProductArray);

    Нынче статический метод вызывается через объект.

    ( Пример из официальной документации Битрикс https://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockelement/update.php )

    h0ckeypl4yer, 14 Ноября 2014

    Комментарии (5)
  8. Python / Говнокод #17108

    −106

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    >>> quit()
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    TypeError: 'str' object is not callable
    >>> quit  
    'Use Ctrl-D (i.e. EOF) to exit.'
    >>> type(quit)
    <type 'str'>
    >>> type(exit)
    <type 'str'>

    Первый раз запустил питон 2.4...

    bormand, 14 Ноября 2014

    Комментарии (18)
  9. Java / Говнокод #17107

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public static void main(String[] args) throws Exception {
        ...
        try {
            Signature.getInstance("NONEwithRSA", "SUN");
            throw new Exception("call succeeded");
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        System.out.println("OK");
    }

    http://jdk.openjdk-rt.googlecode.com/hg/test/java/security/Signature/NONEwithRSA.java

    Naturlih, 13 Ноября 2014

    Комментарии (11)
  10. C# / Говнокод #17105

    +136

    1. 1
    2. 2
    3. 3
    public override string GetMobileBody() {
    	return System.Text.Encoding.UTF8.GetString(new Terrasoft.Common.CompressionUtilities().UnZip(new byte[] { 31,139,8, /*... over 9000 bytes ...*/,36,59,0,0 }));
    }

    По долгу службы пришлось столкнуться с одной небезызвестной CRM отечественного производства.
    Безумно интересен сакральный смысл такого кода.

    lorond, 13 Ноября 2014

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