1. Assembler / Говнокод #18259

    +159

    1. 1
    2. 2
    mov eax, "allahu akbar"
    push eax

    Короче слушай сюда, петушок, я буду объяснять тебе доступными словами, что бы ты понял.
    Вот попадаешь ты на зону, тебя встречает DHCP, он говорит тебе какая у тебя камера(Маска подсети), койка(ip адрес) и разъясняет порядок на хате(параметры области). Как только тебя определяют, то об этом узнает местная крыса(DNS), этот ушлый чухан вообще всё обо всех знает и сливает инфу по первому стуку в ебало(nslookup). Поэтому как только попадаешь в хату, представься что ты мужик(nsname), однако этот хуй может всем пиздеть что ты хуйло, или вообще идти в несознанку, поэтому лучше знать несколько крыс. Так вот, сидишь ты такой на своей койке и тебе нужно написать маляву(пакет) корешу, малявы передают через чуханов(маршрутизаторы, концентраторы, коммутаторы). Если ты передашь через чухана-концентратора, то знай, этот олень настолько тупой, что тут же забывает кто ему передал маляву и кому ее надо отдать, поэтому что бы не получить пизды, раздает ее всем, даже тебе. Если ты передаешь через чухана-коммутатора, то знай, он куда смышленей и передаст маляву куда надо, но только в пределах своей хаты, ибо связей не имеет. А вот маршрутизатора уже чуханом назвать сложно, этот тип может доставить маляву куда угодно, даже в соседнюю хату и даже в соседнюю зону, ибо связи решают.

    DesmondHume, 30 Мая 2015

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

    +249

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    mov     ecx, [eax+374h] 
    xor     edx, edx
    test    ecx, ecx
    jg      short loc_17BE80
    mov     ecx, edx 
    loc_17BE80:
    mov     [eax+374h], ecx
    mov     eax, [ebp+360h]
    mov     edx, [eax+374h]
    cmp     edx, [eax+102Ch]
    ;...

    Какой интересный способ обнуления ecx избрал компилятор...

    gost, 27 Апреля 2015

    Комментарии (10)
  3. Assembler / Говнокод #17931

    +130

    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
    ;Дисассемблировано "Doctor Watson" для Windows Server 2003 R2 x64
            00000000`004d3f4b 2448             and     al,0x48
            00000000`004d3f4d 488b742440       mov     rsi,[rsp+0x40]
            00000000`004d3f52 418b4008         mov     eax,[r8+0x8]
            00000000`004d3f56 4c8b642420       mov     r12,[rsp+0x20]
            00000000`004d3f5b 488b5c2430       mov     rbx,[rsp+0x30]
            00000000`004d3f60 ffc8             dec     eax
            00000000`004d3f62 498d54c00c       lea     rdx,[r8+rax*8+0xc]
            00000000`004d3f67 666690           nop
            00000000`004d3f6a 666690           nop
            00000000`004d3f6d 666690           nop
    FAULT ->00000000`004d3f70 0fb74202 movzx eax,word ptr [rdx+0x2] ds:00000008`01511086=????
            00000000`004d3f74 443bc8           cmp     r9d,eax
            00000000`004d3f77 440f42c8         cmovb   r9d,eax
            00000000`004d3f7b 66837a0400       cmp     word ptr [rdx+0x4],0x0
            00000000`004d3f80 7415             jz      bma+0xd3f97 (00000000004d3f97)
            00000000`004d3f82 488d0cc500000000 lea     rcx,[00000000+rax*8]
            00000000`004d3f8a 488d0449         lea     rax,[rcx+rcx*2]
            00000000`004d3f8e 0f181442         prefetcht1 byte ptr [rdx+rax*2]
            00000000`004d3f92 4803d1           add     rdx,rcx
            00000000`004d3f95 ebd9             jmp     bma+0xd3f70 (00000000004d3f70)
            00000000`004d3f97 488bc5           mov     rax,rbp

    HP Data Protection Manager 6.10, Windows x86-64, NDMP Media Agent. С первым патчем (не помню номер). Падал с Access Violation.
    Явно ошибка в компиляторе. Если что, в rax в этот момент было 0x00000000ffffffff.

    motoprogger, 04 Апреля 2015

    Комментарии (3)
  4. Assembler / Говнокод #17584

    +135

    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
    descriptions[result].Append(tblib::Format("%").i(0x12345678, 0xBB));
    
    
    0040E729  push        0BBh 
    0040E72E  push        12345678h                                                                ; ага, запихали параметры для Format::i, заебись; теперь esp=0x0012f1f4
    0040E733  lea         eax,[esp+38h] 
    0040E737  push        eax                                                                      ; esp=0x0012f1f0
    0040E738  lea         ecx,[esp+1Ch] 
    0040E73C  mov         dword ptr [esp+3Ch],offset USER32_NULL_THUNK_DATA+40h (43C1A8h) 
    0040E744  mov         dword ptr [esp+40h],ebp 
    0040E748  mov         dword ptr [esp+44h],1 
    0040E750  call        tblib::HeapCArray<char>::HeapCArray<char><tblib::StringRef> (4161B0h)    ; esp=0x0012f1f4
    0040E755  push        400h                                                                     ; esp=0x0012f1f0
    0040E75A  mov         ecx,offset tbAlloc (18B0C88h) 
    0040E75F  mov         dword ptr [esp+2Ch],ebp 
    0040E763  mov         dword ptr [esp+28h],ebp 
    0040E767  mov         dword ptr [esp+24h],ebp 
    0040E76B  call        tblib::Allocator::Malloc (42C500h)                                       ; esp=0x0012f1f4
    0040E770  mov         dword ptr [esp+20h],eax 
    0040E774  neg         eax  
    0040E776  sbb         eax,eax 
    0040E778  and         eax,400h 
    0040E77D  lea         ecx,[esp+18h] 
    0040E781  mov         dword ptr [esp+24h],eax 
    0040E785  mov         dword ptr [esp+2Ch],0FFFFFFFFh 
    0040E78D  call        tblib::Format::PassToNext (41BC00h)            ; хуй знает почему, но после этой функции esp не меняется, конвенция такая видимо
    0040E792  sub         esp,0Ch                                        ; БЛЯДЬ СУКА НАХУЙ ЁБАНЫЙ ПИЗДЕЦ ТЫ ЧЁ СУКА ТВОРИШЬ ААААААААА!!!!!!!!!!!!!!!!!!!!!!!!
    0040E795  lea         ecx,[esp+24h] 
    0040E799  mov         edi,esp 
    0040E79B  call        tblib::Format::i (42DBA0h)                     ; esp=0x0012f1e8, указывает на мусор, параметры для функции - где-то выше
    ...

    MSVC 2003 релиз

    TarasB, 05 Февраля 2015

    Комментарии (296)
  5. Assembler / Говнокод #17545

    +114

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    CFG ; start: scasb
    DCG ; salc
    AEEAFF ; and al,'\'-'/'
    AAEAFO ; add al,'/'
    DBFAFB ; int 29h
    DFDDGG ; jmp start

    Генератор лабиринта на Wct.

    Mihip, 29 Января 2015

    Комментарии (34)
  6. Assembler / Говнокод #17539

    +145

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    add ax,1 ; Добавляем в ax 1 (не знаю, почему он так сделал, МЕДЛЕННО И 3 БАЙТА), можно было же inc ax
    add ax,1
    add ax,1
    add ax,1
    add ax,1
    add ax,1
    add ax,1
    add ax,1
    add ax,1
    mov ax,9 ; А теперь я понял тщетность бытия и те потраченные байты выше.

    Самый лучший говнокод новичка, который я видел.

    Mihip, 28 Января 2015

    Комментарии (10)
  7. Assembler / Говнокод #17538

    +198

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    org 100h ; DOS, чёрной пеленой покрытый DOS...
    
    delGovnocode:
    mov eax,govnokod ; Помещаем в EAX говнокод
    xor eax,eax ; Обнуляем EAX
    
    govnokod db "AllGovnocodeInTheWorld" ; говнокод

    Самый эффективный способ уничтожения говнокода, который является говнокодом.

    Mihip, 28 Января 2015

    Комментарии (20)
  8. Assembler / Говнокод #17424

    +143

    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
    dw 0 ; reserved, must be 0
    dw 1 ; icon type, must be 1
    dw 2 ; number of images in file
    
    ; 1st icon header
    db 32 ; width
    db 32 ; height
    db 0 ; no color palette
    db 0 ; reserved, must be 0
    dw 1 ; planes
    dw 32 ; bits per pixel
    dd icon32_end-icon32_start ; length
    dd icon32_start ; offset
    
    ; 2nd icon header
    db 16 ; width
    db 16 ; height
    db 0 ; no color palette
    db 0 ; reserved, must be 0
    dw 1 ; planes
    dw 32 ; bits per pixel
    dd icon16_end-icon16_start ; length
    dd icon16_start ; offset
    
    ; 1st icon body
    icon32_start:
    file 'icon32.png'
    icon32_end:
    
    ; 2nd icon body
    icon16_start:
    file 'icon16.png'
    icon16_end:

    http://habrahabr.ru/post/247425/
    Сборка иконки FASMом

    govnokod3r, 09 Января 2015

    Комментарии (17)
  9. 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)
  10. Assembler / Говнокод #16890

    +165

    1. 1
    2. 2
    mov eax, 4
    add dx, eax

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

    DesmondHume, 18 Октября 2014

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