Сборный / Говнокод #26904 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
lea esi, cpu_name
    mov eax, 0
    mov mreg, eax

    ;[04/12] G
    mov eax, 0ffh
    and eax, ebx
    mov mreg, eax
    mov al, byte ptr [mreg]
    mov [esi], al
    inc esi

    ;[03/12] e
    mov eax, 0ff00h
    and eax, ebx
    mov mreg, eax
    mov al, byte ptr [mreg + 1]
    mov [esi], al
    inc esi

    ;[02/12] n
    mov eax, 0ff0000h
    and eax, ebx
    mov mreg, eax
    mov al, byte ptr [mreg + 2]
    mov [esi], al
    inc esi

    ;[01/12] u
    mov eax, 0ff000000h
    and eax, ebx
    mov mreg, eax
    mov al, byte ptr [mreg + 3]
    mov [esi], al
    inc esi

    ;[08/12] i
    mov eax, 0ffh
    and eax, edx
    mov mreg, eax
    mov al, byte ptr [mreg]
    mov [esi], al
    inc esi

    ;[07/12] n
    mov eax, 0ff00h
    and eax, edx
    mov mreg, eax
    mov al, byte ptr [mreg + 1]
    mov [esi], al
    inc esi

    ;[06/12] e
    mov eax, 0ff0000h
    and eax, edx
    mov mreg, eax
    mov al, byte ptr [mreg + 2]
    mov [esi], al
    inc esi

    ;[05/12] I
    mov eax, 0ff000000h
    and eax, edx
    mov mreg, eax
    mov al, byte ptr [mreg + 3]
    mov [esi], al
    inc esi

    ;[12/12] n
    mov eax, 0ffh
    and eax, ecx
    mov mreg, eax
    mov al, byte ptr [mreg]
    mov [esi], al
    inc esi

    ;[11/12] t
    mov eax, 0ff00h
    and eax, ecx
    mov mreg, eax
    mov al, byte ptr [mreg + 1]
    mov [esi], al
    inc esi

    ;[10/12] e
    mov eax, 0ff0000h
    and eax, ecx
    mov mreg, eax
    mov al, byte ptr [mreg + 2]
    mov [esi], al
    inc esi

    ;[09/12] l
    mov eax, 0ff000000h
    and eax, ecx
    mov mreg, eax
    mov al, byte ptr [mreg + 3]
    mov [esi], al
    inc esi

oaoaoammm oaoaoammm, (Updated )

Комментарии (224, +224)

Сборный / Говнокод #26232 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ

СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ
СТРАЙКЕР СОСЁТ МОЙ ХУЙ

xyu_100cm xyu_100cm, (Updated )

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

Сборный / Говнокод #25867 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
#include <stdbool.h>

bool impl(bool a, bool b) // ->
{
    return (!a || b);
}

bool always_true(bool a, bool b)
{
    return (impl(a,b) == impl(b,a)) == (a == b); // ( (a -> b) = (b -> a) ) = (a = b) tautology
}

/*
GCC не хочет мне тавтологию оптимизировать!
https://godbolt.org/z/kgFMpR
always_true:
        movl    %esi, %eax
        xorl    %edi, %eax
        cmpb    %dil, %sil
        sete    %dl
        xorl    %edx, %eax
        ret
Но Clang может
https://godbolt.org/z/YcOat-
always_true:                            # @always_true
        movb    $1, %al
        retq
*/

ГОВНО!

j123123 j123123, (Updated )

Комментарии (46, +46)

Сборный / Говнокод #25491 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
Решил я значит от нехуй делать нарисовать свой пиксельный шрифт
(кому интересно - вот промежуточный результат https://i.imgur.com/2vIJoio.png)
и решил посмотреть, какие там вообще бывают под GNU/Linux редакторы для
шрифтов, и какие вообще шрифты бывают
Так вот, нашел я вот такую хрень http://mensis.sourceforge.net/overview.html
Вижу, что там какой-то ассемблер http://mensis.sourceforge.net/ttfcv-all.png или
байткод ебаный. Погуглил по этим говноинструкциям со скриншота:
Оказывается в TTF шрифтах есть встроенный тьюринг-полный ЯП, используемый
для всяких там подсказок, типа "куда дорисовать пиксель вот при таком-то условии"
и прочая подобная херота
А еще в шиндошс (до Windows 10) этот шрифтоговнобайткод интерпретировался в
пространстве ядра (ну тупыыые..) и разумеется таким образом удалось винду хакнуть
https://security.stackexchange.com/a/91395 (разве могло быть иначе?)

про шрифтоговнобайткод можно почитать например тут
https://docs.microsoft.com/en-us/typography/opentype/spec/tt_instructions
https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#instructions

На кой вообще хер делать тьюринг-полный язык для отрисовки глифов? Ну и раз вы его уже
делаете, то заебошьте там что-нибудь на основе LLVM байткода, чтоб JIT, или вообще все глифы
сразу компилировать в натив, или даже (чего мелочиться) под GPU. Типа мы хотим
нарисовать какую-то букву с размером 10 - вызываем функцию
drawA(10, bufptr, x, y); - рисуется десятого размера буква в буфер. И никаких непонятных
говнобайткодов. Четко и дерзко!

j123123 j123123, (Updated )

Комментарии (30, +30)

Сборный / Говнокод #25429 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
format pe gui 5.0

include 'win32ax.inc'

  _title db 'stackvar',0
  _class db '#32770',0

entry $
  sub esp,32
  mov esi,esp
  xor edi,edi
  mov ecx,$80000000
  mov eax,WS_VISIBLE+WS_OVERLAPPEDWINDOW
  invoke CreateWindowEx,edi,_class,edi,eax,ecx,ecx,ecx,ecx,edi,edi,edi,edi
  mov ebx,eax
  invoke SetWindowLong,ebx,GWL_WNDPROC,wnd_proc
  mov [esi],eax
  invoke SetWindowLong,ebx,GWL_USERDATA,esi
  invoke SendMessage,ebx,WM_INITDIALOG,edi,edi
  sub esp,32
  mov ebx,esp

msg_loop:
  invoke GetMessage,ebx,edi,edi,edi
  cmp eax,1
  jb app_exit
  jne msg_loop
  invoke DispatchMessage,ebx
  jmp msg_loop

wnd_proc:
  mov eax,[esp+8]
  cmp eax,WM_INITDIALOG
  je app_init
  cmp eax,WM_CLOSE
  je app_exit
  mov eax,[esp+4]
  invoke GetWindowLong,eax,GWL_USERDATA
  pop edx
  push dword [eax]
  push edx
  jmp [CallWindowProc]

app_init:
  mov eax,[esp+4]
  invoke SendMessage,eax,WM_SETTEXT,0,_title
  xor eax,eax
  ret

app_exit:
  invoke ExitProcess,edi

data import
  library\
    kernel32,'kernel32.dll',\
    user32,'user32.dll'
  include 'api\kernel32.inc'
  include 'api\user32.inc'
end data

Извращениям нет предела!
Переменные будем хранить в стэке)

chiacorp chiacorp, (Updated )

Комментарии (18, +18)

Сборный / Говнокод #25428 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
format pe gui 5.0

include 'win32ax.inc'

  _title db '1Kbyte window',0
  _class db '#32770',0

  old_wndproc dd 0

entry $
  xor edi,edi
  mov ecx,$80000000
  mov esi,$400000
  mov eax,WS_VISIBLE+WS_OVERLAPPEDWINDOW
  invoke CreateWindowEx,edi,_class,edi,eax,ecx,ecx,ecx,ecx,edi,edi,edi,edi
  mov ebx,eax
  invoke SetWindowLong,ebx,GWL_WNDPROC,wnd_proc
  mov [old_wndproc],eax
  invoke SendMessage,ebx,WM_INITDIALOG,edi,edi
  sub esp,32
  mov ebx,esp

msg_loop:
  invoke GetMessage,ebx,edi,edi,edi
  cmp eax,1
  jb app_exit
  jne msg_loop
  invoke DispatchMessage,ebx
  jmp msg_loop

wnd_proc:
  mov eax,[esp+8]
  cmp eax,WM_INITDIALOG
  je app_init
  cmp eax,WM_CLOSE
  je app_exit
  pop eax
  push [old_wndproc]
  push eax
  jmp [CallWindowProc]

app_init:
  mov eax,[esp+4]
  invoke SendMessage,eax,WM_SETTEXT,0,_title
  xor eax,eax
  ret

app_exit:
  invoke ExitProcess,edi

data import
  library\
    kernel32,'kernel32.dll',\
    user32,'user32.dll'
  include 'api\kernel32.inc'
  include 'api\user32.inc'
end data

Приветствуем!
Вот это говнокод однако?
...

chiacorp chiacorp, (Updated )

Комментарии (80, +80)